RCE – DLC Container Decrypter

Manually Unpacking XenoCode 2008 for .NET

Gestern wurde dieses kleine self-made Tool released: DLC.Container.Decrypter.v0.2-ContainerEx. Wie der Name schon sagt kann man mit dem Tool die DLC Container Dateien vom JDownloader entschlüsseln. In der NFO erwähnt der Entwickler neben anderen Beleidigungen, dass er Cryptload (in .NET programmiert) so mag und Java so „scheisse“ findet, deshalb habe ich mir gedacht, zerlegen wir doch mal das Tool in seine Einzelteile ;-).

Heute früh erschien auch direkt ein Update auf seiner Homepage (schöner Hoster: OVH Hosting LD), deshalb nehmen wir uns gleich v0.3 vor. Er schützt sein Decrypter mit dem Programm Xenocode Postbuild. Auf der HP des Herstellers wird groß mit „code protection“ geworben, aber das ist in meinen Augen nur heiße Luft, den es ist wirklich kinderleicht zu „entpacken“.

Für dieses „Kunststück“ brauchen wir nur unseren Lieblings-Debugger Olly ohne irgendwelche Plugins. Wir laden also das Programm in Ollydbg und starten es. Jetzt erscheinen ein paar Erros, aber einfach auf OK klicken und die Sache ist erledigt. Falls Olly bei einem Error anhaltet einfach mit SHIFT+F9 ignorieren und fortsetzen.
Wenn der Decrypter vollständig gestartet ist öffnen wir die Memory Map (ALT+M) Klick. Jetzt suchen wir einfach nach unserem entpackten Target im Memory. Rechtsklick -> Search und wir suchen nach einem ASCII String, welcher in eigentlich jeder Exe vorkommt: DOS Mode Klick. Unser erster Treffer ist wahrscheinlich kein Erfolg, deswegen suchen wir weiter: Rechtsklick -> Search Next. Ich musste 3-mal weitersuchen um bei der richtigen Stelle zu landen, siehe Screenshot. Das kann aber bei euch unterschiedlich sein.
Jetzt müssen wir diesen Memory Teil nur noch dumpen. Dazu einfach Rechtsklick -> Backup -> Create Backup. Danach wieder Rechtsklick und Backup -> Save Backup to file. Sucht euch einen Namen aus und dumpt es. Die entpackte Exe ist 36,0 KB (36.864 bytes) groß und wir sind schon fertig mit dem Entpacken.

Jetzt können wir die entpackte Exe bequem in einen .NET Decompiler reinladen (z.B. Reflector) um die Programmierfähigkeiten des Entwicklers zu begutachten. Klick
Hier nochmal ein Danke an M$ für diese „guten“ .NET Programmiersprachen. Reversing macht da besonders viel Spaß, weil man sich nicht mit Maschinenbefehlen rumschlagen muss.

Ich war auch so freundlich und habe euch das Decompilation Ergebnis hochgeladen:
http://www.xup.in/dl,50057224/DLC_Decrypter_Dis.rar/
Viel Spaß beim Anschauen.

PS: Ich entschuldige mich für die vielen englischen und deutsch-englischen (denglisch) Wörter in meinen RCE Artikeln, aber manches kann man eben nicht übersetzen. Am liebsten würde ich alles auf Englisch schreiben.

Update
Mittlerweile erschien v0.4. Der Schutz ist immernoch der gleiche. Hier mal entpackt und decompiled:
http://www.xup.in/dl,31045430/DLCDecrypter_0.4_Dis.rar/

5 Gedanken zu „RCE – DLC Container Decrypter“

  1. >aber manches kann man eben nicht übersetzen.

    Da hast du vielleicht grundsätzlich recht, aber grade die Begriffe die du verwendest lassen sich sehr leicht übersetzen. Bist halt nur zu faul :-p

  2. wobei der src vom client mal sowas von uninteressant ist da der wirkliche decrypt algo auf server seite liegt.

  3. @N0S
    Werde ich mir direkt nocheinmal anschauen, fand es schon sehr interessant wie die das mit der komprimierten Headerübertragung machen. Aber das gehört in ein anderes Thema..

    Danke :)

  4. Ich habe mich dabei auf das Ergebnis von Protection ID verlassen: http://pid.gamecopyworld.com. Ja es kann natürlich sein, dass es falsch ist.
    Ich habe mir mal das giganews Programm angeschaut. Man kann genauso vorgehen wie hier beschrieben, aber man muss 2 Sachen dumpen:
    Die Programm exe: 543 KB (557.024 bytes)
    und eine DLL: 79,9 KB (81.848 bytes)
    Die DLL sollte man dann in ExceptionHandler.dll umbenennen. Wenn man sich die exe im Reflector anschaut sieht man, dass der Code obfuscated wurde (Die Variablen und Prozedurnamen habe komische Namen). Es stört zwar ein bisschen beim lesen, aber schlimm ist es auch nicht.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *