题目地址:/challenges#reverse2
解压后不是可执行文件——》丢进十六进制编辑器——》发现是一个二进制文件(查找flag无果,拖入ida试试看)
exeinfope查看无壳
查看伪代码:
v8 = __readfsqword(0x28u);pid = fork();if ( pid ){argv = (const char **)&stat_loc;waitpid(pid, &stat_loc, 0);}else{for ( i = 0; i <= strlen(&flag); ++i ){if ( *(&flag + i) == 105 || *(&flag + i) == 114 ) // 把刚刚那一串flag里面的i和r替换成1(工具ascii)*(&flag + i) = 49;}}printf("input the flag:", argv);__isoc99_scanf("%20s", &s2);if ( !strcmp(&flag, &s2) )result = puts("this is the right flag!");elseresult = puts("wrong flag!");return result;}
进入ida跟进伪代码:
把刚刚那一串flag里面的i和r替换成1
hacking_for_fun——》flag{hack1ng_fo1_fun}