可以知道这道题是二类题型,你完成某个事情给你flag
我们输入正确的东西,给“flag”
运行一下可以知道这些关键词
直接关键词在字符串里面
找到运行得到的东西
INT_PTR __stdcall DialogFunc(HWND hDlg, UINT a2, WPARAM a3, LPARAM a4)
{HMODULE ModuleHandleW; // eaxHICON IconW; // eaxHMODULE v7; // eaxHWND DlgItem; // eaxHCURSOR CursorW; // [esp-4h] [ebp-34Ch]CHAR String[256]; // [esp+8h] [ebp-340h] BYREFCHAR v11[256]; // [esp+108h] [ebp-240h] BYREFCHAR Text[256]; // [esp+208h] [ebp-140h] BYREFchar Source[36]; // [esp+308h] [ebp-40h] BYREFchar v14[24]; // [esp+32Ch] [ebp-1Ch] BYREFif ( a2 == 16 ){EndDialog(hDlg, 0);return 0;}if ( a2 == 272 ){ModuleHandleW = GetModuleHandleW(0);IconW = LoadIconW(ModuleHandleW, (LPCWSTR)0x67);SetClassLongA(hDlg, -14, (LONG)IconW);v7 = GetModuleHandleW(0);CursorW = LoadCursorW(v7, (LPCWSTR)0x66);DlgItem = GetDlgItem(hDlg, 1);SetClassLongA(DlgItem, -12, (LONG)CursorW);return 1;}if ( a2 != 273 || (unsigned __int16)a3 != 1 )return 0;memset(String, (unsigned __int16)a3 - 1, sizeof(String));memset(v11, 0, sizeof(v11));memset(Text, 0, sizeof(Text));GetDlgItemTextA(hDlg, 1001, String, 256);GetDlgItemTextA(hDlg, 1002, v11, 256);if ( strstr(String, "@") && strstr(String, ".") && strstr(String, ".")[1] && strstr(String, "@")[1] != 46 ){strcpy(v14, "Registration failure.");strcpy(Source, "Registration Success!\nYour flag is:");if ( strlen(v11) == 16&& v11[0] == 'C'&& v11[15] == 'X'&& v11[1] == 'Z'&& v11[14] == 'A'&& v11[2] == '9'&& v11[13] == 'b'&& v11[3] == 'd'&& v11[12] == '7'&& v11[4] == 'm'&& v11[11] == 'G'&& v11[5] == 'q'&& v11[10] == '9'&& v11[6] == '4'&& v11[9] == 'g'&& v11[7] == 'c'&& v11[8] == '8' ){strcpy_s(Text, 0x100u, Source);strcat_s(Text, 0x100u, v11);}else{strcpy_s(Text, 0x100u, v14);}}else{strcpy_s(Text, 0x100u, "Your E-mail address in not valid.");}MessageBoxA(hDlg, Text, "Registeration", 0x40u);return 1;
}
很简单,挨个整出来
CZ9dmq4c8g9G7bAX
就是flag了!
下班!