int __thiscall sub_401890(CWnd *this) { struct CString *v1; // ST08_4@1 CWnd *v2; // eax@1 int v3; // eax@1 int result; // eax@2 int v5[26]; // [sp+4Ch] [bp-74h]@7 int i; // [sp+B4h] [bp-Ch]@3 char *Str; // [sp+B8h] [bp-8h]@1 CWnd *v8; // [sp+BCh] [bp-4h]@1 v8 = this; v1 = (CWnd *)((char *)this + 100); v2 = CWnd::GetDlgItem(this, 1002); CWnd::GetWindowTextA(v2, v1); v3 = sub_401A30((char *)v8 + 100); Str = CString::GetBuffer((CWnd *)((char *)v8 + 100), v3); if ( strlen(Str) ) { for ( i = 0; Str[i]; ++i ) { if ( Str[i] > 57 || Str[i] < 48 ) { if ( Str[i] > 122 || Str[i] < 97 ) { if ( Str[i] > 90 || Str[i] < 65 ) sub_4017B0(); else v5[i] = Str[i] - 29; } else { v5[i] = Str[i] - 87; } } else { v5[i] = Str[i] - 48; } } result = sub_4017F0((int)v5); } else { result = CWnd::MessageBoxA(v8, "请输入pass!", 0, 0); } return result; }
int __cdecl sub_4017F0(int a1) { int result; // eax@6 char Str1[28]; // [sp+D8h] [bp-24h]@4 int v3; // [sp+F4h] [bp-8h]@1 int v4; // [sp+F8h] [bp-4h]@1 v4 = 0; v3 = 0; while ( *(_DWORD *)(a1 + 4 * v4) < 62 && *(_DWORD *)(a1 + 4 * v4) >= 0 ) { Str1[v4] = aAbcdefghiabcde[*(_DWORD *)(a1 + 4 * v4)]; ++v4; } Str1[v4] = 0; if ( !strcmp(Str1, "KanXueCTF2019JustForhappy") ) result = sub_401770(); else result = sub_4017B0(); return result; }
.rdata:00403580 aAbcdefghiabcde db 'abcdefghiABCDEFGHIJKLMNjklmn0123456789opqrstuvwxyzOPQRSTUVWXYZ',0
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!