android 逆向工程-开发篇 apk加固(六)
Android逆向工程篇:
- android 逆向工程-工具篇 drozer(一)
- android 逆向工程-工具篇 apktool(二)
- android 逆向工程-语言篇 Smali(三)
- android 逆向工程-分析篇 漏洞与风险(四)
- android 逆向工程-工具篇 dex2jar jd-gui(五)
- android 逆向工程-开发篇 apk加固(六)
- android 逆向工程-工具篇 IDA pro入门(七)
- android 逆向工程-技术篇 Android studio动态调试(八)
- android 逆向工程-工具篇 jadx(九)
注:参考 https://blog.csdn.net/jiangwei0910410003/article/details/48415225
加密工具:https://github.com/dileber/DexShellTools/tree/master
壳程序Apk:https://github.com/dileber/ReforceApk/tree/master
加固原理
一句话:通过修改壳apk中的dex文件,把需要加壳的apk通过二进制形式,来加密到壳apk中,运行时进行解密操作。
加壳重点(其余的参考注释的文章):
加壳时需要了解dex文件头部
加壳后的dex文件需要替换壳的dex文件
加壳后的apk需要对其重新签名:
jarsigner -verbose -keystore 签名文件 -storepass 密码 -keypass alias的密码 -sigfile CERT -digestalg SHA1 -sigalg MD5withRSA 签名后的文件 签名前的apk alias名称
eg:
jarsigner -verbose -keystore forceapk -storepass 123456 -keypass 123456 -sigfile CERT -digestalg SHA1 -sigalg MD5withRSA -signedjar ReforceApk_des.apk ReforceApk_src.apk jiangwei
签名文件的密码:123456
alais的密码:123456