让我们假设这个(非常丑陋的)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 程序上工作?
谢谢