假设你的手机已经root,并已开启frida服务,电脑端已安装好Python,frida,IDA,GDA。
样本地址:
链接: https://pan.baidu.com/s/1y3kIXcBv25QqKjAVzq39CQ 提取码: wzqa
打开软件,界面是这样的:
随便输入"123456",提示"验证码校验失败",将APK拖入GDA,查找该字符串,定位到这里:
逻辑很简单,如果执行的是if语句,只校验成功,关键的也就是:
this.this$0.null_securityCheck
这个函数,跟进去发现是个native函数:
//Package com.yaotong.crackme.MainActivity;import java.lang.String;native public boolean MainActivity.null_securityCheck() //method@0016{}
将apk中的so拖入到ida,导出函数中发现了这个:
Java_com_yaotong_crackme_MainActivity_securityCheck 000011A8
双击跟进,并按F5,查看C伪码:
导入jni.h,将第一个形参设置为 _JNIEnv 类型,第二个形参设置为 jobject,第三个形参设置为 jstring 类型,对相关函数一波 force call 操作后,代码变成这样: