写一个查壳脚本
解压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);
}