和上篇文章一样,打开后会进行root检测:
不同的是在进行root检测之前,调用了init函数进行初始化:
而init函数是native层的:
打开so文件看一下:
主要逻辑在sub_93C函数,点击进去查看:
显而易见,在程序逻辑开始执行之前,父进程fork出子进程并进行ptrace附加,即让子进程附加自己,这样其他进程就不能来调试自己了,是常见的反调试的一种保护手段:
解决办法就是让frida为我们生成一个进程而不是将它注入到运行中的进程中,将frida注入到Zygote中,生成我们的进程并且等待输入:这通过-f命令行参数来实现
直接敲击命令,然后输入%resume,之后点击ok程序正常不会退出。
接下来看验证函数:
调用了m.a来验证:
比较函数放到了native层:
显而易见,要想result值为1 框中的if条件必须满足,那么就是字符串的前0x17位(十进制的1*16+7=23)要和Thanks for all the fish相等。
OWASP Uncrackable Level2 APK
最新推荐文章于 2022-04-15 10:56:50 发布