Browsing posts in: Allgemein

ConfuserEx – Follow the x86 Predicate

In diesem Artikel geht es darum Wege zu erkunden. Zwar keine Wege im eigentlichen oder fantasievollen Sinne, sondern der Weg von Instruktionen und Code. Denn genau das macht die sogenannte „Control-Flow-Obfuscation“ von ConfuserEx . Dabei wird der sonst so linear ablaufende Code durch Codefragmente und scheinbar unvorhersehbare Sprünge ersetzt. Jedes Codefragment liefert nach der Ausführung eine Zahl, die genutzt wird um den Sprung zum nächsten Codefragment zu berechnen.

Die Idee dahinter ist nicht neu und wird bereits in vielen Obfuscatoren eingesetzt. Auch kann Code-Flow-Obfuscation bereits hinreichend gut von dem Universaldeobfuscator de4dot entfernt werden. Doch was verleitet mich dennoch dazu diesem Schutzmechanismus einen eigenen Artikel zu widmen ? Es geht um die spezielle Art wie diese Code-Flow-Obfuscation aufgebaut ist und wie man sie im rückgängig machen kann.

An dieser Stelle muss ich direkt anmerken dass es in diesem Artikel nicht darum geht die Code-Flow-Obfuscation zu entfernen mit dem Ziel wieder einen linearen Code zu erhalten. Das können andere Tools inzwischen sehr gut. Es geht vielmehr darum Obfuscation in eine abgewandelte, ja sogar hübschere Form zu überführen die von weiteren Tools bearbeitet werden kann. Wessen Interesse trotzdem geweckt ist darf gerne weiter lesen und sich in die Welt der x86 Predicates begeben.

Continue Reading

3+