Android 破解(仅用于学习参考,而不是恶意去破解别人的东西)
过程:
1.用apktool对apk进行解压
2.修改smali文件(注1)
3.用apktoo打包成apk文件
4.用签名工具signapk.jar对apk进行重新签名打包安装
需要工具:
1.gd_gui(用于查看java代码)
2.dex2jar(把dex文件转jar,供gd_gui打开)
3.apktool(对apk进行解压和压缩)
4.baksmali-2.0.3.jar和smali-2.0.3.jar(用于dex和smali之间的相互转换)
5.jarsignapk.jar(用于对apk进行签名)
6.dx.bat(用于class转dex此工具在androidSdk里有可以配置环境变量使用)
工具下载:
点击:工具地址
工具安装:
将所有jar的路径配置到环境变量里就可以在cmd下执行操作
工具命令行:
1.利用apktool将apk解压,首先cd到apk的存放目录(apktool.bat d -f a.apk -o test)
2.利用dex2jar将dex转成.jar文件,供gd_gui查看源码 首先cd到dex的存放目录(dex2jar.bat classes.dex)
备注(2019年3月29日--狗日的之前好使突然间不好用了,cd到目录下注意一定要先cd到dex2jat.bat的目录,把dex扔进去 再把bat拖到cmd下 然后执行xxx.dex 随后会在当前目录生成xxx_dex2jar.jar的文件,此文件就可以查看源码了,日后研究明白了,在更新这里)
3.利用dx.bat将class转成dex,class位置需要注意包名的层级目录(dx --dex --output=[ 存放dex目录\class.dex ] [ class目录])
4.利用baksmali-2.0.3将dex转成smali,首先cd到dex的存放目录,如果出现找不到文件的错误需要确认dex文件的合法性,用dex2jar编译查看(java -jar baksmali-2.0.3.jar -x classes.dex)
5.利用apktool对文件压缩,转成apk文件,首先cd到test目录,test目录里存放apktool压缩出来的文件,压缩完成后apk会在新生成文件夹dist下(apktool.bat b test)
6.利用jarsignapk对apk进行签名,将apk存放至jarsignapk根目录下(java -jar signapk.jar testkey.x509.pem testkey.pk8 test.apk test-signed.apk)
Android 防破解
方法一:代码混淆
方法二:加固处理,例如360加固
注1:如何将java修改成smali?
把apk压缩,用压缩工具,直接修改后缀名,拿到其中的classes.dex,然后转成jar,然后用gd_gui查看代码,修改逻辑,编译成class
,然后class转dex,dex转smalil。