1.ida打开找到main函数
int __cdecl __noreturn main(int argc, const char **argv, const char **envp)
{
int v3; // eax@7
char v4; // [sp+Fh] [bp-1h]@1
while ( 1 )
{
while ( 1 )
{
printf("Welcome to CTF game!\nPlease input d/D to start or input q/Q to quit this program: ", argv, envp);
v4 = getchar();
if ( v4 != 100 && v4 != 68 )
break;
Decry();
}
if ( v4 == 113 || v4 == 81 )
Exit();
puts("Input fault format!");
v3 = getchar();
putchar(v3);
}
}
通过代码可以看到v4读取输入,如果为q或者Q就进入decry
2.进入decry可以看到
__int64 Decry()
{
char *v0; // rax@1
char v2; // [sp+Fh] [bp-51h]@19
int v3; // [sp+10h] [bp-50h]@1
signed int v4; // [sp+14h] [bp-4Ch]@1
signed int i; // [sp+18h] [bp-48h]@1
signed int v6; // [sp+1Ch] [bp-44h]@1
char src[8]; // [sp+20h] [bp-4