最近在学习apk的反编译和回编译,发现能找到的教程大部分都是使用apktool来进行的。。感觉这个玩意儿挺好用的,但好像容易被针对??
在此尝试一下不用这个工具的做法。
准备工具(万能的度娘):
smali.jar smail文件转dex文件
baksmali.jar dex文件转smali
signapk.jar testkey.pk8 testkey.x509.pem 签名用
crack1.apk 测试用的apk
开始:
1.将apk解压
2.将解压后的dex文件用smali.jar转为smali文件
3.对生成的out文件夹中需要操作smali进行想要修改插桩等。
4.将out文件夹重新回编译成dex文件
5.重新编译好的classes.dex放回第一步解压的文件夹中覆盖里面的dex。。(这一步要直接把拉到原来的apk包中覆盖,,如果是覆盖到解压后的文件夹然后再把文件夹压缩成新的apk包。。好像安装时解析包出错)
6.重新签名
7.完成。。。安装试试看。。
问题:
签名的时候可能会遇到错误:Exception in thread "main" java.lang.NoClassDefFoundError: sun.security.x5090Name
这原因应该是运行的环境需要JDK1.7以及一下,,1.8版本太高了。。