Archive for Jan. 2013

Confuser String Decrypter über mDbg

Der Confuser ist nach wie vor ein aktuelles Thema. Und dabei ist die String-Decryption soweit ich weiß nicht geknackt! Confuser stellt für fast alle Strings eine eigene Decrypterfunktion mit eigener Ressource sowie eigenen Verschlüsselungsparametern bereit. Der reine Horror für jeden, der einen statischen Unpacker schreiben will.

Dieses mal ging es um einen anderen, dynamischen Ansatz: Warum nicht die Strings auslesen, nachdem sie sich entschlüsselt im Speicher befinden? Und da ich bei dem Proxy System von Confuser Erfolg mit WinDbg hatte, ist auch hier zum Debugger gegriffen worden. Microsoft stellt uns eine .NET Debugging API bereit, auch wenn sich kaum etwas darüber im Internet finden lässt. Und genau mit dieser API in Kombination mit ein wenig Confuserwissen, Speicherlayout und .NET ist es möglich, einen Debugger und Unpacker für die Strings zu schreiben. Dabei laufen folgende Schritte ab:

  1. Debugger Instanz erstellen + die Executable laden
  2. Nach dem Laden vom “mscorlib.dll”-Modul ein Breakpoint auf System.Reflection.Module.ResolveMethod setzen (wird von .cctor gecalled, siehe Proxy-System)
  3. Sobald dieser Breakpoint erreicht ist, werden Breakpoints auf alle String-Decrypter Funktionen gesetzt. Der ResolveMethod BP wird entfernt.
  4. Wenn ein Decrypt-BP erreicht ist, so wird aus der Funktion raus gesprungen und der Wert in EAX ausgelesen. Dabei wird der Parameter (Token) von dem Decrypt-Call zusammen mit dem entschlüsselten String abgespeichert.
  5. Alle Decrypt-Funkionen, die ein Token (+ entschlüsselten String) haben, werden mit dem echten String ersetzt.

Kingt nach viel Arbeit und Source? Nicht wirklich. Fangen wir bei Punkt 1 an:

Engine = new MDbgEngine();
Proc = Engine.CreateProcess(@"C:\Users\AL\Downloads\li0nsar3c00l enhanceviews.net bot_patched.exe", "", DebugModeFlag.Debug, null);
 
Proc.PostDebugEvent += Proc_PostDebugEvent; // Jedes Event wird hierhin weitergereicht
Engine.Processes.Active.CorProcess.OnBreakpoint += CorProcess_OnBreakpoint; // ein BP wird als Event gecalled
Proc.Go().WaitOne(); // Wir lassen laufen, bis ein BP erreicht ist.
 
Console.ReadLine();

Weiterlesen

2 people like this post.

Cooles Secunet Hackit

Auf Secunet.to gibt es z.Z. ein Hackit, bei dem es ein anonymen OpenVPN zu gewinnen gibt. Mir persönlich ging es zwar nicht um den Gewinn, aber vielleicht spornt das den einen oder anderen etwas an.

Das Hackit dreht sich rund um SQL Injections. Toll fand ich bei diesem Hackit, dass man nicht nur Querys manipulieren musste, sondern vielmehr auch erstellen. So findet gerade für Anfänger ein Lernprozess statt. Aber keine Sorge, denn Langeweile kommt keine auf: ab Level6 darf man aus Querys ausbrechen, sich an IDS vorbei schleichen und auch blind injecten.

Das Hackit findet ihr unter dieser IP!

Viel Spass!

Easy

11 people like this post.

WarBot NEXON v6 - Cracked

Über CoderZ erhielt ich die Anfrage zum Cracken dieses Bots für das Spiel WarRock. Dabei gibt es sowohl einen “Free”-Mode, als auch den sog. “Premium”-Mode. Für letzteres bedarf es eines Codes, den man zuvor gegen Geld erworben hat.

Leider hat sich die Person, welche mich ursprünglich um den Crack bat, nicht mehr gemeldet, seid ich ihr eine gecrackte Version zum testen zugeschickt habe. Es ist also nicht garantiert, dass die hier gepostete Version funktioniert, ich freue mich allerdings über jedes Feedback ;-)

Des weiteren hat sich der Coder des Bots zurückgezogen und wird dementsprechend auch keine Updates mehr herrausbringen. So ist durch diesen Crack auch kein Schaden entstanden :)

Zurück zum Bot: Nach dem unpacken des Crypto-Obfuscators mit de4dot 2.0.3 gab 2 Features gab es zu patchen. Das erste Feature ist ein Anti-VM Mechanismus, welcher es nicht erlaubt dass der Bot unter einer virtuellen Maschine gestartet wird. Der Check dazu befindet sich gleich im Anfang nahe des EPs:

if (Class3.smethod_4())
{
MessageBox.Show("WarBot is running on a virtual computer. Please run WarBot on a real PC.", "WarBot - Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}

Weiterlesen

4 people like this post.