有错误还望各位大牛指出,小弟随便学习一下。
以前都是在脱壳的时候遇到反调试,这次在运行阶段单独的一条调试线程。
运行app后使用ida附加,然后对fopen下断点。
两轮断下来:
/proc/7706/wchan (后面截图的pid可能不同)
/proc/self/status
先看wchan
构造:sys_epoll_wait
下面是实际内容:
调用strncasecmp进行比较,修改方法自己想。
检查完wchan之后,会检查status,这一步绕过的方法很多了。
另外,调试的时候很麻烦,它会开很多反调试线程,到处飞,不知道ida哪里有提示线程id。
既然是多线程反调试,有一个很好解决的方案,把线程弄死。
方法:
在fopen断下后回到调用代码,然后把代码改为死循环,屡试不爽。
在这个样例中,根据地址很容易判断反调试代码是thumb指令集。
修改后效果图:
ps:不是改文件,是运行时动态修改。
样本名:Rela
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!