ollydbg zmiany w pliku exe

lioleon

Użytkownik
Dołączył
Październik 8, 2011
Posty
1
Zaczynam zabawę z ollydbg, mam program który wykonuje odczyt z klucza sprzętowego i w zależności co z klucza odczyta zezwala na dalsze działanie.
Udało mi się znaleźć miejsce w którym program zapisuje do EAX wartość z klucza która mnie interesuję. Chciałbym tak zmodyfikować plik exe żeby wartość była wpisywana jakaś stałą a nie odczytana z klucza.
poniżej wycinek kodu programu:
004232F5 |. E8 56050000 CALL Loader.00423850 ; \Loader.00423850
004232FA |. 8945 B8 MOV [LOCAL.18], EAX
004232FD |. EB 07 JMP SHORT Loader.00423306
004232FF |> C745 B8 00000>MOV [LOCAL.18], 0
00423306 |> 8B45 C8 MOV EAX, [LOCAL.14]
00423309 |. C740 04 00000>MOV DWORD PTR DS:[EAX+4], 0
00423310 8B45 EC MOV EAX, DWORD PTR SS:[EBP-14] ; Wrzuca do EAX wartość z klucza
00423313 25 FFFF0000 AND EAX, 0FFFF
00423318 |> 8B4D F4 MOV ECX, [LOCAL.3]
0042331B |. 64:890D 00000>MOV DWORD PTR FS:[0], ECX
00423322 |. 8BE5 MOV ESP, EBP
00423324 |. 5D POP EBP ; 0012F37C
00423325 \. C3 RETN

Proszę o pomoc jak zmodyfikować kod aby np wyskoczyło okienko do wprowadzenia wartości albo żeby za każdym razem wprowadzał stałą wartość, próbowałem zmienić instrukcję na MOV EAX, wartość:h ale wtedy olly dodatkowo zmienia jeszcze 3 niższe linijki kodu, teoretycznie efekt końcowy jest zadowalający ale nie wiem czy tak powinno być.
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
Jak twoje zmiany nie mieszcza Ci sie w srodku kodu ktory jest tutaj mozesz znalesc miejsce w kodzie ktore jest puste (00 albo 0x90(NOP)) albo stworzyc nowa sekcje w pliku. I zrobic tak ze tym kodzie ktory masz zrobic skok do zmienionego kodu i potem powrot. np. zamienic

00423309 |. C740 04 00000>MOV DWORD PTR DS:[EAX+4], 0
00423310 8B45 EC MOV EAX, DWORD PTR SS:[EBP-14] ; Wrzuca do EAX wartość z klucza

na jmp [jakis adres]
pod tym adresem napisac te instrukcje oraz zmiane EAX na stala wartosc czy co tam chcesz
i potem jmp do 00423313(nastepna instrukcja po tych 2)
 
Do góry Bottom