带有angr的调试器陷阱

逆向工程 反调试 愤怒
2021-06-24 06:03:51

让我们假设这个(非常丑陋的)c 代码:

#include <stdio.h>
#include <string.h>
#include <signal.h>

char sav_argv[100];

void on_sigtrap(int signo)
{
    if (strcmp(sav_argv, "hello") == 0)
    {
        printf("OK!\n");
    } else {
        printf("NOK\n");
    }
}

int main(int argc, char *argv[])
{
    memset(sav_argv,100,0);
    memcpy(sav_argv,argv[1],100);
    signal(SIGTRAP,on_sigtrap);
    __asm__("int3");
    return 0;
}

我已经用 gcc (linux 64 bits elf) 编译了这个 c 程序。

我想要做的是用 angr python 脚本解决它。如果我删除调试器陷阱,它确实有效,但它不适用于调试器陷阱。

有没有办法让 angr 在这个 c 程序上工作?

谢谢

0个回答
没有发现任何回复~