Добрый день! Уважаемые товарищи, у меня возник вопрос при изучении цикла статей о Olly и работы с ним, размещенных на вашем чудесном сайте. (http://wasm.ru/series.php?sid=17) Объясните пожалуйста почему при нажатии клавиши Ф7 инструкции выполняются не последовательно а в какой-то непонятной последовательности. Я рассматриваю пример описанный в статье третей вышеупомянутого цикла ( http://wasm.ru/article.php?article=ollydbg03 ). Так кот, в примере сказано и показано, что чтобы выполнять программу последовательно надо жать клавишу F7, я так и делаю но вместо того, чтобы перейти с инструкции ( к примеру ) 00401000 к 00401002 (такая их очередность в таблице которая находится в левом верхнем углу) я попадаю непонятно куда =) 02350005, а при последующих нажатиях клавиши четвертая (с лева) цифра инструкции увеличивается на 3, с постоянным шагом. Я проверял, при первом нажатии Ф7 регистр ЕИП содержит правильную инструкцию т.е. 0040100. И что самое интересное, смотрю дамп по номеру инструкции, он отличен от изначального, т.е. инструкция выполняется, но почему они выполняются не последовательно ? Скорее всего я что-то делаю не так, но что? Очень прошу помощи, т.к. сам ничего понять не в состоянии, а в последующих статьях цикла повсеместно используется этот прием последовательной трассировки... Заранее благодарю за ответ, с ув. Максим.
F7 - трасировка с заходом в функцию т.е есть к примеру Код (Text): call 0043214 то при трасировке по F7 ты попадешь по адресу вызова 0043214. Че то не пойму как у тебя получается проскочить при первом шаге? Ты код можешь показать с отладчика?
Спасибо за помощь ! Вот код: Код (Text): 00401000 > 6A 00 PUSH 0 00401002 E8 FF040000 CALL <JMP.&KERNEL32.GetModuleHandleA> 00401007 A3 CA204000 MOV DWORD PTR DS:[4020CA],EAX 0040100C 6A 00 PUSH 0 0040100E 68 F4204000 PUSH CRACKME.004020F4 ; ASCII "No need to disasm the code!" 00401013 E8 A6040000 CALL <JMP.&USER32.FindWindowA> 00401018 0BC0 OR EAX,EAX 0040101A 74 01 JE SHORT CRACKME.0040101D 0040101C C3 RETN 0040101D C705 64204000 03>MOV DWORD PTR DS:[402064],4003 00401027 C705 68204000 28>MOV DWORD PTR DS:[402068],CRACKME.WndPro> 00401031 C705 6C204000 00>MOV DWORD PTR DS:[40206C],0 0040103B C705 70204000 00>MOV DWORD PTR DS:[402070],0 00401045 A1 CA204000 MOV EAX,DWORD PTR DS:[4020CA] 0040104A A3 74204000 MOV DWORD PTR DS:[402074],EAX 0040104F 6A 64 PUSH 64 00401051 50 PUSH EAX 00401052 E8 D1030000 CALL <JMP.&USER32.LoadIconA> 00401057 A3 78204000 MOV DWORD PTR DS:[402078],EAX 0040105C 68 007F0000 PUSH 7F00 00401061 6A 00 PUSH 0 00401063 E8 A2030000 CALL <JMP.&USER32.LoadCursorA> 00401068 A3 7C204000 MOV DWORD PTR DS:[40207C],EAX 0040106D C705 80204000 05>MOV DWORD PTR DS:[402080],5 00401077 C705 84204000 10>MOV DWORD PTR DS:[402084],CRACKME.004021>; ASCII "MENU" 00401081 C705 88204000 F4>MOV DWORD PTR DS:[402088],CRACKME.004020>; ASCII "No need to disasm the code!" 0040108B 68 64204000 PUSH CRACKME.00402064 00401090 E8 F3030000 CALL <JMP.&USER32.RegisterClassA> 00401095 6A 00 PUSH 0 00401097 FF35 CA204000 PUSH DWORD PTR DS:[4020CA] 0040109D 6A 00 PUSH 0 0040109F 6A 00 PUSH 0 004010A1 68 00800000 PUSH 8000 004010A6 68 00800000 PUSH 8000 004010AB 6A 6E PUSH 6E 004010AD 68 B4000000 PUSH 0B4 004010B2 68 0000CF00 PUSH 0CF0000 004010B7 68 E7204000 PUSH CRACKME.004020E7 ; ASCII "CrackMe v1.0" 004010BC 68 F4204000 PUSH CRACKME.004020F4 ; ASCII "No need to disasm the code!" 004010C1 6A 00 PUSH 0 004010C3 E8 CC030000 CALL <JMP.&USER32.CreateWindowExA> 004010C8 A3 04204000 MOV DWORD PTR DS:[402004],EAX 004010CD 6A 01 PUSH 1 004010CF FF35 04204000 PUSH DWORD PTR DS:[402004] 004010D5 E8 90030000 CALL <JMP.&USER32.ShowWindow> 004010DA FF35 04204000 PUSH DWORD PTR DS:[402004] 004010E0 E8 9D030000 CALL <JMP.&USER32.UpdateWindow> 004010E5 6A 01 PUSH 1 004010E7 6A 00 PUSH 0 004010E9 FF75 08 PUSH DWORD PTR SS:[EBP+8] 004010EC E8 5B030000 CALL <JMP.&USER32.InvalidateRect> 004010F1 6A 00 PUSH 0 004010F3 6A 00 PUSH 0 004010F5 6A 00 PUSH 0 004010F7 68 48204000 PUSH CRACKME.00402048 004010FC E8 D5030000 CALL <JMP.&USER32.GetMessageA> 00401101 66:3D 0000 CMP AX,0 00401105 74 16 JE SHORT CRACKME.0040111D 00401107 68 48204000 PUSH CRACKME.00402048 0040110C E8 4D030000 CALL <JMP.&USER32.TranslateMessage> 00401111 68 48204000 PUSH CRACKME.00402048 00401116 E8 8B030000 CALL <JMP.&USER32.DispatchMessageA> 0040111B ^EB D4 JMP SHORT CRACKME.004010F1 0040111D FF35 50204000 PUSH DWORD PTR DS:[402050] 00401123 E8 EA030000 CALL <JMP.&KERNEL32.ExitProcess> 00401128 > C8 000000 ENTER 0,0 0040112C 56 PUSH ESI 0040112D 57 PUSH EDI 0040112E 53 PUSH EBX 0040112F 837D 0C 02 CMP DWORD PTR SS:[EBP+C],2 00401133 74 5E JE SHORT CRACKME.00401193 00401135 817D 0C 04020000 CMP DWORD PTR SS:[EBP+C],204 0040113C 74 65 JE SHORT CRACKME.004011A3 0040113E 90 NOP 0040113F 90 NOP 00401140 90 NOP 00401141 90 NOP 00401142 837D 0C 05 CMP DWORD PTR SS:[EBP+C],5 00401146 74 5D JE SHORT CRACKME.004011A5 00401148 837D 0C 01 CMP DWORD PTR SS:[EBP+C],1 0040114C 74 28 JE SHORT CRACKME.00401176 0040114E 817D 0C 01020000 CMP DWORD PTR SS:[EBP+C],201 00401155 74 4A JE SHORT CRACKME.004011A1 00401157 837D 0C 24 CMP DWORD PTR SS:[EBP+C],24 0040115B 74 4F JE SHORT CRACKME.004011AC 0040115D 817D 0C 11010000 CMP DWORD PTR SS:[EBP+C],111 00401164 74 6C JE SHORT CRACKME.004011D2 00401166 90 NOP 00401167 90 NOP 00401168 90 NOP 00401169 90 NOP 0040116A EB 14 JMP SHORT CRACKME.00401180 0040116C B8 00000000 MOV EAX,0 00401171 EB 73 JMP SHORT CRACKME.004011E6 00401173 90 NOP 00401174 90 NOP 00401175 90 NOP 00401176 B8 00000000 MOV EAX,0 0040117B EB 69 JMP SHORT CRACKME.004011E6 0040117D 90 NOP 0040117E 90 NOP 0040117F 90 NOP 00401180 FF75 14 PUSH DWORD PTR SS:[EBP+14] 00401183 FF75 10 PUSH DWORD PTR SS:[EBP+10] 00401186 FF75 0C PUSH DWORD PTR SS:[EBP+C] 00401189 FF75 08 PUSH DWORD PTR SS:[EBP+8] 0040118C E8 09030000 CALL <JMP.&USER32.DefWindowProcA> 00401191 EB 53 JMP SHORT CRACKME.004011E6 00401193 6A 00 PUSH 0 00401195 E8 A6020000 CALL <JMP.&USER32.PostQuitMessage> 0040119A B8 00000000 MOV EAX,0 0040119F EB 45 JMP SHORT CRACKME.004011E6 004011A1 EB 43 JMP SHORT CRACKME.004011E6 004011A3 EB 41 JMP SHORT CRACKME.004011E6 004011A5 B8 00000000 MOV EAX,0 004011AA EB 3A JMP SHORT CRACKME.004011E6 004011AC 8B5D 14 MOV EBX,DWORD PTR SS:[EBP+14] 004011AF C743 18 18010000 MOV DWORD PTR DS:[EBX+18],118 004011B6 C743 1C A0000000 MOV DWORD PTR DS:[EBX+1C],0A0 004011BD C743 20 18010000 MOV DWORD PTR DS:[EBX+20],118 004011C4 C743 24 A0000000 MOV DWORD PTR DS:[EBX+24],0A0 004011CB B8 00000000 MOV EAX,0 004011D0 EB 14 JMP SHORT CRACKME.004011E6 004011D2 837D 10 67 CMP DWORD PTR SS:[EBP+10],67 004011D6 74 15 JE SHORT CRACKME.004011ED 004011D8 837D 10 65 CMP DWORD PTR SS:[EBP+10],65 004011DC ^74 B5 JE SHORT CRACKME.00401193 004011DE 837D 10 66 CMP DWORD PTR SS:[EBP+10],66 004011E2 74 25 JE SHORT CRACKME.00401209 004011E4 EB 00 JMP SHORT CRACKME.004011E6 004011E6 5B POP EBX 004011E7 5F POP EDI 004011E8 5E POP ESI 004011E9 C9 LEAVE 004011EA C2 1000 RETN 10 004011ED 6A 00 PUSH 0 004011EF 68 0A134000 PUSH CRACKME.0040130A 004011F4 FF75 08 PUSH DWORD PTR SS:[EBP+8] 004011F7 68 1F214000 PUSH CRACKME.0040211F ; ASCII "DLG_ABOUT" 004011FC FF35 CA204000 PUSH DWORD PTR DS:[4020CA] 00401202 E8 99020000 CALL <JMP.&USER32.DialogBoxParamA> 00401207 ^EB DD JMP SHORT CRACKME.004011E6 00401209 6A 00 PUSH 0 0040120B 68 53124000 PUSH CRACKME.00401253 00401210 FF75 08 PUSH DWORD PTR SS:[EBP+8] 00401213 68 15214000 PUSH CRACKME.00402115 ; ASCII "DLG_REGIS" 00401218 FF35 CA204000 PUSH DWORD PTR DS:[4020CA] 0040121E E8 7D020000 CALL <JMP.&USER32.DialogBoxParamA> 00401223 83F8 00 CMP EAX,0 00401226 ^74 BE JE SHORT CRACKME.004011E6 00401228 68 8E214000 PUSH CRACKME.0040218E 0040122D E8 4C010000 CALL CRACKME.0040137E 00401232 50 PUSH EAX 00401233 68 7E214000 PUSH CRACKME.0040217E 00401238 E8 9B010000 CALL CRACKME.004013D8 0040123D 83C4 04 ADD ESP,4 00401240 58 POP EAX 00401241 3BC3 CMP EAX,EBX 00401243 74 07 JE SHORT CRACKME.0040124C 00401245 E8 18010000 CALL CRACKME.00401362 0040124A ^EB 9A JMP SHORT CRACKME.004011E6 0040124C E8 FC000000 CALL CRACKME.0040134D 00401251 ^EB 93 JMP SHORT CRACKME.004011E6 00401253 C8 000000 ENTER 0,0 00401257 53 PUSH EBX 00401258 56 PUSH ESI 00401259 57 PUSH EDI 0040125A 817D 0C 10010000 CMP DWORD PTR SS:[EBP+C],110 00401261 74 34 JE SHORT CRACKME.00401297 00401263 817D 0C 11010000 CMP DWORD PTR SS:[EBP+C],111 0040126A 74 35 JE SHORT CRACKME.004012A1 0040126C 837D 0C 10 CMP DWORD PTR SS:[EBP+C],10 00401270 0F84 81000000 JE CRACKME.004012F7 00401276 817D 0C 01020000 CMP DWORD PTR SS:[EBP+C],201 0040127D 74 0C JE SHORT CRACKME.0040128B 0040127F B8 00000000 MOV EAX,0 00401284 5F POP EDI 00401285 5E POP ESI 00401286 5B POP EBX 00401287 C9 LEAVE 00401288 C2 1000 RETN 10 0040128B 6A 01 PUSH 1 0040128D 6A 00 PUSH 0 0040128F FF75 08 PUSH DWORD PTR SS:[EBP+8] 00401292 E8 B5010000 CALL <JMP.&USER32.InvalidateRect> 00401297 FF75 08 PUSH DWORD PTR SS:[EBP+8] 0040129A E8 95010000 CALL <JMP.&USER32.SetFocus> 0040129F ^EB E3 JMP SHORT CRACKME.00401284 004012A1 33C0 XOR EAX,EAX 004012A3 817D 10 EB030000 CMP DWORD PTR SS:[EBP+10],3EB 004012AA 74 4B JE SHORT CRACKME.004012F7 004012AC 817D 10 EA030000 CMP DWORD PTR SS:[EBP+10],3EA 004012B3 75 3B JNZ SHORT CRACKME.004012F0 004012B5 6A 0B PUSH 0B 004012B7 68 8E214000 PUSH CRACKME.0040218E 004012BC 68 E8030000 PUSH 3E8 004012C1 FF75 08 PUSH DWORD PTR SS:[EBP+8] 004012C4 E8 07020000 CALL <JMP.&USER32.GetDlgItemTextA> 004012C9 83F8 01 CMP EAX,1 004012CC C745 10 EB030000 MOV DWORD PTR SS:[EBP+10],3EB 004012D3 ^72 CC JB SHORT CRACKME.004012A1 004012D5 6A 0B PUSH 0B 004012D7 68 7E214000 PUSH CRACKME.0040217E 004012DC 68 E9030000 PUSH 3E9 004012E1 FF75 08 PUSH DWORD PTR SS:[EBP+8] 004012E4 E8 E7010000 CALL <JMP.&USER32.GetDlgItemTextA> 004012E9 B8 01000000 MOV EAX,1 004012EE EB 07 JMP SHORT CRACKME.004012F7 004012F0 B8 00000000 MOV EAX,0 004012F5 ^EB 8D JMP SHORT CRACKME.00401284 004012F7 50 PUSH EAX 004012F8 FF75 08 PUSH DWORD PTR SS:[EBP+8] 004012FB E8 B2010000 CALL <JMP.&USER32.EndDialog> 00401300 B8 01000000 MOV EAX,1 00401305 ^E9 7AFFFFFF JMP CRACKME.00401284 0040130A C8 000000 ENTER 0,0 0040130E 53 PUSH EBX 0040130F 56 PUSH ESI 00401310 57 PUSH EDI 00401311 817D 0C 11010000 CMP DWORD PTR SS:[EBP+C],111 00401318 74 12 JE SHORT CRACKME.0040132C 0040131A 837D 0C 10 CMP DWORD PTR SS:[EBP+C],10 0040131E 74 15 JE SHORT CRACKME.00401335 00401320 B8 00000000 MOV EAX,0 00401325 5F POP EDI 00401326 5E POP ESI 00401327 5B POP EBX 00401328 C9 LEAVE 00401329 C2 1000 RETN 10 0040132C 817D 10 F2030000 CMP DWORD PTR SS:[EBP+10],3F2 00401333 75 11 JNZ SHORT CRACKME.00401346 00401335 6A 00 PUSH 0 00401337 FF75 08 PUSH DWORD PTR SS:[EBP+8] 0040133A E8 73010000 CALL <JMP.&USER32.EndDialog> 0040133F B8 01000000 MOV EAX,1 00401344 ^EB DF JMP SHORT CRACKME.00401325 00401346 B8 00000000 MOV EAX,0 0040134B ^EB D8 JMP SHORT CRACKME.00401325 0040134D 6A 30 PUSH 30 0040134F 68 29214000 PUSH CRACKME.00402129 ; ASCII "Good work!" 00401354 68 34214000 PUSH CRACKME.00402134 ; ASCII "Great work, mate! Now try the next CrackMe!" 00401359 FF75 08 PUSH DWORD PTR SS:[EBP+8] 0040135C E8 D9000000 CALL <JMP.&USER32.MessageBoxA> 00401361 C3 RETN 00401362 6A 00 PUSH 0 00401364 E8 AD000000 CALL <JMP.&USER32.MessageBeep> 00401369 6A 30 PUSH 30 0040136B 68 60214000 PUSH CRACKME.00402160 ; ASCII "No luck!" 00401370 68 69214000 PUSH CRACKME.00402169 ; ASCII "No luck there, mate!" 00401375 FF75 08 PUSH DWORD PTR SS:[EBP+8] 00401378 E8 BD000000 CALL <JMP.&USER32.MessageBoxA> 0040137D C3 RETN 0040137E 8B7424 04 MOV ESI,DWORD PTR SS:[ESP+4] 00401382 56 PUSH ESI 00401383 8A06 MOV AL,BYTE PTR DS:[ESI] 00401385 84C0 TEST AL,AL 00401387 74 13 JE SHORT CRACKME.0040139C 00401389 3C 41 CMP AL,41 0040138B 72 1F JB SHORT CRACKME.004013AC 0040138D 3C 5A CMP AL,5A 0040138F 73 03 JNB SHORT CRACKME.00401394 00401391 46 INC ESI 00401392 ^EB EF JMP SHORT CRACKME.00401383 00401394 E8 39000000 CALL CRACKME.004013D2 00401399 46 INC ESI 0040139A ^EB E7 JMP SHORT CRACKME.00401383 0040139C 5E POP ESI 0040139D E8 20000000 CALL CRACKME.004013C2 004013A2 81F7 78560000 XOR EDI,5678 004013A8 8BC7 MOV EAX,EDI 004013AA EB 15 JMP SHORT CRACKME.004013C1 004013AC 5E POP ESI 004013AD 6A 30 PUSH 30 004013AF 68 60214000 PUSH CRACKME.00402160 ; ASCII "No luck!" 004013B4 68 69214000 PUSH CRACKME.00402169 ; ASCII "No luck there, mate!" 004013B9 FF75 08 PUSH DWORD PTR SS:[EBP+8] 004013BC E8 79000000 CALL <JMP.&USER32.MessageBoxA> 004013C1 C3 RETN 004013C2 33FF XOR EDI,EDI 004013C4 33DB XOR EBX,EBX 004013C6 8A1E MOV BL,BYTE PTR DS:[ESI] 004013C8 84DB TEST BL,BL 004013CA 74 05 JE SHORT CRACKME.004013D1 004013CC 03FB ADD EDI,EBX 004013CE 46 INC ESI 004013CF ^EB F5 JMP SHORT CRACKME.004013C6 004013D1 C3 RETN 004013D2 2C 20 SUB AL,20 004013D4 8806 MOV BYTE PTR DS:[ESI],AL 004013D6 C3 RETN 004013D7 C3 RETN 004013D8 33C0 XOR EAX,EAX 004013DA 33FF XOR EDI,EDI 004013DC 33DB XOR EBX,EBX 004013DE 8B7424 04 MOV ESI,DWORD PTR SS:[ESP+4] 004013E2 B0 0A MOV AL,0A 004013E4 8A1E MOV BL,BYTE PTR DS:[ESI] 004013E6 84DB TEST BL,BL 004013E8 74 0B JE SHORT CRACKME.004013F5 004013EA 80EB 30 SUB BL,30 004013ED 0FAFF8 IMUL EDI,EAX 004013F0 03FB ADD EDI,EBX 004013F2 46 INC ESI 004013F3 ^EB ED JMP SHORT CRACKME.004013E2 004013F5 81F7 34120000 XOR EDI,1234 004013FB 8BDF MOV EBX,EDI 004013FD C3 RETN 004013FE -FF25 84314000 JMP DWORD PTR DS:[<&USER32.KillTimer>] ; USER32.KillTimer 00401404 -FF25 88314000 JMP DWORD PTR DS:[<&USER32.GetSystemMetr>; USER32.GetSystemMetrics 0040140A -FF25 8C314000 JMP DWORD PTR DS:[<&USER32.LoadCursorA>] ; USER32.LoadCursorA 00401410 -FF25 90314000 JMP DWORD PTR DS:[<&USER32.LoadAccelerat>; USER32.LoadAcceleratorsA 00401416 -FF25 94314000 JMP DWORD PTR DS:[<&USER32.MessageBeep>] ; USER32.MessageBeep 0040141C -FF25 98314000 JMP DWORD PTR DS:[<&USER32.GetWindowRect>; USER32.GetWindowRect 00401422 -FF25 9C314000 JMP DWORD PTR DS:[<&USER32.LoadStringA>] ; USER32.LoadStringA 00401428 -FF25 A0314000 JMP DWORD PTR DS:[<&USER32.LoadIconA>] ; USER32.LoadIconA 0040142E -FF25 A4314000 JMP DWORD PTR DS:[<&USER32.LoadBitmapA>] ; USER32.LoadBitmapA 00401434 -FF25 A8314000 JMP DWORD PTR DS:[<&USER32.SetFocus>] ; USER32.SetFocus 0040143A -FF25 AC314000 JMP DWORD PTR DS:[<&USER32.MessageBoxA>] ; USER32.MessageBoxA 00401440 -FF25 B0314000 JMP DWORD PTR DS:[<&USER32.PostQuitMessa>; USER32.PostQuitMessage 00401446 -FF25 B4314000 JMP DWORD PTR DS:[<&USER32.WinHelpA>] ; USER32.WinHelpA 0040144C -FF25 B8314000 JMP DWORD PTR DS:[<&USER32.InvalidateRec>; USER32.InvalidateRect 00401452 -FF25 BC314000 JMP DWORD PTR DS:[<&USER32.TranslateAcce>; USER32.TranslateAcceleratorA 00401458 -FF25 C0314000 JMP DWORD PTR DS:[<&USER32.MoveWindow>] ; USER32.MoveWindow 0040145E -FF25 C4314000 JMP DWORD PTR DS:[<&USER32.TranslateMess>; USER32.TranslateMessage 00401464 -FF25 C8314000 JMP DWORD PTR DS:[<&USER32.LoadMenuA>] ; USER32.LoadMenuA 0040146A -FF25 CC314000 JMP DWORD PTR DS:[<&USER32.ShowWindow>] ; USER32.ShowWindow 00401470 -FF25 D0314000 JMP DWORD PTR DS:[<&USER32.SendMessageA>>; USER32.SendMessageA 00401476 -FF25 D4314000 JMP DWORD PTR DS:[<&USER32.SetTimer>] ; USER32.SetTimer 0040147C -FF25 D8314000 JMP DWORD PTR DS:[<&USER32.SetWindowPos>>; USER32.SetWindowPos 00401482 -FF25 DC314000 JMP DWORD PTR DS:[<&USER32.UpdateWindow>>; USER32.UpdateWindow 00401488 -FF25 E0314000 JMP DWORD PTR DS:[<&USER32.RegisterClass>; USER32.RegisterClassA 0040148E -FF25 E4314000 JMP DWORD PTR DS:[<&USER32.BeginPaint>] ; USER32.BeginPaint 00401494 -FF25 E8314000 JMP DWORD PTR DS:[<&USER32.CreateWindowE>; USER32.CreateWindowExA 0040149A -FF25 EC314000 JMP DWORD PTR DS:[<&USER32.DefWindowProc>; USER32.DefWindowProcA 004014A0 -FF25 F0314000 JMP DWORD PTR DS:[<&USER32.DialogBoxPara>; USER32.DialogBoxParamA 004014A6 -FF25 F4314000 JMP DWORD PTR DS:[<&USER32.DispatchMessa>; USER32.DispatchMessageA 004014AC -FF25 F8314000 JMP DWORD PTR DS:[<&USER32.DrawMenuBar>] ; USER32.DrawMenuBar 004014B2 -FF25 FC314000 JMP DWORD PTR DS:[<&USER32.EndDialog>] ; USER32.EndDialog 004014B8 -FF25 00324000 JMP DWORD PTR DS:[<&USER32.EndPaint>] ; USER32.EndPaint 004014BE -FF25 04324000 JMP DWORD PTR DS:[<&USER32.FindWindowA>] ; USER32.FindWindowA 004014C4 -FF25 08324000 JMP DWORD PTR DS:[<&USER32.GetDC>] ; USER32.GetDC 004014CA -FF25 0C324000 JMP DWORD PTR DS:[<&USER32.GetDlgItem>] ; USER32.GetDlgItem 004014D0 -FF25 10324000 JMP DWORD PTR DS:[<&USER32.GetDlgItemTex>; USER32.GetDlgItemTextA 004014D6 -FF25 14324000 JMP DWORD PTR DS:[<&USER32.GetMessageA>] ; USER32.GetMessageA 004014DC -FF25 1C324000 JMP DWORD PTR DS:[<&KERNEL32.GetLocalTim>; kernel32.GetLocalTime 004014E2 -FF25 20324000 JMP DWORD PTR DS:[<&KERNEL32.OpenFile>] ; kernel32.OpenFile 004014E8 -FF25 24324000 JMP DWORD PTR DS:[<&KERNEL32.GlobalFree>>; kernel32.GlobalFree 004014EE -FF25 28324000 JMP DWORD PTR DS:[<&KERNEL32.GlobalAlloc>; kernel32.GlobalAlloc 004014F4 -FF25 2C324000 JMP DWORD PTR DS:[<&KERNEL32.lstrlen>] ; kernel32.lstrlenA 004014FA -FF25 30324000 JMP DWORD PTR DS:[<&KERNEL32.CloseHandle>; kernel32.CloseHandle 00401500 -FF25 34324000 JMP DWORD PTR DS:[<&KERNEL32.WriteFile>] ; kernel32.WriteFile 00401506 -FF25 38324000 JMP DWORD PTR DS:[<&KERNEL32.GetModuleHa>; kernel32.GetModuleHandleA 0040150C -FF25 3C324000 JMP DWORD PTR DS:[<&KERNEL32.ReadFile>] ; kernel32.ReadFile 00401512 -FF25 40324000 JMP DWORD PTR DS:[<&KERNEL32.ExitProcess>; kernel32.ExitProcess 00401518 -FF25 48324000 JMP DWORD PTR DS:[<&COMCTL32.InitCommonC>; COMCTL32.InitCommonControls 0040151E -FF25 4C324000 JMP DWORD PTR DS:[<&COMCTL32.CreateToolb>; COMCTL32.CreateToolbarEx 00401524 -FF25 50324000 JMP DWORD PTR DS:[<&COMCTL32.CreateToolb>; COMCTL32.CreateToolbar 0040152A -FF25 58324000 JMP DWORD PTR DS:[<&GDI32.TextOutA>] ; GDI32.TextOutA 00401530 -FF25 5C324000 JMP DWORD PTR DS:[<&GDI32.StartPage>] ; GDI32.StartPage 00401536 -FF25 60324000 JMP DWORD PTR DS:[<&GDI32.StartDocA>] ; GDI32.StartDocA 0040153C -FF25 64324000 JMP DWORD PTR DS:[<&GDI32.GetTextMetrics>; GDI32.GetTextMetricsA 00401542 -FF25 68324000 JMP DWORD PTR DS:[<&GDI32.GetStockObject>; GDI32.GetStockObject 00401548 -FF25 6C324000 JMP DWORD PTR DS:[<&GDI32.EndPage>] ; GDI32.EndPage 0040154E -FF25 70324000 JMP DWORD PTR DS:[<&GDI32.EndDoc>] ; GDI32.EndDoc 00401554 -FF25 74324000 JMP DWORD PTR DS:[<&GDI32.DeleteObject>] ; GDI32.DeleteObject 0040155A -FF25 78324000 JMP DWORD PTR DS:[<&GDI32.DeleteDC>] ; GDI32.DeleteDC 00401560 -FF25 80324000 JMP DWORD PTR DS:[<&COMDLG32.GetSaveFile>; COMDLG32.GetSaveFileNameA 00401566 -FF25 84324000 JMP DWORD PTR DS:[<&COMDLG32.GetOpenFile>; COMDLG32.GetOpenFileNameA 0040156C -FF25 88324000 JMP DWORD PTR DS:[<&COMDLG32.PrintDlgA>] ; COMDLG32.PrintDlgA Ах да, вот еще что - внизу при открытии программ пишет Access violation when read [0000000C] - use Shift+F7/F8/F9 to pass exception to programm. Может это имеет значение ?
сюдя по коду при нажатии F7 один раз ты перейдешь на Код (Text): 00401002 E8 FF040000 CALL <JMP.&KERNEL32.GetModuleHandleA> все должно нормально работать
Угу, вот и я так думаю, но после нажатия Ф7 у меня код меняется на следующий: Код (Text): 02350000 68 00003502 PUSH 2350000 02350005 E8 AE05FFFF CALL 023405B8 0235000A B8 00000000 MOV EAX,0 0235000F BB 0070FD7F MOV EBX,7FFD7000 02350014 B9 B0FF1200 MOV ECX,12FFB0 02350019 BA 94EB907C MOV EDX,ntdll.KiFastSystemCallRet 0235001E BE FFFFFFFF MOV ESI,-1 02350023 BF 3807917C MOV EDI,7C910738 02350028 BD F0FF1200 MOV EBP,12FFF0 0235002D BC C4FF1200 MOV ESP,12FFC4 02350032 -E9 C90F0BFE JMP CRACKME.<ModuleEntryPoint> 02350037 0000 ADD BYTE PTR DS:[EAX],AL 02350039 0000 ADD BYTE PTR DS:[EAX],AL 0235003B 0000 ADD BYTE PTR DS:[EAX],AL 0235003D 001400 ADD BYTE PTR DS:[EAX+EAX],DL 02350040 43 INC EBX 02350041 3A5C57 49 CMP BL,BYTE PTR DS:[EDI+EDX*2+49] 02350045 4E DEC ESI 02350046 44 INC ESP 02350047 4F DEC EDI 02350048 57 PUSH EDI 02350049 53 PUSH EBX 0235004A 5C POP ESP 0235004B 73 79 JNB SHORT 023500C6 0235004D 73 74 JNB SHORT 023500C3 0235004F 65:6D INS DWORD PTR ES:[EDI],DX ; I/O command 02350051 3332 XOR ESI,DWORD PTR DS:[EDX] 02350053 5C POP ESP 02350054 6B647A 71 78 IMUL ESP,DWORD PTR DS:[EDX+EDI*2+71],78 02350059 2E: PREFIX CS: ; Superfluous prefix 0235005A 65:78 65 JS SHORT 023500C2 ; Superfluous prefix
fromtheinside трасируй с заходом в функцию, только внутренние процедуру, не надо заходить в API функции. 00401002 - адрес был такой 1002 + ImageBase(400000) 02350000 - стал другой, системной библиотеки
Эм.... а как это делается =) ? Нужно в настройках дебаггера что-то менять или как ? JCronuz, если не сложно, объясни более подробно, я еще знаком не со всеми тонкостями этого дела.
Конечно имеет но только комада push 0 не может сгенерировать такое исключение Вообще-то Ольку имхо лучше осваивать на проге собственного сочинения а-ля MessageBox сам выбираешь где нажать F7, а где F8.