前言
在如今的社会,如果你不会反编译都不好意思说自己是程序员,那么下面开始我们的反编译之旅(此文也包含反编译加壳app示例)。
所需工具
工欲善其事,必先利其器。下面是我们反编译所需的工具:
-
Android Killer
Androidkiller安装、设置及使用教程 -
安卓逆向助手
下载链接: https://pan.baidu.com/s/1ACEFn4dws2T0Z6ExmXYrMA 提取码: c8e8
如果你不知道app是否被加固,那么可以使用该软件检查一下:APP查壳;
反编译未加壳apk
- Step1
启动Android killer,点击打开,选择apk文件,等待程序运行完毕即可。
-Step2
切换到工程管理器,可以查看反编译的资源和smail代码等。
-
Step3
查看smali代码,找到你需要查看的文件,点击下图的这个图标即可查看java代码:
-
Step4
修改你想要修改的内容,然后进行二次打包:
切换到Android,点击编译
至此,未加固反编译已经完成,如果可以请耐心看完文本,结尾有彩蛋。
反编译加壳apk
-
Step1 脱壳获取dex文件
请参考我之前的博文先进行脱壳:APP脱壳 ; -
Step2 替换smali源码
脱壳后使用上文中的安卓逆向助手反编译dex文件,然后将文件拷贝到smail文件夹下即可。
如果脱壳后的dex有多个,那么按照文件夹的大小从大到小重命名分别为smail、smail_classes2、smali_classes3等,以此类推!
-
Step3 修复AndroidManifest.xml
修复AndroidManifest.xml,修改内容包括还原application入口以及删除壳相关代码。
1.将“application”节点android:name=”com.stub.StubApp”:修改为正常的application
2.删除与壳相关的代码 例:
-
Step4
同上文中的Step4。
ps:如果打包后无法正常运行有可能Step3中修复不完全,需要正对不同的加固方式做不同的处理,比如如果使用360的新壳,那么smali文件的oncreate函数是空的,需要手动还原oncreate函数
至此,app反编译已经完成,如果你反编译过程中遇到了一些问题或许这篇文章可以帮助你:Android Killer反编译apk过程中遇到的一些问题