2020 "第五空间"智能安全大赛 Re nop
测试文件: https://wwa.lanzous.com/is4hte2ulfc 代码处理 这道题是花指令相关题目,利用int 80h做中断。 首先将包含int 80h中断的 sub_804857B , sub_80485C4 函数和反调试函数 sub_804865B 全部nop掉。 接着,将 push 地址 ... pop ebx jmp ebx 这种形式的代码,都修改为 jmp 地址 这样在反编译后能够看到跳转的函数 void __cdecl main( int a1, char ** a2) { char *v2; // eax int savedregs; // [esp+8h] [ebp+0h] v2 = * a2; puts( " input your flag " ); __isoc99_scanf( " %d " , & dword_804A038); ++ dword_804A038; ++ dword_804A038; dword_804A038 -= 0x33333334 ; ++ dword_804A038; sub_8048751(( int )& savedregs); } 代码分析 第一部分 第9~13行代码,对输入num+3-0x33333334 第二部分 进入sub_8048751函数 int __usercall sub_8048753@