闲来无事研究了一下ZFB的反调试,没想到竟发现了白名单。。分享一下流程: 研究反调试之前,我个人比较喜欢先hook strcmp strncmp strstr之类的函数,因为大多数Anti-Debug喜欢用这些函数判断一些cookie,如果把参数dump下来加以分析,说不定就能看到反调试的逻辑。 hook之后,用IDA附加F9,没过一会儿程序收到了SIGSEGV异常,估计就是检测到调试了。好现在查看dump下来的参数信息: ZFB用strstr在maps里面检测了Xposed和substrate(这2个库确实出名) 可以看到,有TracerPid这些日常检测,不过最关心的应该是最后4行,他通过TracerPid获取到cmdline(也就是./android_server),和下面4个字符串进行比较: com.eg.android.AlipayGphone /system/bin/debugger qihoo360 com.lbe 好吧,上面4个字符串就是白名单了。为了验证,我把android_server改名为qihoo360,IDA附加之后APP运行正常,IDA也没有收到任何异常。不过qihoo360亮了。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!