|
You last visited: Today at 20:56
Advertisement
[Tutorial] AutoIt Scripts Deobfuscaten
Discussion on [Tutorial] AutoIt Scripts Deobfuscaten within the AutoIt forum part of the Coders Den category.
08/03/2012, 00:44
|
#16
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Mein erster Post seit langem mal wieder und ich mach mich gleich unbeliebt bei der Moderation dieser Section, aber ich hoffe die (ehemaligen) Kollegen können drüber hinwegsehen.
@Tutorial
Was genau bringt das jetzt?
Ich stell mir gerade vor wie du das bei einem 500 Zeilen langen Skript machst, welches der Obfuscator wohl auf rund 2000-4000 erweitert. Willst du da wirklich alle Zeilen per Hand eingeben? Na dann wünsche ich dir dabei viel Spaß und vor allem viel Kaffee.
Und selbst wenn man die BinaryToStrings durch die richtigen Befehle ersetzt hat, bleiben immer noch die Variablen und wenn man rund 200 verschiedene Texte hat und die entsprechenden Variablen auch noch per Hand einfügen muss, wird wohl jeder die Maus gegen die Wand werfen und sich eine sinnvollere Beschäftigung suchen.
Vorausgesetzt das geschützte Skript ists nichts außergewöhnliches.
Das Tutorial erscheint mir also irgendwie sinnlos und hilft wirklich nur den Skript-Kiddies, die dann aber wiederum nichts mit dem entstandenen Code anfangen können, weil sie nicht einmal wussten wie man Deobfuscated.
Das ganze per Programm zu deobfuscaten fände ich hingegen interessanter und soweit ich weiß (ich war schon lange nicht mehr aktiv aber meine Google-Arbeit hat keine Ergebnisse gebracht), gibt es einen derartigen Deobfucator noch nicht.
|
|
|
12/24/2012, 03:41
|
#17
|
elite*gold: 0
Join Date: Feb 2012
Posts: 1,400
Received Thanks: 2,939
|
Quote:
Originally Posted by Shadow992
Mein erster Post seit langem mal wieder und ich mach mich gleich unbeliebt bei der Moderation dieser Section, aber ich hoffe die (ehemaligen) Kollegen können drüber hinwegsehen.
@Tutorial
Was genau bringt das jetzt?
Ich stell mir gerade vor wie du das bei einem 500 Zeilen langen Skript machst, welches der Obfuscator wohl auf rund 2000-4000 erweitert. Willst du da wirklich alle Zeilen per Hand eingeben? Na dann wünsche ich dir dabei viel Spaß und vor allem viel Kaffee.
Und selbst wenn man die BinaryToStrings durch die richtigen Befehle ersetzt hat, bleiben immer noch die Variablen und wenn man rund 200 verschiedene Texte hat und die entsprechenden Variablen auch noch per Hand einfügen muss, wird wohl jeder die Maus gegen die Wand werfen und sich eine sinnvollere Beschäftigung suchen.
Vorausgesetzt das geschützte Skript ists nichts außergewöhnliches.
Das Tutorial erscheint mir also irgendwie sinnlos und hilft wirklich nur den Skript-Kiddies, die dann aber wiederum nichts mit dem entstandenen Code anfangen können, weil sie nicht einmal wussten wie man Deobfuscated.
Das ganze per Programm zu deobfuscaten fände ich hingegen interessanter und soweit ich weiß (ich war schon lange nicht mehr aktiv aber meine Google-Arbeit hat keine Ergebnisse gebracht), gibt es einen derartigen Deobfucator noch nicht.
|
Sorry für den Push ^^
Habe diese Deobfuscation's Methode schon seit langem gepostet, ist also nichts neues, und jedem erfahrenem User bekannt.
Meiner Meinung nach wirklich nur ein Schrei nach beachtung.
PHP Code:
#include <File.au3>
$CurrentClip = ClipGet()
$Final = ""
$file = FileOpenDialog("Select an Autoit Script", @ScriptDir & "", "Autoit Script (*.au3)", 1 + 4)
$ofile = FileOpen($file, 0)
For $i = 1 to _FileCountLines($file)+1
ToolTip($i,0,0)
If StringInStr(FileReadLine($ofile,$i), "Execute(BinaryToString(") Then
Execute(StringReplace (FileReadLine($ofile,$i), "Execute(BinaryToString(", "Clipput(BinaryToString(", 1))
If StringLeft(ClipGet(),2) = "0x" Then
$Final &= BinaryToString(ClipGet()) & @CRLF
Else
$Final &= ClipGet() & @CRLF
EndIf
Else
$Final &= FileReadLine($ofile,$i) & @CRLF
EndIf
Next
ClipPut($CurrentClip)
FileWrite("test.au3",$Final)
In 5 Minuten geschrieben.
Sollte funktionieren.
|
|
|
12/24/2012, 13:41
|
#18
|
elite*gold: 0
Join Date: Dec 2012
Posts: 110
Received Thanks: 43
|
Ich weiß nicht, ob es geht, aber ich empfehle lieber dieses Script:
Code:
#include <File.au3>
$CurrentClip = ClipGet()
$Final = ""
$file = FileOpenDialog("Select an Autoit Script", @ScriptDir & "", "Autoit Script (*.au3)", 1 + 4)
$ofile = FileOpen($file, 0)
For $i = 1 to _FileCountLines($file)+1
ToolTip($i,0,0)
If StringInStr(FileReadLine($ofile,$i), "Execute(BinaryToString(") Then
Execute(StringReplace (FileReadLine($ofile,$i), "Execute(BinaryToString(", "Clipput(BinaryToString(", 1))
If StringLeft(ClipGet(),2) = "0x" Then
$Final &= BinaryToString(ClipGet()) & @CRLF
Else
$Final &= ClipGet() & @CRLF
EndIf
Else
$Final &= FileReadLine($ofile,$i) & @CRLF
EndIf
Next
ClipPut($CurrentClip)
FileWrite(StringReplace($file, ".au3", "_deobfuscated.au3"), $Final)
Da es den alten Dateinamen behält, mit einem "_deobfuscated" dahinter xD
|
|
|
12/24/2012, 15:49
|
#19
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Quote:
Originally Posted by Crack-wtf
Sorry für den Push ^^
Habe diese Deobfuscation's Methode schon seit langem gepostet, ist also nichts neues, und jedem erfahrenem User bekannt.
Meiner Meinung nach wirklich nur ein Schrei nach beachtung.
PHP Code:
#include <File.au3>
$CurrentClip = ClipGet()
$Final = ""
$file = FileOpenDialog("Select an Autoit Script", @ScriptDir & "", "Autoit Script (*.au3)", 1 + 4)
$ofile = FileOpen($file, 0)
For $i = 1 to _FileCountLines($file)+1
ToolTip($i,0,0)
If StringInStr(FileReadLine($ofile,$i), "Execute(BinaryToString(") Then
Execute(StringReplace (FileReadLine($ofile,$i), "Execute(BinaryToString(", "Clipput(BinaryToString(", 1))
If StringLeft(ClipGet(),2) = "0x" Then
$Final &= BinaryToString(ClipGet()) & @CRLF
Else
$Final &= ClipGet() & @CRLF
EndIf
Else
$Final &= FileReadLine($ofile,$i) & @CRLF
EndIf
Next
ClipPut($CurrentClip)
FileWrite("test.au3",$Final)
In 5 Minuten geschrieben.
Sollte funktionieren.
|
Quote:
Originally Posted by DasRequi
Ich weiß nicht, ob es geht, aber ich empfehle lieber dieses Script:
Code:
#include <File.au3>
$CurrentClip = ClipGet()
$Final = ""
$file = FileOpenDialog("Select an Autoit Script", @ScriptDir & "", "Autoit Script (*.au3)", 1 + 4)
$ofile = FileOpen($file, 0)
For $i = 1 to _FileCountLines($file)+1
ToolTip($i,0,0)
If StringInStr(FileReadLine($ofile,$i), "Execute(BinaryToString(") Then
Execute(StringReplace (FileReadLine($ofile,$i), "Execute(BinaryToString(", "Clipput(BinaryToString(", 1))
If StringLeft(ClipGet(),2) = "0x" Then
$Final &= BinaryToString(ClipGet()) & @CRLF
Else
$Final &= ClipGet() & @CRLF
EndIf
Else
$Final &= FileReadLine($ofile,$i) & @CRLF
EndIf
Next
ClipPut($CurrentClip)
FileWrite(StringReplace($file, ".au3", "_deobfuscated.au3"), $Final)
Da es den alten Dateinamen behält, mit einem "_deobfuscated" dahinter xD
|
Das funktioniert aber bei der C++ Version vom Obfuscator nicht (mehr).
Edit:
Und ob das bei der AutoIt-Version funktioniert frag ich mich auch.
Edit2:
Etwas derartiges dürfte noch nie bei meinen Obfuscatoren funktioniert haben, denn beide Versionen von meinen Obfuscatoren setzen auf selbsterstellte Funktionen, um eben ein derartiges deobfuscaten von Außen zu verhindern. Man müsste schon das ursprüngliche Skript ausführen und dort dann Zeile für Zeile kopieren, aber auf diese Art und Weise von Außen sollte das nicht möglich sein.
Ihr dürft mich aber gerne vom Gegenteil überzeugen.
|
|
|
12/26/2012, 21:37
|
#20
|
elite*gold: 0
Join Date: Feb 2012
Posts: 1,400
Received Thanks: 2,939
|
Naja manuell ist dein C++ Deobfuscator auch kein Problem.
Bei kleinen sources schreibt er den Source direkt nur mit Execute rein, und bei größeren in ein Array.
Aber Automatisch fällt mir auf anhieb keine möglichkeit ein :Q
|
|
|
12/26/2012, 22:17
|
#21
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Quote:
Originally Posted by Crack-wtf
Naja manuell ist dein C++ Deobfuscator auch kein Problem.
Bei kleinen sources schreibt er den Source direkt nur mit Execute rein, und bei größeren in ein Array.
Aber Automatisch fällt mir auf anhieb keine möglichkeit ein :Q
|
Wobei es selbst manuell ein paar Problemchen beim C++ Obfuscator gibt.
|
|
|
12/27/2012, 06:55
|
#22
|
elite*gold: 0
Join Date: Feb 2012
Posts: 1,400
Received Thanks: 2,939
|
Meinst du die ganzen Random Funktionen?
Nah wenn man weiß was das Script machen soll kann man sich da vorran tasten.
Außerdem werden deine Fake Funktionen nich gecallt also kann man das gleich erkennen.
|
|
|
12/29/2012, 16:44
|
#23
|
elite*gold: LOCKED
Join Date: Sep 2012
Posts: 1,599
Received Thanks: 255
|
Ich würde sagen 90% aller user hier kapieren nicht mal den Anfang mich eingeschlossen mach ein ordendliches video tut oder beschreibe jeden kleinen Teil den man machen muss!
#vote 4 close!
|
|
|
12/29/2012, 17:17
|
#24
|
elite*gold: 124
Join Date: Dec 2009
Posts: 2,114
Received Thanks: 3,142
|
Du willst, dass ein Thread geschlossen wird, weil du ihn nicht verstehst?
Das ist halt kein Anfänger Tutorial.
Wer es nicht versteht, kann nachher mit dem deobfuscateten Source auch recht wenig anfangen, da ändert ein Videotutorial nichts dran.
|
|
|
12/29/2012, 21:17
|
#25
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Quote:
Originally Posted by Crack-wtf
Meinst du die ganzen Random Funktionen?
Nah wenn man weiß was das Script machen soll kann man sich da vorran tasten.
Außerdem werden deine Fake Funktionen nich gecallt also kann man das gleich erkennen.
|
Das mein ich gar nicht.
Sondern eher die Funktionen, die auf Grund von dem Execute nicht ausgeführt werden, wenn sie aber ohne Execute im Skript stehen problemlos ausgeführt werden.
Wenn man weiß wie sind diese natürlich sehr leicht zu enttarnen.
Aber bitte vergesst nicht die Tatsache, dass ein derartiges Tutorial für Anfänger gedacht sein muss.
Von daher denke ich, ist das ganze Anfängern gegenüber relativ sicher.
|
|
|
Similar Threads
|
Programm deobfuscaten
04/19/2012 - General Coding - 2 Replies
Hallo,
Ich möchte ein Programm welches mit Cryptos deobfuscatet wurde entpacken(Anwendung in C# geschrieben) und dann in meinem Visual Studio öffnen.
Weiß jemand wie es geht?
|
All times are GMT +1. The time now is 20:56.
|
|