脱壳
得到classes.dex文件
通过baksmali将dex文件转换成smail文件
运行命令后,smail文件在 out 目录下
java -jar baksmail.jar d input.dex
反编译
xx.apk 为apk的名称
java -jar apktool.jar d xx.apk
替换文件
将转成的smail文件的根目录改名为smail,然后替换反编译后里的smail
回编译
xx 为文件夹名称
java -jar apktool.jar b xx
apksigner签名
java -jar apksigner.jar sign --ks C:\workspace\android\Hookie\chgocn.jks --ks-key-alias ch --ks-pass pass:ca --key-pass pass:ca --out apk_dest.apk base/dist/base.apk
安装
adb install -r apk_dest.apk
遇到的错误
- java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/jvm/internal/Intrinsics
原 apk 使用 kotlin 开发,360加壳,脱壳之后回编译时点击 app 闪退。
原因:脱壳拿到的dex文件中缺失 kotlin 依赖,需要自编译app,然后取出kotlin smail文件,并加进去
- 找不到 com.stub.StubApp
删除加固so文件以及修改application入口之后,还需要修改 smail 代码,将 StubApp的代码全部删除
-
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 chgocn@gmail.com