Android 反编译相关操作

1. 反编译APK获取源码(为混淆可以获取源码;混淆过后获取的源码方法名等为随机字母;套壳后基本拿不到源码,但不影响获取resources资源)

    a.  需要工具:dex2jar jd-gui , 其中,dex2jar 这个工具用于将dex文件转换成jar文件 ,

     下载地址:http://sourceforge.net/projects/dex2jar/files/ ;

jd-gui 这个工具用于将jar文件转换成java代码 , 下载地址:http://jd.benow.ca/

  b. 解压dex2jar压缩包后,你会发现有很多个文件, 我们只需要 d2j-dex2jar.bat 这个文件

    c.   XXX.apk 重命名为 XXX.zip 解压 -- 获取classes.dex文件

d. classes.dex文件复制到dex2jar的解压目录下,执行命令: d2j-dex2jar classes.dex

e. 执行成功后,会发现目录下多出了 classes-dex2jar.jar 文件

f. jd-gui 工具打开 classes-dex2jar.jar 文件,可以看到源码(为 .class文件只能看不能修改)

h. jd-gui 中点击 File -- 选择保存所有源码 --》成功后即可拿到 .Java 的源代码,可以修改

2. 反编译APK获取resources 资源文件

   a. 需要apktool 这个工具用于最大幅度地还原APK文件中的9-patch图片、布局、字符串等等一系列的资源,

下载地址:http://ibotpeaches.github.io/Apktool/install/

b. 新建一个文件夹,将 apktool_2.3.0 --》重名为apktool.jar, 和 apktool.bat 文件一起放到该新建文件夹下

c. 将XXX.APK 也放到该文件夹下,执行命令: apktool d Demo.apk


3.  重新对APK签名打包

a. 新建签名文件放到和 APK,apktool.jar,apktool.bat,反编译获得的文件夹,相同的目录下;

b. 执行命令: apktool b Demo -o New_Demo.apk 打包APK;

c. 执行命令:

     jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore 签名文件名 -storepass 签名密码 待签名的APK文件名 签名的别名 --》对APK进行签名

d. 签名之后已经可以安装了,但最好在执行一步对齐操作: 执行命令: zipalign 4 XXX.apk XXX_signed.apk

e. 可能需要将 zipalign 配置到系统环境变量 path 中: F:\develop\android_studio_2.3\sdk\build-tools\26.0.0


4.  上述操作其实也可以通过 Android逆向助手 这个工具来进行快捷的操作,反编译的一些具体操作可以参考郭林的文章:

      a.  http://blog.csdn.net/guolin_blog/article/details/49738023/

 a.  http://blog.csdn.net/guolin_blog/article/details/49738023/

猜你喜欢

转载自blog.csdn.net/u013212407/article/details/80823966