Moja lista ulubionych i najczęściej wykorzystywanych narzędzi w reverse engineeringu.
1. HIEW
Bezapelacyjnie pierwsze miejsce. Narzędzie (w tym wypadku nie można mówić o nim jak o zwykłym hexedytorze), z którego najczęściej korzystam do edycji plików, kodu, do szybkiego odnajdywania tego co potrzeba.
Mimo konsolowego GUI jest to prawdziwy kombajn, bez którego nie wyobrażam sobie pracy w reversingu.
2. OllyDbg
Kiedyś wpisałbym tutaj SoftICE, jednak jego lata panowania już minęły. OllyDbg mimo pewnych niedogodności względem SoftICE, godnie go zastąpił, głównie ze względu na system wtyczek, które bez wątpienia stanowią dzisiaj o sile tego debuggera (np. ODBScript, dzięki któremu można robić cuda i dzięki któremu na nowo odnalazłem radochę z pracy).
Również duża liczba zmodyfikowanych wersji OllyDbg świadczy o ogromnej rzeszy fanów tego debuggera.
3. IDA
Najlepszy deasembler na świecie, bez niego nie ma mowy o analizie plików binarnych ani prowadzenia projektu, który wymaga kilku miesięcy pracy przy modyfikacji jakiegoś oprogramowania.
Posiada wbudowany system wtyczek, język skryptowy, rozpoznawanie znanych funkcji z całej rzeszy kompilatorów i ich bibliotek oraz masę zaawansowanych funkcji ułatwiających analizę statyczną oraz dynamiczną.
https://www.hex-rays.com/idapro/
4. FileMon i RegMon
Ex aequo na tym samym miejscu. Narzędzia, dzięki którym zaoszczedziłem kupę pracy przy śledzeniu działania aplikacji. Wystarczy odpalić, ustawić filtry i mamy wszystko co potrzeba, potem wystarczy znaleźć odpowiedni ciąg znaków w aplikacji, xref (you know the drill) itd.
Przy okazji nie wiem jak wy, ale do mnie zupełnie nie przemówiło zintegrowane narzędzie ProcMon.
Linki — FileMon RegMon ProcMon
5. Hex Workshop
To czego nie ma HIEW ma Hex Workshop, główną zaletą Hex Workshop jest praca na wielu plikach, co znacznie ułatwia kopiowanie danych z jednego pliku do drugiego, porównywanie binarne plików.
Dodatkowe funkcje umilające życie to m.in. wbudowane hashowanie, przeglądanie zdefiniowanych struktur danych. Bardziej rozbudowanym hexedytorem, który mógłby zastąpić Hex Workshop w mojej bazie narzędzi jest WinHex, jednak zawsze był dla mnie zbyt toporny, aby stał się narzędziem, które klikam w pierwszej kolejności.
6. LordPE
Process viewer i dumper, który mimo już swojego zaawansowanego wieku, nadal jest przydatnym narzędziem, które umożliwia szybki zrzut pamięci wybranego procesu (oraz jego pamięci wirtualnej), odbudowę uszkodzonych struktur plików PE czy też szybką edycję flag sekcji exeków.
7. Universal Extractor i MultiExtractor
Czasami zdarza się, że trzeba rozpakować pliki instalatora, albo z binarki wyciągnąć wszystkie jego zasoby, te 2 narzędzia pozwalają sprawnie i szybko rozpakować wszystkie rodzaje instalatorów stosowane w dystrybucji oprogramowania oraz wyciągnąć chyba wszystkie multimedialne formaty plików ukryte w innych plikach binarnych.
Universal Extractor — http://legroom.net/software/uniextract
MultiExtractor — http://www.multiextractor.com
8. .NET Reflector i JAD
Rozwój techniki sprawił, że nie da się już przejść obojętnie obok aplikacji .NET oraz tych w Javie, dlatego te 2 narzędzia prędzej czy później wylądują u każdego, kto zajmuje się reversingiem.
.NET Reflector — http://www.red-gate.com/products/reflector/
JAD — http://www.varaneckas.com/jad
9. eXeScope
Prosty i szybki viewer zasobów plików wykonywalnych, mimo, że są już zdecydowanie lepsze narzędzia (jak np. te wbudowane w Visual Studio), eXeScope przydaje się gdy trzeba szybko znaleźć coś w zasobach.
10. ImpREC
Narzędzie, bez którego nie obejdzie się żaden unpacking, w pewnym momencie i tak się przyda 🙂
Gdzie szukać innych narzędzi?
Jeśli szukasz narzędzi, odwiedź te strony:
- Programmers’ Tools — ogromna baza z linkami
- Collaborative RCE Tool Library — baza + mirrory plików
oto moja skrocona lista:
1. IDA pro – prawie jak szwajcarski scyzoryk wszystko w jednym rowniez sporo pluginow, przy takim rozwoju to wersja 7.0 moze zastapi wszystkie moje narzedzia;)
2. Explorer Suite – godny nastepca LordPE, darmowy pakiet zawierajacy sporo swietnych narzedzi do edycji plikow PE32/64
3. WinDbg – ponad 350 polecen:) ulubiony(duzego wyboru nie ma) debuger do pracy nad x64 kodem
4. OllyDbg – ciezko mi sie do niego przyczaic ale czasami jest niezastapiony
5. WinHex – sporo opcji, przyjazne GUI, czeste aktualizacje
6. UltraEdit – potezny edytor mozna uzywac tez jako hex-edytor lub do porownywania plikow
7. ImpREC & CHimpREC – chyba kazdy zna
8. Resource Hacker – darmowy edytor zasobow plus z mala przerobka mozna edytowac pliki PE32+
9. Sysinternals Suite – przydatne programy do analizy zachowania aplikacji i nie tylko.
10. PEiD – do szybkiego rozpoznawania pakerow plus dzieki disassemblerowi mozna szybko zobaczyc kod z entrypoint
ja ze swojej strony dodam sandboxie:
http://sandboxie.com/
b. dobre narzedzie do odpalania podejrzanego softu.
Ja ze swojej strony mogę dodać notepad 😀
notepad jako narzedzie czy jako cel? 🙂
Piszesz: „ODBScript, dzięki któremu można robić cuda i dzięki któremu na nowo odnalazłem radochę z pracy”. Z ciekawości – gdzie pracujesz? 🙂