ReverseCraft
Video Details
ReverseCraft #6 - OEP i zrzuty pamięci


Czas trwania:
36 minut (opublikowano 2009-10-28)

Credits:
Autor: Gynvael Coldwind
Intro: Sebastian "Xa" Rosik (grafika) i Samlis Coldwind (dźwięk)
Dodatkowe konsultacje: Icewall

Opis:
Odcinek szósty, w którym poruszam problematykę lokalizacji OEP (oryginalnego punktu wejścia) oraz omawiam kolejne narzędzia do wykonywania zrzutów pamięci.

Linki do video:

Materiały:

Informacje uzupełniające:
Istnieje jeszcze jedna ciekawa metoda (thx Bartek), o której nie powiedziałem w odcinku, a o której należy wspomnieć. Nie przedłużając, metoda polega na wykonaniu zrzutu obrazu PE nie szukając OEP (czyli w dowolnym momencie po rozpakowaniu, np. przy okazji jakiegoś breakpointu, lub przed zakończeniem procesu), a następnie przeskanowaniu dump'a na występowanie sygnatury (za równo jako binarnego wzorca, jak i charakterystycznego kodu czy sekwencji mnemoników) jakiegoś popularnego kompilatora (Delphi / Microsoft Visual C++ / MinGW GCC / etc). Gdy znaleźliśmy prolog, wystarczy odpalić aplikację jeszcze raz, ustawić hardware breakpoint na znaleziony OEP (oczywiście pierwsza instrukcja prologu to OEP), ponownie wykonać zrzut i jesteśmy w domu. Jak można się domyślić, metoda nie zadziała jeśli aplikacja skompilowana została z jakimś niestandardowym prologiem lub prolog uległ zmianie. W takim wypadku pozostaje jeszcze możliwość zbudowania drzewa cross-refów, i poszukanie funkcji leżącej na samej górze drzewa, czyli właśnie prologa.
Zostało jeszcze jedno pytanie: skąd wziąć sygnatury? Z tego co pamiętam, IDA Pro w wersji komercyjnej zawiera sporo sygnatur m.in. prologów, i prawdopodobnie automatycznie znajdzie prolog (kwestia tylko jak ów prolog nazwie - zachęcam do testów). Ewentualnie zachęcam do stworzenia własnych narzędzi wyszukujących sygnatury i stworzenia własnej kolekcji sygnatur - na pewno będzie to pouczające i przydatne doświadczenie. Pamiętajcie jednak ze różne przełączniki zastosowane podczas kompilacji mogą powodować tworzenie się różnych prologów.

Materiały o których wspominam w odcinku:

Użyte narzędzia:
Video Tutorials RSS
ReverseCraft:
Konsultacje
Dla zainteresowanych przygotowałem konsultacje/korepetycje/osobiste lekcje z:

Cenę starałem się dobrać tak aby zadowolić większość (a jak wiadomo to jest niełatwe ;>) i obecnie wynosi ona 40zł za godzinę. Konsultacje odbywają się via dowolny, z góry ustalony komunikator audio/video, który uda nam się zmusić do działania (np. Skype), w ustalonym przez nas terminie.

Proponowane przeze mnie terminy konsultacji to:

Szczegóły oraz więcej informacji można znaleźć na moim blogu. Dodam iż sporą część funduszy zebranych w ten sposób planuje przeznaczyć na rozwój projektu ReverseCraft ;>
Legal stuff
ReverseCraft project (c) 2009 gynvael.coldwind//vx
Video tutoriale dostępne są na licencji Creative Commons BY-NC-ND

cat