ReverseCraft #4 - Narzędzia i analiza
Czas trwania:
35 minut (opublikowano 2009-08-01)
Opis:
Czwarty odcinek kursu wstępnie prezentuje narzędzia używane podczas sesji RE, oraz pokazuje przebieg samej analizy na przykładzie "łamania" prostej aplikacji typu crackme.
Linki do video:
- Odcinek 4 na UW-Team.org (flash player/download)
- Odcinek 4 na VIDEOarty.pl (flash player)
Materiały:
- Slajdy - slajdy użyte w videoarcie (chociaż tym razem zbyt wiele informacji tam nie ma)
- CrackMe - bardzo proste crackme zaprezentowane w odcinku
- Lista ćwiczeń - lista ćwiczeń dla osób zainteresowanych; rozwiązania można wysyłać mi na e-mail (potem zrobię do tego odpowiedni panelik), w celu weryfikacji/pochwalenia się/innym (e-mail: michael MAŁPA hispasec KROPKA com)
Informacje uzupełniające:
Pojawiło się sporo pytań odnośnie zadania domowego, a konkretniej - czy program patchujący powinien patchować rozpakowany czy spakowany plik. Odpowiadając na pytanie: wystarczy rozpakowaną wersję. Natomiast ambitne i zaawansowane osoby zachęcam do spatchowania wersji spakowanej (jest w zasadzie kilka różnych sposobów żeby to zrobić.
Bajty 90 90 90 które wstawiam w hexedytorze odpowiadają trzem instrukcjom NOP (czyli opcode NOP to 0x90). Instrukcja NOP, czyli No OPeration, to jedna z kilku instrukcji które nie powodują żadnej zmiany w środowisku (rejestrach, flagach, etc), czyli można ją stosować to 'usunięcia' działania innych instrukcji - po prostu zamiast nadpisanych instrukcji zostanie wykonane nic (zgodnie z dokumentacją: NOP - Performs No Operation). Tak na prawdę instrukcja NOP jest aliasem dla instrukcji XCHG EAX, EAX, czyli zamiany zawartości rejestru EAX ze sobą samym, co oczywiście nie zmienia nic.
Instrukcja NOP i jej opcode - 90 - to jedna z podstawowych rzeczy o których musi pamiętać każdy reverser :). Innymi opcode'ami wartymi zapamiętania są C3 (ret), CC (int3, czyli software breakpoint), oraz EB FE (jmp $, czyli nieskończona pętla).
Link do artykułu o entropii (o którym wspominałem w videoarcie) znajduje się w sekcji Inne Linki poniżej.
Funkcje WinAPI o których wspominałem w odcinku to:
- GetDlgItemTextA/W - pobranie tekstu z kontrolki w oknie dialogowym
- GetWindowTextA/W - pobranie tekstu z kontrolki / tytułu okna
- SendMessageA/W i WM_GETTEXT - pobranie tekstu z kontrolki / tytułu okna za pomocą wiadomości
Tak na prawdę dwie wyżej wymienione funkcje i tak sprowadzają się do SendMessage i WM_GETTEXT.
Użyte narzędzia:
- PEiD - detektor packerów/protektorów i kompilatorów
- Ent - aplikacja do pomiaru entropii pliku
- VirusTotal uploader - aplikacja do upload'u pliku na serwis VirusTotal.com (niedługo wyjdzie wersja 2.0 ;>)
- strings - (w pakiecie GNU binutils) wyszukiwanie tekstu w pliku binarnym
- PEview 0.9.8 - program prezentujący strukturę plików PE w wygodny sposób
- PE.Explorer - trochę informacji o PE
- Wireshark - pierwszoligowy sniffer sieciowy
- Process Explorer - programik pokazujący masę przydatnych informacji o procesach
- Process Monitor - monitor odwołań do systemu plików, rejestru oraz innych operacji
- LordPE - (kopia na woodmann) programik umożliwiający m.in. zrzucanie obrazów PE z pamięci na dysk (czyli robienie dumpów)
- OllyDump - plugin do OllyDbg umożliwiający zrzucanie PE na dysk
- ImpREC - (kopia na woodmann) aka Import REConstructor; rekonstruktor importów
- OllyDbg 1.10 - trochę już podstarzały, ale nadal dający radę, darmowy debugger pod Windowsa
- Immunity Debugger - tego co prawda nie używałem, ale jest to godny polecenia debugger oparty o silnik OllyDbg
- IDA Pro - najlepszy istniejący interaktywny disassembler (również w wersji freeware, niestety jest to starsza edycja)
- ICY Hexplorer - lekki matrixowy hexedytor
- Hex Workshop - trochę cięższy, ale i bardziej funkcjonalny hexedytor
- Total Commander - świetny i bardzo wygodny menadżer plików pod systemy z rodziny Windows
Inne linki:
- Entropia - post na moim blogu wyjaśniający zasadę działania Ent'a oraz cel pomiaru entropii
- Entropia - pomiar i zastosowanie - query do Google wyszukujące artykuł o Entropii z Hakin9 (udostępniany jako pdf przez niektóre serwisy)
- Collaborative RCE Tool Library - podręczna biblioteka narzędzi do RE (na woodmann.com)
- Tools of our Trade - subforum o narzędziach używanych w naszym fachu na woodmann.com

