1.拿到apk包时,第一步先判断是否加壳,加的是什么壳
在手机上或者虚拟机上用MT管理器找到对应的apk包
可以看的这个包虽然说是未加固,但还有个伪百度加固,其实也就是加了百度的壳的
2.利用BlackDex32进行去壳
在手机或虚拟机上安装BlackDex32,在软件中选择你要去壳的APP(ps:要先把apk安装上,不然找不到), 在软件中可以指定去壳后的文件存储路径,到对应位置下找到apk的包名即可找到去壳后的dex文件
3.回到MT管理器,打开脱壳的后dex与未脱壳的dex进行比较
未脱壳的:
脱壳后的:
可以看到,第一个是一些测试用代码,第二个是百度的壳相关代码,第三个是真正隐藏起来的代码,第四个和暴露出来的代码一致。
那么就简单了,保留第三个和第四个,其他的都不要了。
4.还是用MT管理器修改你想破解的代码
可以看的源码跟java类似,但还是很难解读,这就需要预先了解一些smali语法了。
5.修改原始apk包
- 将之前修改好的dex文件重命名为classes.dex,用MT管理器查看原始apk包,将原始的dex文件重命名为classes1.dex,将新的dex文件拖进去
- 打开assets文件夹,将里面带baidu字样的全都删掉,再打开lib下的armeabi文件夹,同样把带baidu字样的so文件全都删掉
- 打开AndroidManifest.xml文件,找到application标签里的android:name属性,这里的启动类是假,根据内容找到对应的代码文件去寻找真正的启动类
打开对应的AppInfo文件,找到真正启动类
- 将真正的启动类替换掉假的启动类,保存退出
6.长按apk包,对apk进行签名,签名完后将之前的安装的删掉,重新安装破解的即可
以上只是浅显的针对我的那个apk进行的简单破解,很大概率可能还是解决不了你的问题,具体问题还是得具体分析,当然如果能对你有所帮助,那我也很开心能帮上忙。