Native Blocks

Native Blocks to projekt Daniela Pistelli, obecnie powiązanego z HexRays, jest to reassembler dla aplikacji napisanych w środowisku .NET. W skrócie można napisać, że służy on do modyfikacji kodu ILASM, wykorzystując dodatkowe skrypty JavaScript, dzięki czemu możliwe staje się proste usunięcie zabezpieczeń i technik stosowanych przez obfuscatory dla aplikacji .NETowych.

Prezentowany przykład pokazuje jak usunąć sztuczki używane przez obfuscator Wise Owl’s Demeanor (chyba najdroższy obfuscator dla .NET $799) w oprogramowaniu Reflector. Materiał (jeśli ktoś jeszcze nie widział, bo już trochę to wisi na necie) warty obejrzenia, bo pokazuje nowe drogi do analizy zabezpieczonego oprogramowania .NET.

Oryginalny artykuł — http://rcecafe.net/?p=96

Top 10 narzędzi do reversingu

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.

HIEW

http://www.hiew.ru/

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.

OllyDbg

http://www.ollydbg.de/

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ą.

IDA Pro

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.

RegMon

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.

Hex Workshop

http://www.hexworkshop.com/

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.

LordPE

LordPE

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

Universal Extractor — http://legroom.net/software/uniextract

MultiExtractor v2.80a

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

.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.

eXeScope

eXeScope

10. ImpREC

Narzędzie, bez którego nie obejdzie się żaden unpacking, w pewnym momencie i tak się przyda 🙂

ImpREC

ImpREC

Gdzie szukać innych narzędzi?

Jeśli szukasz narzędzi, odwiedź te strony:

Wykop wpis Zagłosuj na ten wpis na Wykopie

HIEW v8.00

Ukazała się nowa wersja hexedytora HIEW v8.00, lista zmian:

  • ARMv6 disassembler (switch: Shift-F1)
  • „ArmCodeDetection = On/Off” in ini-file
  • Xor string (Edit/F8) is back!
  • Names shift offset (F12/F6)
  • Names export (F12/Shift-F12)
  • PE section rva/offset correction (F8-F6-F5/F6)
  • FIX: Some disassemblers fixes
  • FIX: HEM: no set mode for HEM_RETURN_FILERELOAD

Strona domowa — www.hiew.ru

IDA Pro v5.4

IDA ProUkazała się wersja 5.4 disassemblera IDA Pro, chociaż disassemblerem tego już raczej nie można nazwać, bo to prawdziwy kombajn do analizy wszystkiego co binarne.

Główne zmiany to wprowadzenie modułów obsługi 3 dodatkowych debuggerów, zwiększających możliwość dynamicznej analizy kodu.

Pierwszy z nich opiera się na emualtorze x86 Bochs, który pozwala m.in. na wykonanie dowolnych fragmentów kodu 32 bitowego w emulowanym środowisku (chyba ukłon w stronę branży antywirusowej).

Kolejny debugger to GDBServer, ale chyba największą niespodzianką jest wprowadzenie obsługi debuggera WinDbg, dzięki czemu możliwe jest analizowanie sterowników systemowych.

Oficjalna lista zmian, a jest ich naprawdę sporo na:
https://www.hex-rays.com/idapro/54/index.htm