mucki's protector

Es ist ein ganz einfacher Protector, ideal für Neulinge.
Den Quellcode gibts, falls jemand das gelöst hat.
Weiteres steht im Hilfedokument.
 
Es soll dazu da sein eure Programme vorm cracken zu schützen, aber dafür ist es zu schlecht. Es gibt bessere Programme, aber durch den Quelltext steigt man als Neuling nicht durch. Mein Ziel war es mit diesem Protector euch den Einstieg zu erleichtern.
Eure Aufgabe ist es einen Unpacker zu schreiben, oder es zumindest auszupacken, was jedoch nicht weiter schwer ist.
 
dutchman: http://wiki.hackerboard.de/index.php/Unpacker
Also entpacken geht durch BP auf den jump nach dem Schleife(loopd), danach dumpen. Die IAT wird durch den Packer nicht geschützt.
Allerdings gibt es einen Fehler bei dem Protector: Manche Programme scheinen laufen nach dem Schützen nicht mehr, da anscheinend die IAT zerstört wird.(z.B. bei Notepad(winxp)):
Code:
->Import Table
   1. ImageImportDescriptor:
    OriginalFirstThunk:  0xFFFF866F
    TimeDateStamp:       0x00000000  (GMT: Thu Jan 01 00:00:00 1970)
    ForwarderChain:      0x00000000
    Name:                0xFFFF8553
    FirstThunk:          0xFFFFED3B

    Ordinal/Hint API name
    ------------ ---------------------------------------
    Invalid thunk pointer !

   2. ImageImportDescriptor:
    OriginalFirstThunk:  0xFFFF87BF
    TimeDateStamp:       0x00000000  (GMT: Thu Jan 01 00:00:00 1970)
    ForwarderChain:      0x00000000
    Name:                0xFFFF8505
    FirstThunk:          0xFFFFEE8B

    Ordinal/Hint API name
    ------------ ---------------------------------------
    Invalid thunk pointer !

   3. ImageImportDescriptor:
    OriginalFirstThunk:  0xFFFF867F
    TimeDateStamp:       0x00000000  (GMT: Thu Jan 01 00:00:00 1970)
    ForwarderChain:      0x00000000
    Name:                0xFFFF84C5
    FirstThunk:          0xFFFFED4B

...
 
Beim Notepad ist das Problem, dass hinter der letzten Sektion kein Platz mehr für den Depackercode ist. Ich hätte noch einen Test einbauen sollen, hab ich aber nicht. Zum Glück wird ja ein Backup erstellt.

Ein Unpacker wäre zwar schön gewesen, aber die Anleitung von Lesco (Also entpacken geht durch BP auf den jump nach dem Schleife(loopd), danach dumpen.) lasse ich mal durchgehen.
Das Passwort lautet: 00404828

Falls ihr was zu verbessern habt, lasst es mich wissen. Der Quellcode ist nur zum Teil schön programmiert - hatte irgendwann nicht mehr so die Lust auf Ordnung ;)
Ich werde sicherlich irgendwann mal einen besseren Protector schreiben (z.B. mit eigener Sektion und IAT-Krams...), aber Semester ist grad wieder losgegangen und hab grad nicht mehr die Zeit fürs Programmieren :(
MfG mucki
 
Ich wuerde mich ja gerne an einem unpacker versuchen, aber jede datei die ich packen will wirft danach eine av.

Welche datein hab ihr erfolgreich gepackt?

lg
 
Das Problem ist, dass bei vielen Programmen der Unpackcode folgende Operation nicht durchführen kann:
Code:
mov byte ptr[edi],al
Hab schon versucht über characteristics im section header der Sektion mehr Rechte zu geben, hat aber leider nicht funktioniert. Hat jemand eine Ahnung worin das Problem liegt? Ich würde mich sehr freuen, wenn mir jemand helfen könnte.
MfG mucki
 
Hast du auch die richtige Section verändert? (also die in dem der Programmcode liegt, meistens .text. Bei mir verschwindet der Fehler dann, wenn ich das writable-Flag in der Section setze)
 
Danke Lesco, du hast mir sehr geholfen. Man muss ja natürlich dieses bescheuterte "Little Endian" beachten (hab immer das falsche flag gesetzt :rolleyes: ).
Hab Fehler behoben - jetzt dürfte es besser funktionieren.
 
So, habe nun noch einen Unpacker geschrieben. Die dazu verwendeten Klassen hatte ich vor einiger Zeit mal für einen anderen Unpacker geschrieben([Unpacker]UnFSG2)
Allerdings hatte ich keine Lust/Zeit eine GUI dafür zu schreiben und auch eine Überprüfung, ob die Datei überhaupt mit muckis protector geschützt ist fehlt auch. Getestet ist das noch mit dem alten Protector, aber ich denke, dass nur die Sache mit den Section-Flags geändert wurde.
 
Prima Lesco, wirklich tolles Ding! Wenn du Lust hast baue ich dir noch eine GUI ein (nur eine andere Main Klasse - nicht wirklich ein Problem), obwohl ich die Bedienung über die Konsole nicht unbedingt schlechter finde - ist halt Ansichtssache. Um zu testen, ob mein Protector verwendet wurde, müsste man schauen, ob bei EP+0xA "8A 06 F6 D0 88 06 46 E2 F7 E9" steht.
 
Zurück
Oben