1.准备
获得信息
- 32位文件
2.IDA打开
反编译为C代码
int __cdecl main_0() { int result; // eax char v1; // [esp+4Ch] [ebp-Ch] const char *v2; // [esp+50h] [ebp-8h] int v3; // [esp+54h] [ebp-4h] v3 = 5; v2 = "DBAPP{49d3c93df25caad81232130f3d2ebfad}"; while ( v3 >= 0 ) { printf(aD, v3); sub_40100A(); --v3; } printf( " " " " " " "这里本来应该是答案的,但是粗心的程序员忘记把变量写进来了,你要不逆向试试看:(Y/N) "); v1 = 1; scanf("%c", &v1); if ( v1 == 89 ) { printf(aOdIda); result = sub_40100A(); } else { if ( v1 == 78 ) printf(asc_425034); else printf("输入错误,没有提示."); result = sub_40100A(); } return result; }
和题目相结合,内涵,flag也就是{49d3c93df25caad81232130f3d2ebfad}中间包含的那部分
3.get flag!
flag{49d3c93df25caad81232130f3d2ebfad}