Kommen wir zu AC Protect.
Das Programm steht für AntiCrack und ist auch über den Namen UltraProtect bekannt.
Ein paar seiner Features wären:
Anti Debug | debug api checks
Anti Patch | Loader (CRC)
Anti Dump | u,a stolen bytes
Anti Trace | sehr viele Layer
Die Gründe wieso ich das Tutorial schreibe sind folgende […]
Gibt sowieso wenig Deutsch Sprachige Patching / Unpacking e.t.c… Tutorials und vorallem nicht über das Unpacking einer solchen Software.
Kommen wir zum Aufbau meines Tutorials:
- Oep finden
- Dumping
- Invalid IAT Pointer finden
- IAT fixen
- Anmerkungen zu anderen Features von AntiCrack „Protect“
Fangen wir mit dem ersten Schritt an:
OEP finden
Das wir so schnell wie möglich an den OEP zu gelangen ohne lange in den Layern von acprotect rumzutracen werden wir hier den ESP Register Trick wieder anwenden.
Los gehts Untouchable, OllyDBG starten & wir sollen am EP sein.
Ich gehe hier jetzt davon aus, dass ich nicht die Fachbegriffe erklären muss wie z.B EP (Entrypoint)
Schaut aus wie ASProtect? :-)
Und jetzt nur noch 5x F8 drücken, damit wir über die PUSHAD bei 45E000 gelangen.
Nu via Rechtsklick ESP Register „Follow in Dump“ und die ersten 4 Bytes markieren.
Danach Rechtsklick Hadware EP on access draufhauen ;)
Jetzt heißt es ran an die Finger :-)
Solange F9 drücken bis wir den NAG von ACProtect sehen.
Sollte ca. 4-6 mal sein, natürlich von Programm zu Programm unterschiedlich.
00475286 /EB 01 JMP SHORT Filemon1.00475289
Jetzt mit F8 Tracen, somit gelangen wir zu dem nächsten Jump
00475289 – FF25 CB524700 JMP NEAR DWORD PTR DS:[4752CB] ; Filemon1.0040A40C
Mit diesem Jump gelangen wir, wenn wir F8 drücken genau zu dem OEP.
Wenn gewollt drücken wir auch noch STRG+A für eine bessere | schönere Ansicht.
Das Programm ist wohl doch nicht „Unantastbar“ :-)
Ladies, wir sing am OEP angekommen.
Fangen wir mit dem Dumpen an.
Dumpen:
Wir öffnen mit dem Programm LordPE unser Programm und machen einen rechtklick und wählen „dump full“ aus.
Jetzt fangen wir mit dem IAT Pointer an :-)
Invalid Pointer (IAT) finden:
Wenn wir jetzt mal die IAT in ImpRec betrachten sehen wir das ein Pointer noch invalid ist:
Vorher Process wählen, OEP eingeben, auf ‚IAT Autosearch‘ und dann ‚Get Imports‘ klicken…
Jetzt auf Show Invalid..
Wir sehen jetzt auch, dass dieser Import von der user32.dll stammt, folglich können wir ihn nicht einfach so cutten.
(ImpRec jetzt nicht schließen)
Schauen wir doch mal bei der RVA der fehlenden API vorbei nämlich bei 46CE4B (in Olly)
(Strg+G und 46CE4B eintippen)
Hardware BP auf die Zeile setzen
0046CE4B 60 PUSHAD
Target in Olly restarten mit STRG+F2 und den anderen Hardware BP löschen.
Taget mit F9 laufen lassen! (HW BP)
This image has been resized. Click this bar to view the full image. The original image is sized 666×246. |
Neustarten
F9
[img]http://www.abload.de/uploadComplete
Mit F8 steppen wir mit F8 über das PUSHAD + wenden den ESP „Trick“ an.
Rechtsklick auf das ESP Register & „Follow in dump“
Ersten 4 bytes markieren & Hadware BP on access drauf setzen
Und wir „Touchen“ F9
Und nochmal!
Der Import!
MessageBoxA von der user32.dll
Jetzt haben wir alles was wir für eine intakte IAT brauchen!
IAT fixen
Ich nehme an ihr habt meinen Rat von vorhin befolgt und habt ImpRec nicht geschlossen […]
Klickt jetzt auf ‚Show Invalid‘ damit ihr den falschen pointer sehen könnt und nun doppelklick auf ihn.
Name des Importes noch eintragen :-)
Natürlich den, welchen wir eben gefunden haben…
Bestätigen und wir bekommen Angezeigt:
Genau: Alles valid und intakt!
Es gibt ekine falschen Pointer mehr.
Vor dem fixen des Dumps diese Einstellungen übernehmen.
Jetzt noch auf Fix dump und dann haben wir es geschafft.
Ich danke euch für eure Aufmerksamkeit, euer uni.x :-)
Quelle : untouchable.cc