x86 Virtualizer

Wirtualizer kodu, czyli narzędzie zmieniające kod assemblera x86 w danej aplikacji na kod wirtualnej maszyny mający na celu utrudnienia analizy zwirtualizowanych procedur aplikacji.

Trochę to zawile brzmi, ale obecnie wirtualizery stanowią prawdziwą ścianę ognia w systemach ochrony aplikacji, gdyż crackerzy (a nie hakerzy) aby przełamać zabezpieczenie są w takich sytuacjach zmuszeni do odtworzenia zwirtualizowanego kodu w celu analizy systemu zabezpieczenia. Odtworzenie kodu po takich tranformacjach jest niesłychanie trudne i wymaga sporej wiedzy oraz cierpliwości.

O skuteczności virtualizerów może świadczyć system ochrony Star-Force, używany do zabezpieczania gier, w którym również zastosowano przekształcanie kodu aplikacji do kodu wirtualnej maszyny.

Tego typu narzędzie, wraz z kodami źródłowymi w C++ oraz assemblerze zostało opublikowane przez polskiego reversera ReWolf’a i można je ściągnąć ze strony:

http://www.rewolf.pl/

Dekompilator Hex-Rays

Prawdziwy dekompilator Hex-Rays został wydany przez jednego z twórców słynnej IDY. Pozwala on na dekompilacje kodu binarnego do poziomu języka wysokiego poziomu, co znacznie ułatwia analizę działania aplikacji.

Więcej informacji i przykład zastosowania na:

https://www.hex-rays.com/compare.shtml

Możliwości ogromne, odstraszać za to może cena, wynosząca 1500 euro.

Narzędzia w reverse engineeringu (debuggery)

Tym postem rozpoczynam krótką serię o narzedziach wykorzystywanych w systemie Windows, przy analizie plików binarnych. Na pierwszy rzut idą debuggery.

SoftICE

Do debugowania, czyli śledzenia kodu aplikacji w locie, wykorzystuje się debuggery. W przeszłości najczęściej wykorzystywanym programem był słynny SoftICE firmy NuMega/Compuware. SoftICE pozwalał śledzić działanie aplikacji i sterowników, zakładać pułapki na funkcje WinApi i całą masę innych rzeczy.

Czytaj dalej