• Android应用安全防护和逆向分析 ——apk反编译


    概述

    最近一直在学习Android应用安全相关和逆向分析的知识。现在移动app在安全方面是越来越重视了,特别是那些巨头企业涉及到钱的应用,那加密程度,简直是丧心病狂,密密麻麻。从这里可以看出,对于应用的安全,那些巨头企业是多么的看重了。我们有时候在某个app上见到某个功能,某个效果蛮不错的,我们想看看对方的思路怎么走的,这时候,我们就可以通过反编译来编译该apk,拿到代码,进行分析。

    本人的是Mac环境,如果是window环境的同学,在环境搭建和工具上可以选择Window环境的。先看看需要到的工具;

    1、apktool:https://ibotpeaches.github.io/Apktool/install/  

    2、dex2jar:https://github.com/pxb1988/dex2jar 

    3、jd-gui:http://jd.benow.ca

    注意:工具一定要是当前最新版本的,否则很容易出现一些莫名其妙的错误。

    先看一下项目的包结构

    然后在简单看MainActivity中的内容。(这里给出该类的内容,只是为了后期和反编译出来的内容做个对比)

     

    好了,下面开始我们的反编译之路了 。我们一个一个工具来说。

    安装apktool

    当我们下载好apktool.jar以后,可能有的人会有后缀名,都改为apktool.jar,然后终端输入命令open /usr/local/bin,然后将apktool和apktool.jar移到/usr/local/bin文件夹下,就OK了,判断apktool是否安装成功,可以通过命令:apktool  来判断

    如果出现红色圈的这一大片,则说明安装成功。

    注意:dex2jar和jd-gui不需要安装,直接解压即可。

    使用apktool反编译

    1、首先使用命令:cd xxx/xxx/xxx  (xxx/xxx/xxx代表apk的存放路径)

    2、使用命令:apktool d app-debug.apk  (app-debug.apk是你的apk名称)

    到这一步以后,会在你存放apk包的路径下生成一个文件夹

     

     进入文件夹,你会发现,有我们项目的资源文件和xml文件。那么代码呢???没有看到,别急

    在执行一个命令:apktool b xxx  (xxx代表刚刚我们生成的文件夹的名称)

    执行完上面的命令以后,可以看到文件夹中多了一个build文件夹,而这个build文件夹下的classes.dex文件就是我们最终需要的。

    好了,apktool的工作到这里就结束了,下面我们需要另外两个工具dex2jar,jd-gui。

    dex2jar

    1、使用命令:cd xxx/xxx/xxx   (xxx/xxx/xxx代表dex2jar的路径)

    2、使用命令:sh d2j-dex2jar.sh -f xxx/xxx/xxx   (xxx/xxx/xxx代表classes.dex的路径)

     

    然后在dex2jar文件夹下会生成classes-dex2jar.jar的架包,这个包,就是我们的Java文件代码。

    那么怎么看代码呢?jd-gui上场了。打开jd-gui,直接将classes-dex2jar.jar拖进来,就可以可以看到了。

    对比一下最前面的MainActivity代码全部被反编译出来了。

    很多人就会说,你这个项目是demo,并没有做混淆,所以可以反编译出来??但是,需要知道的是,如果做了混淆,一样可以反编译出来,只不过说里面的很多类名,方法名,变量名等等都是以a,b,c这样的形式存在,但是这种并不影响能过看出你的代码逻辑,只是给阅读增加了一丝的难度而已。所以,项目做混淆,只是最基础的一种方式,还有很多很多我们需要考虑的。

  • 相关阅读:
    js复习---工厂函数---构造函数的执行过程
    21年初的措不及防-------
    element ui checkbox实现多项全选反选功能
    vue 实现导航锚点联动
    this.$router.currentRoute 和 this.$route的 区别
    重置vue组件的data数据 this.$options.data()
    父组件中如何拿到引入的子组件里element-ui 的form表单ref对象
    线程笔记
    面向对象
    关于上传和下载的笔记
  • 原文地址:https://www.cnblogs.com/huangjialin/p/10039704.html
Copyright © 2020-2023  润新知