Archive for Jun. 2012

Confuser DeConfused

Ein kleines Update zum aktuellen Projekt, dem schreiben eines Unpackers für den Confuser 1.7.0.0 und 1.8.0.0. Es wird vorallem um das Proxy-System und die raffinierte Object-Verschlüsselung gehen. Hard stuff, aber richtig cool wenn man es mal kapiert hat.

Original bin ich auf den Confuser durch Malware gestossen, diese war mit 1.7.0.0 geschützt. Die Malware war der Inbegriff von Unübersichtlichkeit. Wie sollte man dort abstrahieren um einen DeObfuscator zu schreiben? Daher wurde ein simples Hello-World-Programm erstellt (mit 1.8.0.0) und dieses für weitere Analysen verwendet. Diese Hello-World Programm wird auch im folgenden für die Erklärungen verwendet.

Das Proxy-System ist einfach und genial zugleich. Anstatt direkte Methodenaufrufe wie System.Console.WriteLine(String) zu verwenden, wird ein Wrapper um den gesamten Call gepackt. Ein Delegate wird dann mit der richtigen Funktion (WriteLine) verknüpft und im Wrapper dieses verknüpfte Delegate aufgerufen. Dabei errechnet sich das Token (eine Art MethodenID) dem Namen der Delegate-Funktion. Soweit verstanden? In der Praxis sieht das so aus:

 

Weiterlesen

12 people like this post.

Confuser is Confusing

Der Confuser, welchem dieser Post gewidmet wird, ist ein Open Source Obfuscator für .NET Assemblies. Der allzu bekannte DeObfuscator De4Dot unterstützt Confuser nicht, und wird es auch in Zukunft nicht. Ein Alternativprojekt namens DeConfuser ist zwar vorhanden, allerdings deckt es nur wenige Funktionen ab und funktioniert (zumindest bei mir) in der aktuellen Version überhaupt nicht.

Dieser Blogpost wird, ähnlich wie schon beim InterCafe RE, eine Gedankensammlung und Writeup sein. Denn wie schon Kleist in seinem Aufsatz “Über die allmähliche Verfertigung der Gedanken beim Reden” meint:

Probleme, die nicht durch Meditation lösbar sind, sind dadurch zu lösen, indem Man mit anderen darüber spricht

Genug des Exkurses, gehen wir ans Reversen. Das Problem sind zunächst die unleserlichen Strings. So sieht eine Crypto-Funktion z.B. so aus:

Weiterlesen

6 people like this post.

Einjähriges Bestehen + Downtime

Vor mehr oder weniger einem Jahr hat dieser Blog die Welt erblickt. In dieser Zeit sind so nahezu 50 Beiträge zu den verschiedensten Themen veröffentlicht worden. Auch wenn ich in der nächsten Zeit durch die Coderz.cc Admistration nicht mehr ganz so viel bloggen kann wird der Blog natürlich weitergeführt!

Zur Downtime: Die letzen Tage war der Blog nicht unter der normalen Domain easysurfer.me zu erreichen. Grund dafür war ein Fehler bei der Domainverlängerung, das Problem hat sich inzwischen allerdings geklärt. Sollte es nochmal Probleme mit der Domain geben kann die Subdomain easysurfer.back2hack.cc als Alternative verwendet werden.

Easy

5 people like this post.