标签:
之前转载了一篇文章介绍了两种反调试方式,分别是ptrace自身和查看TracerPid信息,文章地址: http://www.cnblogs.com/dacainiao/p/5124151.html
这一处反调试是在调试某加固时遇到的,原理是查看当前所有的tcp连接,如果有<00000000:5D8A>就退出,也就是本地连接的23946端口(IDA的默认监听端口)。
当然,解决办法可以Path掉该处的反调试或者修改IDA的客户端把默认的监听端口改成其他的。
反调试的方法还有很多,只是分析的样本中还没有遇到,遇到新的反调试方法就整理一下。
#include <stdio.h> int main(int argc, char* argv[]) { char szLines[1024] = {0}; int nFind = 0; FILE *fp = fopen("/proc/net/tcp", "r"); if (fp != NULL) { while (fgets(szLines, sizeof(szLines), fp)) { //23946端口 if (strstr(szLines, "00000000:5D8A")) { nFind = 1; printf("find\r\n"); break; } } fclose(fp); } else { printf("fopen error\r\n"); } if (nFind == 0) { printf("no find\r\n"); } return 0; }
标签:
原文地址:http://www.cnblogs.com/dacainiao/p/5139880.html