写一个查壳脚本
解压apk->寻找asserts文件中中的so文件–>匹配特征
apkCheckProtect.py
Java层 Application入口:
Markup
<application android:name="com.secshell.secData.ApplicationWrapper">
Application调用顺序attachBaseContext->onCreate
Java
protected void attachBaseContext(Context context) { super.attachBaseContext(context); try { ApplicationWrapper.realApplication = this.getClassLoader().loadClass(Helper.APPNAME).newInstance(); Helper.attach(ApplicationWrapper.realApplication, context); } catch(Exception e) { ApplicationWrapper.realApplication = null; } }
BLX R3patch掉这句就可以了
怎么在静态情况下,找到此处反调试?
猜想: 通过某些特征,顺藤摸瓜
作者做法: 动调 在dex加载前后寻找关键点
遇到patch so 之后无法重新打包签名的情况 可以通过直接把so扔进lib中即可
断在loadlibrary的入口处,就不会挂
脱壳记得要清楚数据,因为有可能是写在sd中 走另一套流程
断在这个函数的三个查找引用函数的地方 寻找R2 dex.035
static main(void) { auto fp, begin, end, dexbyte; fp = fopen("/Users/tasfa/Downloads/dump.dex", "wb"); begin = 0xA0F34000; end = r0 + 0xFFFF0000; for ( dexbyte = begin; dexbyte < end; dexbyte ++ ) fputc(Byte(dexbyte), fp); }