这是一道非常简单的动态调试题目
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数据库文件:
此处内容需要评论回复后(审核通过)方可阅读。
4 comments
tql
大佬太强了,想看看你的ida分析文件,感谢感谢
我也是那天参加的比赛,可是F5这段代码不能直接反编译的哇
好像是有堆栈错误,要修复一下。具体记不清了