Archive for Mrz. 2013

Unpacken ist out, Memory patchen ist in!

Heutzutage ist der einzig weiterhin effektive Obfuscator Confuser. Er bietet die Verschlüsselung von Methoden an, das schon öfter angesprochene Proxy-System und vieles weitere, kurzerhand alles um einem Cracker das Leben zur Hölle zu machen. Nennt man die Methoden um, funktioniert das Proxy-System nichtmehr. Schreibt man die Assembly neu, so sind die Ressourcen unbrauchbar. Confuser zu entpacken heißt alles oder nichts, denn alles ist miteinander verknüft. Wenn man nicht alles entschlüsselt, bekommt man kein lauffähiges Programm.

Doch es gibt eine Lösung: Debugger! Bereits vor einigen Monaten habe ich ein String-Decrypter System vorgestellt, dass auf Basis des mDbg Debuggers dynamisch Strings entschlüsselt. Die Vorteile von Debuggern liegen klar auf der Hand: Wenn man einmal die Anti-Debug-Funktionen entfernt hat, kann man das Programm analysieren und auch zur Laufzeit verändern. Kein neues erstellen der Exe ist von Nöten, die Methoden und Strings sind entschlüsselt im Speicher und da das Programm immernoch vom .NET Framework gelesen werden muss, macht uns die Metadata-Zerstörung auch nichts aus.

Mich haben in letzter Zeit gefühlte tausend Emails und Nachrichten erreicht, mit der Frage ob man den FUT Autobuyer cracken kann. Meine Antwort bestand stehts aus Links zu Threads die erklären, wie man Confuser zumindest halbwegs entpackt. Alles andere ist dann kein großes Problem mehr, so war es zumindest in der Vorgängerversionen.

Weiterlesen

12 people like this post.

TubeDigger - Anti-Debug & TrialPeriod

Es gilt mal wieder etwas neues, natives zu Revesen! TubeDigger ist ein ultimatives Programm zum Downloaden von Streams (z.B. von Youtube und Co). Es ist nicht gepackt, daher kann man es schön Analysieren und vielleicht auch irgendwann Patchen.

In diesem Post geht es nicht darum, ein Programm zu cracken, sondern vielmehr aufzuzeigen, wie schön native Analysen sein können. Wenn sich plötzlich mehrere Fäden zu einem Strang verknüpfen, ist das echtes reverse Engineering! Vielleicht wird es einen zweiten Blogeintrag zu diesem Programm geben, denn dieser erste Post beschränkt sich nur auf Anti-Debug Methoden und auf die Verlängerung der Trial-Periode.

Sobald wir das Programm im Debugger laden bekommen wir es direkt mit einer schönen Fehlermeldung zu tun:

TubeDigger1

Einen schönen Humor haben die Programmierer schonmal. Dieser Blog ist zwar nicht Youtube, aber ich denke das zählt auch :D

Wenn wir uns zu diesem Zeitpunkt den Stack anschauen, so findet sich irgendwo ein Call zu NtQueryInformationProcess“:

0020BC38  |0049EA21  RETURN to TubeDigg.0049EA21 from TubeDigg.0049E920
0020BC3C  |76E60000  ntdll.76E60000
0020BC40  |76EA5130  ntdll.ZwQueryInformationProcess
 Weiterlesen

11 people like this post.