[求助]repwn最后一步不知道往哪返回
发表于:
2019-3-11 19:01
3191
从第9位开始如下: X1Y0uN3tG00d 20101001 20101001X1Y0uN3tG00d0000 signed int __cdecl sub_4012F0(int a1) { signed int v1; // ecx signed int v2; // edx int v4; // [esp+0h] [ebp-38h] int v5; // [esp+4h] [ebp-34h] int v6; // [esp+8h] [ebp-30h] char v7; // [esp+Ch] [ebp-2Ch] int v8; // [esp+10h] [ebp-28h] int v9; // [esp+14h] [ebp-24h] int v10; // [esp+18h] [ebp-20h] int v11; // [esp+1Ch] [ebp-1Ch] int v12; // [esp+20h] [ebp-18h] v1 = 8; v2 = 0; v8 = 1920298841; v9 = 1886275935; v10 = 1230992501; v11 = 1918328691; v12 = 6778479; v4 = 811151704; v5 = 1949519477; v6 = 1680879687; v7 = 0; while ( *((_BYTE *)&v4 + v2) == *(_BYTE *)(v1 + a1) ) { ++v2; ++v1; if ( v2 > 11 ) return 1; } return 0; } int __cdecl sub_401460(char *Str) { char Dest; // [esp+8h] [ebp-10h] if ( strlen(Str) == 24 ) { if ( sub_4013B0(Str) ) { Str[20] -= 88; //58 Str[21] -= 70; //45 Str[22] -= 3; //03 Str[23] -= 107; //6B strcpy(&Dest, Str); } } else { printf("String Length is Wrong"); } return 0; } int __cdecl sub_4013B0(int a1) { int v1; // ebx int v2; // ecx int v3; // esi int result; // eax sub_401380(a1); v1 = dword_40802C + 1000 * dword_408020 + 100 * dword_408024 + 10 * dword_408028; v2 = dword_408034 + 10 * dword_408030; v3 = dword_40803C + 10 * dword_408038; result = 2 * (v1 + v2); if ( result == 4040 ) { result = 3 * v2 / 2; if ( result + 100 * v3 == 115 ) { result = 1; if ( v1 - 110 * v3 != 1900 ) result = printf("Key_Is_Wrong,Please_Input_Again!"); } } return result; } 前8位是数字 int __cdecl sub_401380(int a1) { signed int v1; // edx int result; // eax v1 = 0; do { result = *(char *)(v1 + a1) - 48; dword_408020[v1++] = result; } while ( v1 <= 7 ); return result; }
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)