Android Native反调试—检测TCP端口

Posted by Jieming Gu on 2016-12-18

这一处反调试是在调试某加固时遇到的,原理是查看当前所有的TCP连接,如果有<00000000:5d8a>就退出,也就是查看本地的23946端口是否被占用(IDA默认的监听端口)。

实现代码如下:

void checkAndroidServer() {
    char szLines[1024] = {0};
    //监听23946端口
    FILE *fp = fopen("/proc/net/tcp", "r");
    if (fp != NULL) {
        while (fgets(szLines, sizeof(szLines), fp)) {
            //23946端口
            if (strstr(szLines, "00000000:5D8A")) {
                kill(getpid(), SIGKILL);
                break;
            }
        }
    fclose(fp);
    }
    LOGE("no find android server");
}

启动android_server,查看当前的TCP连接。

2

解决方法

不使用默认的端口启动android_server,再次输入cat /proc/net/tcp查看结果。

3

4