码迷,mamicode.com
首页 > 移动开发 > 详细

Android Native一处反调试

时间:2016-01-18 19:04:25      阅读:340      评论:0      收藏:0      [点我收藏+]

标签:

之前转载了一篇文章介绍了两种反调试方式,分别是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;
}

技术分享

技术分享

Android Native一处反调试

标签:

原文地址:http://www.cnblogs.com/dacainiao/p/5139880.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!