ReverseCraft #5 - Packery
Czas trwania:
47 minut (opublikowano 2009-08-19)
Opis:
W piątym odcinku prezentuje zasadę działania packerów/protektorów plików wykonywalnych, oraz pokazuję jak stworzyć bardzo prosty programik szyfrujący pierwszą sekcję exeka.
Linki do video:
Materiały:
- Slajdy - slajdy użyte w videoarcie
- 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)
- Źródła packera - źródła packera napisanego podczas trwania piątego odcinka
Informacje uzupełniające:
Algorytm działania packera (sc.cpp):
- 1. Wczytanie pliku PE
- 2. Stworzenie nowej sekcji SimpCryp, i jej skonfigurowanie
- 3. Wczytanie skompilowanej wersji loadera; ustawienie loadera jako dane nowej sekcji
- 4. Zmiana OptionalHeader.SizeOfImage, OptionalHeader.AddressOfEntryPoint oraz praw dostępu do pierwszej sekcji
- 5. Ustawienie pierwszych trzech DWORDów w loaderze na OEP, VA początku pierwszej sekcji i wielkość pierwszej sekcji
- 6. Zaszyfrowanie pierwszej sekcji (XOR i ADD)
- 7. Zapis PE do pliku
Algorytm działania loadera (loader.asm):
- 1. Ustalenie adresu zmiennych OEP, SecStart i SecSize
- 2. Zapis stanu środowiska (ESI, ECX)
- 3. Rozszyfrowanie sekcji
- 4. Przywrócenie stanu środowiska (ECX, ESI)
- 5. Skok do OEP (Original Entry Point)
Użyte narzędzia:
- Ent - aplikacja do pomiaru entropii pliku
- PEview 0.9.8 - program prezentujący strukturę plików PE w wygodny sposób
- 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)
- MinGW GCC - port kompilatora GCC na systemy z rodziny Windows
- Netwide Assembler (nasm) - świetny assembler do tworzenia loaderów, patchy i shellcode'ów
- Total Commander - świetny i bardzo wygodny menadżer plików pod systemy z rodziny Windows