这是一道非常简单的动态调试题目

0x1 定位关键函数

首先通过对apiMessageBoxA的查找引用可以直接定位到关键函数sub_418350
完整代码如下

int __thiscall sub_418350(CWnd *this)
{
  struct CWnd *v1; // eax
  int result; // eax
  char v3; // [esp+0h] [ebp-1280h]
  signed int i; // [esp+550h] [ebp-D30h]
  char v5; // [esp+55Ch] [ebp-D24h]
  char v6; // [esp+55Dh] [ebp-D23h]
  char v7; // [esp+55Eh] [ebp-D22h]
  char v8; // [esp+55Fh] [ebp-D21h]
  char v9; // [esp+560h] [ebp-D20h]
  char v10; // [esp+561h] [ebp-D1Fh]
  char v11; // [esp+562h] [ebp-D1Eh]
  char v12; // [esp+563h] [ebp-D1Dh]
  char v13; // [esp+564h] [ebp-D1Ch]
  char v14; // [esp+565h] [ebp-D1Bh]
  char v15; // [esp+566h] [ebp-D1Ah]
  char v16; // [esp+567h] [ebp-D19h]
  char v17; // [esp+568h] [ebp-D18h]
  char v18; // [esp+569h] [ebp-D17h]
  char v19; // [esp+56Ah] [ebp-D16h]
  char v20[4]; // [esp+56Bh] [ebp-D15h]
  int v21; // [esp+578h] [ebp-D08h]
  int v22; // [esp+57Ch] [ebp-D04h]
  int v23; // [esp+580h] [ebp-D00h]
  int v24; // [esp+584h] [ebp-CFCh]
  int v25; // [esp+588h] [ebp-CF8h]
  int v26; // [esp+58Ch] [ebp-CF4h]
  int v27; // [esp+590h] [ebp-CF0h]
  int v28; // [esp+594h] [ebp-CECh]
  int v29; // [esp+598h] [ebp-CE8h]
  int v30; // [esp+59Ch] [ebp-CE4h]
  int v31; // [esp+5A0h] [ebp-CE0h]
  int v32; // [esp+5A4h] [ebp-CDCh]
  int v33; // [esp+5A8h] [ebp-CD8h]
  int v34; // [esp+5ACh] [ebp-CD4h]
  int v35; // [esp+5B0h] [ebp-CD0h]
  int v36; // [esp+5B4h] [ebp-CCCh]
  int v37; // [esp+5B8h] [ebp-CC8h]
  int v38; // [esp+5BCh] [ebp-CC4h]
  int v39; // [esp+5C0h] [ebp-CC0h]
  int v40; // [esp+5C4h] [ebp-CBCh]
  int v41; // [esp+5C8h] [ebp-CB8h]
  int v42; // [esp+5CCh] [ebp-CB4h]
  int v43; // [esp+5D0h] [ebp-CB0h]
  int v44; // [esp+5D4h] [ebp-CACh]
  int v45; // [esp+5D8h] [ebp-CA8h]
  int v46; // [esp+5DCh] [ebp-CA4h]
  int v47; // [esp+5E0h] [ebp-CA0h]
  int v48; // [esp+5E4h] [ebp-C9Ch]
  int v49; // [esp+5E8h] [ebp-C98h]
  int v50; // [esp+5ECh] [ebp-C94h]
  int v51; // [esp+5F0h] [ebp-C90h]
  int v52; // [esp+5F4h] [ebp-C8Ch]
  int v53; // [esp+5F8h] [ebp-C88h]
  int v54; // [esp+5FCh] [ebp-C84h]
  int v55; // [esp+600h] [ebp-C80h]
  int v56; // [esp+604h] [ebp-C7Ch]
  int v57; // [esp+608h] [ebp-C78h]
  int v58; // [esp+60Ch] [ebp-C74h]
  int v59; // [esp+610h] [ebp-C70h]
  int v60; // [esp+614h] [ebp-C6Ch]
  int v61; // [esp+618h] [ebp-C68h]
  int v62; // [esp+61Ch] [ebp-C64h]
  int v63; // [esp+620h] [ebp-C60h]
  int v64; // [esp+624h] [ebp-C5Ch]
  int v65; // [esp+628h] [ebp-C58h]
  int v66; // [esp+62Ch] [ebp-C54h]
  int v67; // [esp+630h] [ebp-C50h]
  int v68; // [esp+634h] [ebp-C4Ch]
  int v69; // [esp+638h] [ebp-C48h]
  int v70; // [esp+63Ch] [ebp-C44h]
  int v71; // [esp+640h] [ebp-C40h]
  int v72; // [esp+644h] [ebp-C3Ch]
  int v73; // [esp+648h] [ebp-C38h]
  int v74; // [esp+64Ch] [ebp-C34h]
  int v75; // [esp+650h] [ebp-C30h]
  int v76; // [esp+654h] [ebp-C2Ch]
  int v77; // [esp+658h] [ebp-C28h]
  int v78; // [esp+65Ch] [ebp-C24h]
  int v79; // [esp+660h] [ebp-C20h]
  int v80; // [esp+664h] [ebp-C1Ch]
  int v81; // [esp+668h] [ebp-C18h]
  int v82; // [esp+66Ch] [ebp-C14h]
  int v83; // [esp+670h] [ebp-C10h]
  int v84; // [esp+674h] [ebp-C0Ch]
  char v85; // [esp+678h] [ebp-C08h]
  int v86; // [esp+710h] [ebp-B70h]
  int v87; // [esp+714h] [ebp-B6Ch]
  int v88; // [esp+718h] [ebp-B68h]
  int v89; // [esp+71Ch] [ebp-B64h]
  int v90; // [esp+720h] [ebp-B60h]
  int v91; // [esp+724h] [ebp-B5Ch]
  int v92; // [esp+728h] [ebp-B58h]
  int v93; // [esp+72Ch] [ebp-B54h]
  int v94; // [esp+730h] [ebp-B50h]
  int v95; // [esp+734h] [ebp-B4Ch]
  int v96; // [esp+738h] [ebp-B48h]
  int v97; // [esp+73Ch] [ebp-B44h]
  int v98; // [esp+740h] [ebp-B40h]
  int v99; // [esp+744h] [ebp-B3Ch]
  int v100; // [esp+748h] [ebp-B38h]
  int v101; // [esp+74Ch] [ebp-B34h]
  int v102; // [esp+750h] [ebp-B30h]
  int v103; // [esp+754h] [ebp-B2Ch]
  int v104; // [esp+758h] [ebp-B28h]
  int v105; // [esp+75Ch] [ebp-B24h]
  int v106; // [esp+760h] [ebp-B20h]
  int v107; // [esp+764h] [ebp-B1Ch]
  int v108; // [esp+768h] [ebp-B18h]
  int v109; // [esp+76Ch] [ebp-B14h]
  int v110; // [esp+770h] [ebp-B10h]
  int v111; // [esp+774h] [ebp-B0Ch]
  int v112; // [esp+778h] [ebp-B08h]
  int v113; // [esp+77Ch] [ebp-B04h]
  int v114; // [esp+780h] [ebp-B00h]
  int v115; // [esp+784h] [ebp-AFCh]
  int v116; // [esp+788h] [ebp-AF8h]
  int v117; // [esp+78Ch] [ebp-AF4h]
  int v118; // [esp+790h] [ebp-AF0h]
  int v119; // [esp+794h] [ebp-AECh]
  int v120; // [esp+798h] [ebp-AE8h]
  int v121; // [esp+79Ch] [ebp-AE4h]
  int v122; // [esp+7A0h] [ebp-AE0h]
  int v123; // [esp+7A4h] [ebp-ADCh]
  int v124; // [esp+7A8h] [ebp-AD8h]
  int v125; // [esp+7ACh] [ebp-AD4h]
  int v126; // [esp+7B0h] [ebp-AD0h]
  int v127; // [esp+7B4h] [ebp-ACCh]
  int v128; // [esp+7B8h] [ebp-AC8h]
  int v129; // [esp+7BCh] [ebp-AC4h]
  int v130; // [esp+7C0h] [ebp-AC0h]
  int v131; // [esp+7C4h] [ebp-ABCh]
  int v132; // [esp+7C8h] [ebp-AB8h]
  int v133; // [esp+7CCh] [ebp-AB4h]
  int v134; // [esp+7D0h] [ebp-AB0h]
  int v135; // [esp+7D4h] [ebp-AACh]
  int v136; // [esp+7D8h] [ebp-AA8h]
  int v137; // [esp+7DCh] [ebp-AA4h]
  int v138; // [esp+7E0h] [ebp-AA0h]
  int v139; // [esp+7E4h] [ebp-A9Ch]
  int v140; // [esp+7E8h] [ebp-A98h]
  int v141; // [esp+7ECh] [ebp-A94h]
  int v142; // [esp+7F0h] [ebp-A90h]
  int v143; // [esp+7F4h] [ebp-A8Ch]
  int v144; // [esp+7F8h] [ebp-A88h]
  int v145; // [esp+7FCh] [ebp-A84h]
  int v146; // [esp+800h] [ebp-A80h]
  int v147; // [esp+804h] [ebp-A7Ch]
  int v148; // [esp+808h] [ebp-A78h]
  int v149; // [esp+80Ch] [ebp-A74h]
  char v150; // [esp+810h] [ebp-A70h]
  int v151; // [esp+8A8h] [ebp-9D8h]
  int v152; // [esp+8ACh] [ebp-9D4h]
  int v153; // [esp+8B0h] [ebp-9D0h]
  int v154; // [esp+8B4h] [ebp-9CCh]
  int v155; // [esp+8B8h] [ebp-9C8h]
  int v156; // [esp+8BCh] [ebp-9C4h]
  int v157; // [esp+8C0h] [ebp-9C0h]
  int v158; // [esp+8C4h] [ebp-9BCh]
  int v159; // [esp+8C8h] [ebp-9B8h]
  int v160; // [esp+8CCh] [ebp-9B4h]
  int v161; // [esp+8D0h] [ebp-9B0h]
  int v162; // [esp+8D4h] [ebp-9ACh]
  int v163; // [esp+8D8h] [ebp-9A8h]
  int v164; // [esp+8DCh] [ebp-9A4h]
  int v165; // [esp+8E0h] [ebp-9A0h]
  int v166; // [esp+8E4h] [ebp-99Ch]
  int v167; // [esp+8E8h] [ebp-998h]
  int v168; // [esp+8ECh] [ebp-994h]
  int v169; // [esp+8F0h] [ebp-990h]
  int v170; // [esp+8F4h] [ebp-98Ch]
  int v171; // [esp+8F8h] [ebp-988h]
  int v172; // [esp+8FCh] [ebp-984h]
  int v173; // [esp+900h] [ebp-980h]
  int v174; // [esp+904h] [ebp-97Ch]
  int v175; // [esp+908h] [ebp-978h]
  int v176; // [esp+90Ch] [ebp-974h]
  int v177; // [esp+910h] [ebp-970h]
  int v178; // [esp+914h] [ebp-96Ch]
  int v179; // [esp+918h] [ebp-968h]
  int v180; // [esp+91Ch] [ebp-964h]
  int v181; // [esp+920h] [ebp-960h]
  int v182; // [esp+924h] [ebp-95Ch]
  int v183; // [esp+928h] [ebp-958h]
  int v184; // [esp+92Ch] [ebp-954h]
  int v185; // [esp+930h] [ebp-950h]
  int v186; // [esp+934h] [ebp-94Ch]
  int v187; // [esp+938h] [ebp-948h]
  int v188; // [esp+93Ch] [ebp-944h]
  int v189; // [esp+940h] [ebp-940h]
  int v190; // [esp+944h] [ebp-93Ch]
  int v191; // [esp+948h] [ebp-938h]
  int v192; // [esp+94Ch] [ebp-934h]
  int v193; // [esp+950h] [ebp-930h]
  int v194; // [esp+954h] [ebp-92Ch]
  int v195; // [esp+958h] [ebp-928h]
  int v196; // [esp+95Ch] [ebp-924h]
  int v197; // [esp+960h] [ebp-920h]
  int v198; // [esp+964h] [ebp-91Ch]
  int v199; // [esp+968h] [ebp-918h]
  int v200; // [esp+96Ch] [ebp-914h]
  int v201; // [esp+970h] [ebp-910h]
  int v202; // [esp+974h] [ebp-90Ch]
  int v203; // [esp+978h] [ebp-908h]
  int v204; // [esp+97Ch] [ebp-904h]
  int v205; // [esp+980h] [ebp-900h]
  int v206; // [esp+984h] [ebp-8FCh]
  int v207; // [esp+988h] [ebp-8F8h]
  int v208; // [esp+98Ch] [ebp-8F4h]
  int v209; // [esp+990h] [ebp-8F0h]
  int v210; // [esp+994h] [ebp-8ECh]
  int v211; // [esp+998h] [ebp-8E8h]
  int v212; // [esp+99Ch] [ebp-8E4h]
  int v213; // [esp+9A0h] [ebp-8E0h]
  int v214; // [esp+9A4h] [ebp-8DCh]
  char v215; // [esp+9A8h] [ebp-8D8h]
  int v216; // [esp+A40h] [ebp-840h]
  int v217; // [esp+A44h] [ebp-83Ch]
  int v218; // [esp+A48h] [ebp-838h]
  int v219; // [esp+A4Ch] [ebp-834h]
  int v220; // [esp+A50h] [ebp-830h]
  int v221; // [esp+A54h] [ebp-82Ch]
  int v222; // [esp+A58h] [ebp-828h]
  int v223; // [esp+A5Ch] [ebp-824h]
  int v224; // [esp+A60h] [ebp-820h]
  int v225; // [esp+A64h] [ebp-81Ch]
  int v226; // [esp+A68h] [ebp-818h]
  int v227; // [esp+A6Ch] [ebp-814h]
  int v228; // [esp+A70h] [ebp-810h]
  int v229; // [esp+A74h] [ebp-80Ch]
  int v230; // [esp+A78h] [ebp-808h]
  int v231; // [esp+A7Ch] [ebp-804h]
  int v232; // [esp+A80h] [ebp-800h]
  int v233; // [esp+A84h] [ebp-7FCh]
  int v234; // [esp+A88h] [ebp-7F8h]
  int v235; // [esp+A8Ch] [ebp-7F4h]
  int v236; // [esp+A90h] [ebp-7F0h]
  int v237; // [esp+A94h] [ebp-7ECh]
  int v238; // [esp+A98h] [ebp-7E8h]
  int v239; // [esp+A9Ch] [ebp-7E4h]
  int v240; // [esp+AA0h] [ebp-7E0h]
  int v241; // [esp+AA4h] [ebp-7DCh]
  int v242; // [esp+AA8h] [ebp-7D8h]
  int v243; // [esp+AACh] [ebp-7D4h]
  int v244; // [esp+AB0h] [ebp-7D0h]
  int v245; // [esp+AB4h] [ebp-7CCh]
  int v246; // [esp+AB8h] [ebp-7C8h]
  int v247; // [esp+ABCh] [ebp-7C4h]
  int v248; // [esp+AC0h] [ebp-7C0h]
  int v249; // [esp+AC4h] [ebp-7BCh]
  int v250; // [esp+AC8h] [ebp-7B8h]
  int v251; // [esp+ACCh] [ebp-7B4h]
  int v252; // [esp+AD0h] [ebp-7B0h]
  int v253; // [esp+AD4h] [ebp-7ACh]
  int v254; // [esp+AD8h] [ebp-7A8h]
  int v255; // [esp+ADCh] [ebp-7A4h]
  int v256; // [esp+AE0h] [ebp-7A0h]
  int v257; // [esp+AE4h] [ebp-79Ch]
  int v258; // [esp+AE8h] [ebp-798h]
  int v259; // [esp+AECh] [ebp-794h]
  int v260; // [esp+AF0h] [ebp-790h]
  int v261; // [esp+AF4h] [ebp-78Ch]
  int v262; // [esp+AF8h] [ebp-788h]
  int v263; // [esp+AFCh] [ebp-784h]
  int v264; // [esp+B00h] [ebp-780h]
  int v265; // [esp+B04h] [ebp-77Ch]
  int v266; // [esp+B08h] [ebp-778h]
  int v267; // [esp+B0Ch] [ebp-774h]
  int v268; // [esp+B10h] [ebp-770h]
  int v269; // [esp+B14h] [ebp-76Ch]
  int v270; // [esp+B18h] [ebp-768h]
  int v271; // [esp+B1Ch] [ebp-764h]
  int v272; // [esp+B20h] [ebp-760h]
  int v273; // [esp+B24h] [ebp-75Ch]
  int v274; // [esp+B28h] [ebp-758h]
  int v275; // [esp+B2Ch] [ebp-754h]
  int v276; // [esp+B30h] [ebp-750h]
  int v277; // [esp+B34h] [ebp-74Ch]
  int v278; // [esp+B38h] [ebp-748h]
  int v279; // [esp+B3Ch] [ebp-744h]
  char v280; // [esp+B40h] [ebp-740h]
  int v281; // [esp+BD8h] [ebp-6A8h]
  int v282; // [esp+BDCh] [ebp-6A4h]
  int v283; // [esp+BE0h] [ebp-6A0h]
  int v284; // [esp+BE4h] [ebp-69Ch]
  int v285; // [esp+BE8h] [ebp-698h]
  int v286; // [esp+BECh] [ebp-694h]
  int v287; // [esp+BF0h] [ebp-690h]
  int v288; // [esp+BF4h] [ebp-68Ch]
  int v289; // [esp+BF8h] [ebp-688h]
  int v290; // [esp+BFCh] [ebp-684h]
  int v291; // [esp+C00h] [ebp-680h]
  int v292; // [esp+C04h] [ebp-67Ch]
  int v293; // [esp+C08h] [ebp-678h]
  int v294; // [esp+C0Ch] [ebp-674h]
  int v295; // [esp+C10h] [ebp-670h]
  int v296; // [esp+C14h] [ebp-66Ch]
  int v297; // [esp+C18h] [ebp-668h]
  int v298; // [esp+C1Ch] [ebp-664h]
  int v299; // [esp+C20h] [ebp-660h]
  int v300; // [esp+C24h] [ebp-65Ch]
  int v301; // [esp+C28h] [ebp-658h]
  int v302; // [esp+C2Ch] [ebp-654h]
  int v303; // [esp+C30h] [ebp-650h]
  int v304; // [esp+C34h] [ebp-64Ch]
  int v305; // [esp+C38h] [ebp-648h]
  int v306; // [esp+C3Ch] [ebp-644h]
  int v307; // [esp+C40h] [ebp-640h]
  int v308; // [esp+C44h] [ebp-63Ch]
  int v309; // [esp+C48h] [ebp-638h]
  int v310; // [esp+C4Ch] [ebp-634h]
  int v311; // [esp+C50h] [ebp-630h]
  int v312; // [esp+C54h] [ebp-62Ch]
  int v313; // [esp+C58h] [ebp-628h]
  int v314; // [esp+C5Ch] [ebp-624h]
  int v315; // [esp+C60h] [ebp-620h]
  int v316; // [esp+C64h] [ebp-61Ch]
  int v317; // [esp+C68h] [ebp-618h]
  int v318; // [esp+C6Ch] [ebp-614h]
  int v319; // [esp+C70h] [ebp-610h]
  int v320; // [esp+C74h] [ebp-60Ch]
  int v321; // [esp+C78h] [ebp-608h]
  int v322; // [esp+C7Ch] [ebp-604h]
  int v323; // [esp+C80h] [ebp-600h]
  int v324; // [esp+C84h] [ebp-5FCh]
  int v325; // [esp+C88h] [ebp-5F8h]
  int v326; // [esp+C8Ch] [ebp-5F4h]
  int v327; // [esp+C90h] [ebp-5F0h]
  int v328; // [esp+C94h] [ebp-5ECh]
  int v329; // [esp+C98h] [ebp-5E8h]
  int v330; // [esp+C9Ch] [ebp-5E4h]
  int v331; // [esp+CA0h] [ebp-5E0h]
  int v332; // [esp+CA4h] [ebp-5DCh]
  int v333; // [esp+CA8h] [ebp-5D8h]
  int v334; // [esp+CACh] [ebp-5D4h]
  int v335; // [esp+CB0h] [ebp-5D0h]
  int v336; // [esp+CB4h] [ebp-5CCh]
  int v337; // [esp+CB8h] [ebp-5C8h]
  int v338; // [esp+CBCh] [ebp-5C4h]
  int v339; // [esp+CC0h] [ebp-5C0h]
  int v340; // [esp+CC4h] [ebp-5BCh]
  int v341; // [esp+CC8h] [ebp-5B8h]
  int v342; // [esp+CCCh] [ebp-5B4h]
  int v343; // [esp+CD0h] [ebp-5B0h]
  int v344; // [esp+CD4h] [ebp-5ACh]
  char v345; // [esp+CD8h] [ebp-5A8h]
  int v346; // [esp+D70h] [ebp-510h]
  int v347; // [esp+D74h] [ebp-50Ch]
  int v348; // [esp+D78h] [ebp-508h]
  int v349; // [esp+D7Ch] [ebp-504h]
  int v350; // [esp+D80h] [ebp-500h]
  int v351; // [esp+D84h] [ebp-4FCh]
  int v352; // [esp+D88h] [ebp-4F8h]
  int v353; // [esp+D8Ch] [ebp-4F4h]
  int v354; // [esp+D90h] [ebp-4F0h]
  int v355; // [esp+D94h] [ebp-4ECh]
  int v356; // [esp+D98h] [ebp-4E8h]
  int v357; // [esp+D9Ch] [ebp-4E4h]
  int v358; // [esp+DA0h] [ebp-4E0h]
  int v359; // [esp+DA4h] [ebp-4DCh]
  int v360; // [esp+DA8h] [ebp-4D8h]
  int v361; // [esp+DACh] [ebp-4D4h]
  int v362; // [esp+DB0h] [ebp-4D0h]
  int v363; // [esp+DB4h] [ebp-4CCh]
  int v364; // [esp+DB8h] [ebp-4C8h]
  int v365; // [esp+DBCh] [ebp-4C4h]
  int v366; // [esp+DC0h] [ebp-4C0h]
  int v367; // [esp+DC4h] [ebp-4BCh]
  int v368; // [esp+DC8h] [ebp-4B8h]
  int v369; // [esp+DCCh] [ebp-4B4h]
  int v370; // [esp+DD0h] [ebp-4B0h]
  int v371; // [esp+DD4h] [ebp-4ACh]
  int v372; // [esp+DD8h] [ebp-4A8h]
  int v373; // [esp+DDCh] [ebp-4A4h]
  int v374; // [esp+DE0h] [ebp-4A0h]
  int v375; // [esp+DE4h] [ebp-49Ch]
  int v376; // [esp+DE8h] [ebp-498h]
  int v377; // [esp+DECh] [ebp-494h]
  int v378; // [esp+DF0h] [ebp-490h]
  int v379; // [esp+DF4h] [ebp-48Ch]
  int v380; // [esp+DF8h] [ebp-488h]
  int v381; // [esp+DFCh] [ebp-484h]
  int v382; // [esp+E00h] [ebp-480h]
  int v383; // [esp+E04h] [ebp-47Ch]
  int v384; // [esp+E08h] [ebp-478h]
  int v385; // [esp+E0Ch] [ebp-474h]
  int v386; // [esp+E10h] [ebp-470h]
  int v387; // [esp+E14h] [ebp-46Ch]
  int v388; // [esp+E18h] [ebp-468h]
  int v389; // [esp+E1Ch] [ebp-464h]
  int v390; // [esp+E20h] [ebp-460h]
  int v391; // [esp+E24h] [ebp-45Ch]
  int v392; // [esp+E28h] [ebp-458h]
  int v393; // [esp+E2Ch] [ebp-454h]
  int v394; // [esp+E30h] [ebp-450h]
  int v395; // [esp+E34h] [ebp-44Ch]
  int v396; // [esp+E38h] [ebp-448h]
  int v397; // [esp+E3Ch] [ebp-444h]
  int v398; // [esp+E40h] [ebp-440h]
  int v399; // [esp+E44h] [ebp-43Ch]
  int v400; // [esp+E48h] [ebp-438h]
  int v401; // [esp+E4Ch] [ebp-434h]
  int v402; // [esp+E50h] [ebp-430h]
  int v403; // [esp+E54h] [ebp-42Ch]
  int v404; // [esp+E58h] [ebp-428h]
  int v405; // [esp+E5Ch] [ebp-424h]
  int v406; // [esp+E60h] [ebp-420h]
  int v407; // [esp+E64h] [ebp-41Ch]
  int v408; // [esp+E68h] [ebp-418h]
  int v409; // [esp+E6Ch] [ebp-414h]
  char v410; // [esp+E70h] [ebp-410h]
  int v411; // [esp+F08h] [ebp-378h]
  int v412; // [esp+F0Ch] [ebp-374h]
  int v413; // [esp+F10h] [ebp-370h]
  int v414; // [esp+F14h] [ebp-36Ch]
  int v415; // [esp+F18h] [ebp-368h]
  int v416; // [esp+F1Ch] [ebp-364h]
  int v417; // [esp+F20h] [ebp-360h]
  int v418; // [esp+F24h] [ebp-35Ch]
  int v419; // [esp+F28h] [ebp-358h]
  int v420; // [esp+F2Ch] [ebp-354h]
  int v421; // [esp+F30h] [ebp-350h]
  int v422; // [esp+F34h] [ebp-34Ch]
  int v423; // [esp+F38h] [ebp-348h]
  int v424; // [esp+F3Ch] [ebp-344h]
  int v425; // [esp+F40h] [ebp-340h]
  int v426; // [esp+F44h] [ebp-33Ch]
  int v427; // [esp+F48h] [ebp-338h]
  int v428; // [esp+F4Ch] [ebp-334h]
  int v429; // [esp+F50h] [ebp-330h]
  int v430; // [esp+F54h] [ebp-32Ch]
  int v431; // [esp+F58h] [ebp-328h]
  int v432; // [esp+F5Ch] [ebp-324h]
  int v433; // [esp+F60h] [ebp-320h]
  int v434; // [esp+F64h] [ebp-31Ch]
  int v435; // [esp+F68h] [ebp-318h]
  int v436; // [esp+F6Ch] [ebp-314h]
  int v437; // [esp+F70h] [ebp-310h]
  int v438; // [esp+F74h] [ebp-30Ch]
  int v439; // [esp+F78h] [ebp-308h]
  int v440; // [esp+F7Ch] [ebp-304h]
  int v441; // [esp+F80h] [ebp-300h]
  int v442; // [esp+F84h] [ebp-2FCh]
  int v443; // [esp+F88h] [ebp-2F8h]
  int v444; // [esp+F8Ch] [ebp-2F4h]
  int v445; // [esp+F90h] [ebp-2F0h]
  int v446; // [esp+F94h] [ebp-2ECh]
  int v447; // [esp+F98h] [ebp-2E8h]
  int v448; // [esp+F9Ch] [ebp-2E4h]
  int v449; // [esp+FA0h] [ebp-2E0h]
  int v450; // [esp+FA4h] [ebp-2DCh]
  int v451; // [esp+FA8h] [ebp-2D8h]
  int v452; // [esp+FACh] [ebp-2D4h]
  int v453; // [esp+FB0h] [ebp-2D0h]
  int v454; // [esp+FB4h] [ebp-2CCh]
  int v455; // [esp+FB8h] [ebp-2C8h]
  int v456; // [esp+FBCh] [ebp-2C4h]
  int v457; // [esp+FC0h] [ebp-2C0h]
  int v458; // [esp+FC4h] [ebp-2BCh]
  int v459; // [esp+FC8h] [ebp-2B8h]
  int v460; // [esp+FCCh] [ebp-2B4h]
  int v461; // [esp+FD0h] [ebp-2B0h]
  int v462; // [esp+FD4h] [ebp-2ACh]
  int v463; // [esp+FD8h] [ebp-2A8h]
  int v464; // [esp+FDCh] [ebp-2A4h]
  int v465; // [esp+FE0h] [ebp-2A0h]
  int v466; // [esp+FE4h] [ebp-29Ch]
  int v467; // [esp+FE8h] [ebp-298h]
  int v468; // [esp+FECh] [ebp-294h]
  int v469; // [esp+FF0h] [ebp-290h]
  int v470; // [esp+FF4h] [ebp-28Ch]
  int v471; // [esp+FF8h] [ebp-288h]
  int v472; // [esp+FFCh] [ebp-284h]
  int v473; // [esp+1000h] [ebp-280h]
  int v474; // [esp+1004h] [ebp-27Ch]
  char v475; // [esp+1008h] [ebp-278h]
  int v476; // [esp+10A0h] [ebp-1E0h]
  int v477; // [esp+10A4h] [ebp-1DCh]
  int v478; // [esp+10A8h] [ebp-1D8h]
  int v479; // [esp+10ACh] [ebp-1D4h]
  int v480; // [esp+10B0h] [ebp-1D0h]
  int v481; // [esp+10B4h] [ebp-1CCh]
  int v482; // [esp+10B8h] [ebp-1C8h]
  int v483; // [esp+10BCh] [ebp-1C4h]
  int v484; // [esp+10C0h] [ebp-1C0h]
  int v485; // [esp+10C4h] [ebp-1BCh]
  int v486; // [esp+10C8h] [ebp-1B8h]
  int v487; // [esp+10CCh] [ebp-1B4h]
  int v488; // [esp+10D0h] [ebp-1B0h]
  int v489; // [esp+10D4h] [ebp-1ACh]
  int v490; // [esp+10D8h] [ebp-1A8h]
  int v491; // [esp+10DCh] [ebp-1A4h]
  int v492; // [esp+10E0h] [ebp-1A0h]
  int v493; // [esp+10E4h] [ebp-19Ch]
  int v494; // [esp+10E8h] [ebp-198h]
  int v495; // [esp+10ECh] [ebp-194h]
  int v496; // [esp+10F0h] [ebp-190h]
  int v497; // [esp+10F4h] [ebp-18Ch]
  int v498; // [esp+10F8h] [ebp-188h]
  int v499; // [esp+10FCh] [ebp-184h]
  int v500; // [esp+1100h] [ebp-180h]
  int v501; // [esp+1104h] [ebp-17Ch]
  int v502; // [esp+1108h] [ebp-178h]
  int v503; // [esp+110Ch] [ebp-174h]
  int v504; // [esp+1110h] [ebp-170h]
  int v505; // [esp+1114h] [ebp-16Ch]
  int v506; // [esp+1118h] [ebp-168h]
  int v507; // [esp+111Ch] [ebp-164h]
  int v508; // [esp+1120h] [ebp-160h]
  int v509; // [esp+1124h] [ebp-15Ch]
  int v510; // [esp+1128h] [ebp-158h]
  int v511; // [esp+112Ch] [ebp-154h]
  int v512; // [esp+1130h] [ebp-150h]
  int v513; // [esp+1134h] [ebp-14Ch]
  int v514; // [esp+1138h] [ebp-148h]
  int v515; // [esp+113Ch] [ebp-144h]
  int v516; // [esp+1140h] [ebp-140h]
  int v517; // [esp+1144h] [ebp-13Ch]
  int v518; // [esp+1148h] [ebp-138h]
  int v519; // [esp+114Ch] [ebp-134h]
  int v520; // [esp+1150h] [ebp-130h]
  int v521; // [esp+1154h] [ebp-12Ch]
  int v522; // [esp+1158h] [ebp-128h]
  int v523; // [esp+115Ch] [ebp-124h]
  int v524; // [esp+1160h] [ebp-120h]
  int v525; // [esp+1164h] [ebp-11Ch]
  int v526; // [esp+1168h] [ebp-118h]
  int v527; // [esp+116Ch] [ebp-114h]
  int v528; // [esp+1170h] [ebp-110h]
  int v529; // [esp+1174h] [ebp-10Ch]
  int v530; // [esp+1178h] [ebp-108h]
  int v531; // [esp+117Ch] [ebp-104h]
  int v532; // [esp+1180h] [ebp-100h]
  int v533; // [esp+1184h] [ebp-FCh]
  int v534; // [esp+1188h] [ebp-F8h]
  int v535; // [esp+118Ch] [ebp-F4h]
  int v536; // [esp+1190h] [ebp-F0h]
  int v537; // [esp+1194h] [ebp-ECh]
  int v538; // [esp+1198h] [ebp-E8h]
  int v539; // [esp+119Ch] [ebp-E4h]
  char v540; // [esp+11A0h] [ebp-E0h]
  char v541[36]; // [esp+1238h] [ebp-48h]
  int v542; // [esp+125Ch] [ebp-24h]
  int v543; // [esp+1260h] [ebp-20h]
  int v544; // [esp+1264h] [ebp-1Ch]
  __int16 v545; // [esp+1268h] [ebp-18h]
  CWnd *v546; // [esp+1274h] [ebp-Ch]

  v546 = this;
  __CheckForDebuggerJustMyCode(&unk_436022);
  v1 = CWnd::GetDlgItem(v546, 1000);
  CWnd::GetWindowTextW(v1, (char *)v546 + 212); // v546 + 212 :保存输入的字符串
  strcpy(v541, "Ksz5URoaEHP0$gXh7xZnFhkfefUzZhll8yG");
  v542 = 0;
  v543 = 0;
  v544 = 0;
  v545 = 0;
  v476 = '\x0E';
  v477 = '\x04';
  v478 = '\r';
  v479 = '\x01';
  v480 = 2;
  v481 = '\x0F';
  v482 = '\v';
  v483 = 8;
  v484 = 3;
  v485 = 10;
  v486 = 6;
  v487 = 12;
  v488 = 5;
  v489 = 9;
  v490 = 0;
  v491 = 7;
  v492 = 0;
  v493 = 15;
  v494 = 7;
  v495 = 4;
  v496 = 14;
  v497 = 2;
  v498 = 13;
  v499 = 1;
  v500 = 10;
  v501 = 6;
  v502 = 12;
  v503 = 11;
  v504 = 9;
  v505 = 5;
  v506 = 3;
  v507 = 8;
  v508 = 4;
  v509 = 1;
  v510 = 14;
  v511 = 8;
  v512 = 13;
  v513 = 6;
  v514 = 2;
  v515 = 11;
  v516 = 15;
  v517 = 12;
  v518 = 9;
  v519 = 7;
  v520 = 3;
  v521 = 10;
  v522 = 5;
  v523 = 0;
  v524 = 15;
  v525 = 12;
  v526 = 8;
  v527 = 2;
  v528 = 4;
  v529 = 9;
  v530 = 1;
  v531 = 7;
  v532 = 5;
  v533 = 11;
  v534 = 3;
  v535 = 14;
  v536 = 10;
  v537 = 0;
  v538 = 6;
  v539 = 13;
  j_memset(&v540, 0, 0x90u);
  v411 = 15;
  v412 = 1;
  v413 = 8;
  v414 = 14;
  v415 = 6;
  v416 = 11;
  v417 = 3;
  v418 = 4;
  v419 = 9;
  v420 = 7;
  v421 = 2;
  v422 = 13;
  v423 = 12;
  v424 = 0;
  v425 = 5;
  v426 = 10;
  v427 = 3;
  v428 = 13;
  v429 = 4;
  v430 = 7;
  v431 = 15;
  v432 = 2;
  v433 = 8;
  v434 = 14;
  v435 = 12;
  v436 = 0;
  v437 = 1;
  v438 = 10;
  v439 = 6;
  v440 = 9;
  v441 = 11;
  v442 = 5;
  v443 = 0;
  v444 = 14;
  v445 = 7;
  v446 = 11;
  v447 = 10;
  v448 = 4;
  v449 = 13;
  v450 = 1;
  v451 = 5;
  v452 = 8;
  v453 = 12;
  v454 = 6;
  v455 = 9;
  v456 = 3;
  v457 = 2;
  v458 = 15;
  v459 = 13;
  v460 = 8;
  v461 = 10;
  v462 = 1;
  v463 = 3;
  v464 = 15;
  v465 = 4;
  v466 = 2;
  v467 = 11;
  v468 = 6;
  v469 = 7;
  v470 = 12;
  v471 = 0;
  v472 = 5;
  v473 = 14;
  v474 = 9;
  j_memset(&v475, 0, 0x90u);
  v346 = 10;
  v347 = 0;
  v348 = 9;
  v349 = 14;
  v350 = 6;
  v351 = 3;
  v352 = 15;
  v353 = 5;
  v354 = 1;
  v355 = 13;
  v356 = 12;
  v357 = 7;
  v358 = 11;
  v359 = 4;
  v360 = 2;
  v361 = 8;
  v362 = 13;
  v363 = 7;
  v364 = 0;
  v365 = 9;
  v366 = 3;
  v367 = 4;
  v368 = 6;
  v369 = 10;
  v370 = 2;
  v371 = 8;
  v372 = 5;
  v373 = 14;
  v374 = 12;
  v375 = 11;
  v376 = 15;
  v377 = 1;
  v378 = 13;
  v379 = 6;
  v380 = 4;
  v381 = 9;
  v382 = 8;
  v383 = 15;
  v384 = 3;
  v385 = 0;
  v386 = 11;
  v387 = 1;
  v388 = 2;
  v389 = 12;
  v390 = 5;
  v391 = 10;
  v392 = 14;
  v393 = 7;
  v394 = 1;
  v395 = 10;
  v396 = 13;
  v397 = 0;
  v398 = 6;
  v399 = 9;
  v400 = 8;
  v401 = 7;
  v402 = 4;
  v403 = 15;
  v404 = 14;
  v405 = 3;
  v406 = 11;
  v407 = 5;
  v408 = 2;
  v409 = 12;
  j_memset(&v410, 0, 0x90u);
  v281 = 7;
  v282 = 13;
  v283 = 14;
  v284 = 3;
  v285 = 0;
  v286 = 6;
  v287 = 9;
  v288 = 10;
  v289 = 1;
  v290 = 2;
  v291 = 8;
  v292 = 5;
  v293 = 11;
  v294 = 12;
  v295 = 4;
  v296 = 15;
  v297 = 13;
  v298 = 8;
  v299 = 11;
  v300 = 5;
  v301 = 6;
  v302 = 15;
  v303 = 0;
  v304 = 3;
  v305 = 4;
  v306 = 7;
  v307 = 2;
  v308 = 12;
  v309 = 1;
  v310 = 10;
  v311 = 14;
  v312 = 9;
  v313 = 10;
  v314 = 6;
  v315 = 9;
  v316 = 0;
  v317 = 12;
  v318 = 11;
  v319 = 7;
  v320 = 13;
  v321 = 15;
  v322 = 1;
  v323 = 3;
  v324 = 14;
  v325 = 5;
  v326 = 2;
  v327 = 8;
  v328 = 4;
  v329 = 3;
  v330 = 15;
  v331 = 0;
  v332 = 6;
  v333 = 10;
  v334 = 1;
  v335 = 13;
  v336 = 8;
  v337 = 9;
  v338 = 4;
  v339 = 5;
  v340 = 11;
  v341 = 12;
  v342 = 7;
  v343 = 2;
  v344 = 14;
  j_memset(&v345, 0, 0x90u);
  v216 = 2;
  v217 = 12;
  v218 = 4;
  v219 = 1;
  v220 = 7;
  v221 = 10;
  v222 = 11;
  v223 = 6;
  v224 = 8;
  v225 = 5;
  v226 = 3;
  v227 = 15;
  v228 = 13;
  v229 = 0;
  v230 = 14;
  v231 = 9;
  v232 = 14;
  v233 = 11;
  v234 = 2;
  v235 = 12;
  v236 = 4;
  v237 = 7;
  v238 = 13;
  v239 = 1;
  v240 = 5;
  v241 = 0;
  v242 = 15;
  v243 = 10;
  v244 = 3;
  v245 = 9;
  v246 = 8;
  v247 = 6;
  v248 = 4;
  v249 = 2;
  v250 = 1;
  v251 = 11;
  v252 = 10;
  v253 = 13;
  v254 = 7;
  v255 = 8;
  v256 = 15;
  v257 = 9;
  v258 = 12;
  v259 = 5;
  v260 = 6;
  v261 = 3;
  v262 = 0;
  v263 = 14;
  v264 = 11;
  v265 = 8;
  v266 = 12;
  v267 = 7;
  v268 = 1;
  v269 = 14;
  v270 = 2;
  v271 = 13;
  v272 = 6;
  v273 = 15;
  v274 = 0;
  v275 = 9;
  v276 = 10;
  v277 = 4;
  v278 = 5;
  v279 = 3;
  j_memset(&v280, 0, 0x90u);
  v151 = 12;
  v152 = 1;
  v153 = 10;
  v154 = 15;
  v155 = 9;
  v156 = 2;
  v157 = 6;
  v158 = 8;
  v159 = 0;
  v160 = 13;
  v161 = 3;
  v162 = 4;
  v163 = 14;
  v164 = 7;
  v165 = 5;
  v166 = 11;
  v167 = 10;
  v168 = 15;
  v169 = 4;
  v170 = 2;
  v171 = 7;
  v172 = 12;
  v173 = 9;
  v174 = 5;
  v175 = 6;
  v176 = 1;
  v177 = 13;
  v178 = 14;
  v179 = 0;
  v180 = 11;
  v181 = 3;
  v182 = 8;
  v183 = 9;
  v184 = 14;
  v185 = 15;
  v186 = 5;
  v187 = 2;
  v188 = 8;
  v189 = 12;
  v190 = 3;
  v191 = 7;
  v192 = 0;
  v193 = 4;
  v194 = 10;
  v195 = 1;
  v196 = 13;
  v197 = 11;
  v198 = 6;
  v199 = 4;
  v200 = 3;
  v201 = 2;
  v202 = 12;
  v203 = 9;
  v204 = 5;
  v205 = 15;
  v206 = 10;
  v207 = 11;
  v208 = 14;
  v209 = 1;
  v210 = 7;
  v211 = 6;
  v212 = 0;
  v213 = 8;
  v214 = 13;
  j_memset(&v215, 0, 0x90u);
  v86 = 4;
  v87 = 11;
  v88 = 2;
  v89 = 14;
  v90 = 15;
  v91 = 0;
  v92 = 8;
  v93 = 13;
  v94 = 3;
  v95 = 12;
  v96 = 9;
  v97 = 7;
  v98 = 5;
  v99 = 10;
  v100 = 6;
  v101 = 1;
  v102 = 13;
  v103 = 0;
  v104 = 11;
  v105 = 7;
  v106 = 4;
  v107 = 9;
  v108 = 1;
  v109 = 10;
  v110 = 14;
  v111 = 3;
  v112 = 5;
  v113 = 12;
  v114 = 2;
  v115 = 15;
  v116 = 8;
  v117 = 6;
  v118 = 1;
  v119 = 4;
  v120 = 11;
  v121 = 13;
  v122 = 12;
  v123 = 3;
  v124 = 7;
  v125 = 14;
  v126 = 10;
  v127 = 15;
  v128 = 6;
  v129 = 8;
  v130 = 0;
  v131 = 5;
  v132 = 9;
  v133 = 2;
  v134 = 6;
  v135 = 11;
  v136 = 13;
  v137 = 8;
  v138 = 1;
  v139 = 4;
  v140 = 10;
  v141 = 7;
  v142 = 9;
  v143 = 5;
  v144 = 0;
  v145 = 15;
  v146 = 14;
  v147 = 2;
  v148 = 3;
  v149 = 12;
  j_memset(&v150, 0, 0x90u);
  v21 = 13;
  v22 = 2;
  v23 = 8;
  v24 = 4;
  v25 = 6;
  v26 = 15;
  v27 = 11;
  v28 = 1;
  v29 = 10;
  v30 = 9;
  v31 = 3;
  v32 = 14;
  v33 = 5;
  v34 = 0;
  v35 = 12;
  v36 = 7;
  v37 = 1;
  v38 = 15;
  v39 = 13;
  v40 = 8;
  v41 = 10;
  v42 = 3;
  v43 = 7;
  v44 = 4;
  v45 = 12;
  v46 = 5;
  v47 = 6;
  v48 = 11;
  v49 = 0;
  v50 = 14;
  v51 = 9;
  v52 = 2;
  v53 = 7;
  v54 = 11;
  v55 = 4;
  v56 = 1;
  v57 = 9;
  v58 = 12;
  v59 = 14;
  v60 = 2;
  v61 = 0;
  v62 = 6;
  v63 = 10;
  v64 = 13;
  v65 = 15;
  v66 = 3;
  v67 = 5;
  v68 = 8;
  v69 = 2;
  v70 = 1;
  v71 = 14;
  v72 = 7;
  v73 = 4;
  v74 = 10;
  v75 = 8;
  v76 = 13;
  v77 = 15;
  v78 = 12;
  v79 = 9;
  v80 = 0;
  v81 = 3;
  v82 = 5;
  v83 = 6;
  v84 = 11;
  j_memset(&v85, 0, 0x90u);
  if ( &v476 == &v411 )
    sub_4112B7("0", v3);
  else
    sub_4112B7("1", v3);
  v5 = 69;
  v6 = 79;
  v7 = 66;
  v8 = 68;
  v9 = 88;
  v10 = 110;
  v11 = 112;
  v12 = 77;
  v13 = 65;
  v14 = 89;
  v15 = 68;
  v16 = 73;
  v17 = 65;
  v18 = 18;
  v19 = 16;
  v20[0] = 70;
  v20[1] = 114;
  v20[2] = 94;
  *(_WORD *)&v20[3] = 0;
  for ( i = 0; i < 18; ++i )                    // 解密密钥
    *(&v5 + i) ^= 0x23u;
  if ( (unsigned __int8)sub_41173F((int)v546 + 212, (int)&v5) )// 进行比对
                                                // 在这里下断点可以dmp出flag
                                                // flag{MSnbzgjb13eQ}
                                                // 
    result = MessageBoxA(0, "errore", "tip", 0);
  else
    result = MessageBoxA(0, "giusto", "tip", 0);
  return result;
}

0x2 破局

  • 关键函数一开始就有如下关键代码,负责保存输入的字符串

     CWnd::GetWindowTextW(v1, (char *)v546 + 212); // v546 + 212 :保存输入的字符串
  • v406 + 212出就是保存的输入的字符串

关键函数的末尾有如下关键逻辑

if ( (unsigned __int8)sub_41173F((int)v546 + 212, (int)&v5) )// 进行比对
                                                // 在这里下断点可以dmp出flag
                                                // flag{MSnbzgjb13eQ}
                                                // 
    result = MessageBoxA(0, "errore", "tip", 0);
  else
    result = MessageBoxA(0, "giusto", "tip", 0);
  • sub_41173F明显就是strcmp函数
  • 这里的v5就是正确的密钥
  • 在这里下断点就可以拿到flag:flag{MSnbzgjb13eQ}

已经分析好的ida数据库文件:

此处内容需要评论回复后(审核通过)方可阅读。

Last modification:December 13, 2021
如果觉得我的文章对你有用,请随意赞赏