Was macht das Programm?
Antwort: Man kann ein AutoIt-Script auswählen. Anschließend wird eine Kopie davon erstellt und diese Kopie vom Obfuscator verschleiert. Alle Variablen werden durch Hashs (z.B. $_DE6858087697668DE) ersetzt. Dadurch wird es denjenigen , die den Sourcecode sehen wollen sehr schwer gemacht den Code zu verstehen (Es ist nicht unmöglich aber sehr viel schwerer als ohne Obfuscator) .
Die erstellte Datei hat den Dateinamen: Dein_Skript_Name-obfuscated.au3
Du willst dein AutoIt-Code noch besser schützen?
Dann schau dir das an:
Ein weiterer neuerer Obfuscator von mir:
Autoit-Obfuscator (Outdated, better use Obfuscator written in C++ for AutoIt)
Er ist zwar schlechter als der Obfuscator mit C/C++ (auch in diesem Post) und war auch mein erster Versuch was Obfuscatoren angeht, kann aber trotzdem genug um viele "Skriptkiddies" zum Verzweifeln zu bringen. Da ich den Obfuscator schon lange fertig machen wollte (obwohl ich kaum noch mit Autoit arbeite) hatte ich mich hingesetzt und überlegt wie man denn am besten einen Obfuscator machen kann, der nicht so leicht deobfuscated werden kann.
Pro :
-Variablen und Funktionen werden gehasht (also sind sie schwer zurück "übersetzbar")
-Funktionen, Variablen, normale Autoit Befehle und Strings werden obfuscatet .
-Ihr bekommt den Sourcecode
-Auch bei größeren Projekten (ca 500 Zeilen) braucht Autoit nicht länger als 5 sec zum obfuscaten ( normalerweise ist Autoit nicht gerade die beste Sprache wenn es um Schnelligkeit geht)
-Die Variablennamen sind mit dem Shadowhash alle ziehmlich ähnlich (sorgt für zusätzliche Verwirrung)
Kontra
-Das uncompilierte Skript wird ungefähr 12x so groß (aber wer auf größe setzt der sollte sowieso nicht mit AutoIT coden)
Kleines Beispiel :
Ich freue mich auf Anregungen und Kritik (aber bitte neutrale Kritik , die mir beim "verbessern" helfen soll/kann , auch wenn ihr das Skript noch so sche*** findet !)
Edit :
Der ganze Obfuscator ist in Autoit geschrieben (steht ja eig schon oben) , das beweist mal wieder wie "viel" man mit AutoIT machen kann .
Copyright :
Es steht euch frei das Skript zu verändern , zu kopieren
oder erneut hochzuladen , solange ihr erwähnt , dass das eigentliche Skript von mir ist .
Es steht euch unter keinen Umständen zu das Skript zu verkaufen !
Update :
Pro :
-Variablen und Funktionen werden gehasht (also sind sie schwer zurück "übersetzbar")
-Funktionen, Variablen, normale Autoit Befehle und Strings werden obfuscatet .
-Ihr bekommt den Sourcecode
-Auch bei größeren Projekten (ca 500 Zeilen) braucht Autoit nicht länger als 5 sec zum obfuscaten ( normalerweise ist Autoit nicht gerade die beste Sprache wenn es um Schnelligkeit geht)
-Die Variablennamen sind mit dem Shadowhash alle ziehmlich ähnlich (sorgt für zusätzliche Verwirrung)
Kontra
-Das uncompilierte Skript wird ungefähr 12x so groß (aber wer auf größe setzt der sollte sowieso nicht mit AutoIT coden)
Kleines Beispiel :
Nicht obfuscated :
Der selbe Code nachdem ich ihn durch meinen Obfuscator gejagt habe :
Natürlich hängt es von euerem Schlüssel ab , wie Obfuscated wird .
Das Skript ist nur ein mögliches Beispiel von vielen , um zu zeigen wie der obfuscatete Code ausschauen könnte , wie er dann in der Realität ausschaut hängt vom Schlüssel und vom Hash bzw Verschlüsselung ab , die ihr benutzt habt .
PHP Code:
$inputnr1=InputBox("Hi","Gib etwas ein ")
$inputnr2=InputBox("Hi","Gib noch etwas ein ")
$test=MsgBox(0,"Eingegebene kombiniert : ",Combine($inputnr1,$inputnr2))
Func Combine($input1,$input2)
$input=$input1&$input2&$input1
return $input
EndFunc
PHP Code:
Msgbox(0,"test","123456test1235461E170312481413011C1D48501715604913490112135A0F174949MMM")
Execute(BinaryToString("0x5F5050"&Stringlen("WNN")&"0"&Stringlen("DGMKLTI")&((6+3)^2)-73&"3"&((6+3)^2)-73&"393"&Stringlen("n")&"393536"&Stringlen("WZJC")&Stringlen("n")&"3"&Stringlen("DGMKLTI")&"3"&Stringlen("WZJC")&"4537334"&Stringlen("jT")&"3530373"&Execute(Binarytostring('0x696E7428436F732853696E2028333430372E333739313134373539313529295E2D3129'))&"45433"&Execute(Binarytostring('0x696E7428436F732853696E2028333430372E333739313134373539313529295E2D3129'))&"4"&Stringlen("jT")&"4544393"&Execute(Binarytostring('0x696E7428436F732853696E2028333430372E333739313134373539313529295E2D3129'))&"353742353342422829"))
$_P0x23B6FD2F6CF8D9CDDBBFFF432DCC14A2=Execute(BinaryToString("0x"&Stringlen("BMTK")&"96E"&Stringlen("PBPPXYV")&"0"&Stringlen("PBPPXYV")&"5"&Stringlen("PBPPXYV")&Stringlen("BMTK")&"4"&Stringlen("nX")&"6F"&Stringlen("PBPPXYV")&((6+3)^2)-73&Stringlen("nX")&((6+3)^2)-73&Stringlen("nX")&"4505F50"&Stringlen("NJU")&"07"&((6+3)^2)-73&Stringlen("NJU")&"3334"&Stringlen("q")&"344344433730393736453"&Stringlen("q")&"44314"&Stringlen("nX")&"3943303435333838363036393834372C24505F503078464443433146353632383935324436303537443436313536334539424643314429"))
$_P0xFB7A9A62BA1BC9B9FC3E15E9E76A4F5C=Execute(BinaryToString("0x"&Stringlen("NPII")&"96E"&Stringlen("WNEKUKB")&"0"&Stringlen("WNEKUKB")&"5"&Stringlen("WNEKUKB")&"44"&Stringlen("rF")&"6F7"&((6+3)^2)-73&Stringlen("rF")&((6+3)^2)-73&Stringlen("rF")&"4505F50"&Stringlen("UIG")&"07"&((6+3)^2)-73&Stringlen("UIG")&"3334"&Stringlen("z")&"34434443373039373645314431423943303435333838363036393834372C24505F503078453942323446303335304146323333344637394538384445363232423245354229"))
$_P0x1D3E35E33FB3DDEEDC083353FF46EA87=Execute(BinaryToString("0x"&Stringlen("REYA")&"D"&Stringlen("WTWOLMU")&Stringlen("RWP")&"6"&Stringlen("WTWOLMU")&Stringlen("REYA")&Stringlen("cR")&"6F"&Stringlen("WTWOLMU")&((6+3)^2)-73&Stringlen("cR")&((6+3)^2)-73&Stringlen("RWP")&"0"&Stringlen("cR")&"C2"&Stringlen("REYA")&"505F5030"&Stringlen("WTWOLMU")&"8383036354"&Stringlen("i")&"39433"&Execute(Binarytostring('0x696E7428436F732853696E2028363732312E343137353838333338323629295E2D3129'))&"38464530424346424"&Execute(Binarytostring('0x696E7428436F732853696E2028363732312E343137353838333338323629295E2D3129'))&"32343"&Execute(Binarytostring('0x696E7428436F732853696E2028363732312E343137353838333338323629295E2D3129'))&"4"&Execute(Binarytostring('0x696E7428436F732853696E2028363732312E343137353838333338323629295E2D3129'))&"393"&Execute(Binarytostring('0x696E7428436F732853696E2028363732312E343137353838333338323629295E2D3129'))&"33463642433644453"&Execute(Binarytostring('0x696E7428436F732853696E2028363732312E343137353838333338323629295E2D3129'))&"2C5F503078363"&Execute(Binarytostring('0x696E7428436F732853696E2028363732312E343137353838333338323629295E2D3129'))&"423236334639463434323939393930463933424346303"&Execute(Binarytostring('0x696E7428436F732853696E2028363732312E343137353838333338323629295E2D3129'))&"3634333543344"&Execute(Binarytostring('0x696E7428436F732853696E2028363732312E343137353838333338323629295E2D3129'))&"28245F503078323342364644324636434638443943444442424646463433324443433"&Execute(Binarytostring('0x696E7428436F732853696E2028363732312E343137353838333338323629295E2D3129'))&"344"&Execute(Binarytostring('0x696E7428436F732853696E2028363732312E343137353838333338323629295E2D3129'))&"322C245F5030784642374"&Execute(Binarytostring('0x696E7428436F732853696E2028363732312E343137353838333338323629295E2D3129'))&"394"&Execute(Binarytostring('0x696E7428436F732853696E2028363732312E343137353838333338323629295E2D3129'))&"3632424"&Execute(Binarytostring('0x696E7428436F732853696E2028363732312E343137353838333338323629295E2D3129'))&"3"&Execute(Binarytostring('0x696E7428436F732853696E2028363732312E343137353838333338323629295E2D3129'))&"4243394239464333453"&Execute(Binarytostring('0x696E7428436F732853696E2028363732312E343137353838333338323629295E2D3129'))&"3545394537364"&Execute(Binarytostring('0x696E7428436F732853696E2028363732312E343137353838333338323629295E2D3129'))&"344635432929"))
Func _P0x61B263F9F44299990F93BCF016435C4A($_P0xFDAD7174750D261551491209FDC6A81D,$_P0xA63404A76C3BCBF15574D934A9DAE334)
$_P0xEA5D6738C681BA8CFB1EF03D7808FF75=Execute(BinaryToString("0x"&Stringlen("vY")&Stringlen("LKSP")&"5F50"&Stringlen("ICT")&"0"&Stringlen("SGVYRNN")&((6+3)^2)-73&"46444"&Stringlen("p")&"44"&Stringlen("ICT")&Stringlen("SGVYRNN")&Stringlen("ICT")&Stringlen("p")&"3"&Stringlen("SGVYRNN")&"34373530443"&Stringlen("vY")&"36313535313439313"&Stringlen("vY")&"303946444336413"&((6+3)^2)-73&"3144"&Stringlen("vY")&"6245F503078413633343034413736433342434246313535373444393334413944414533333426245F5030784644414437313734373530443236313535313439313230394644433641383144"))
return $_P0xEA5D6738C681BA8CFB1EF03D7808FF75
EndFunc
Func _P0xE06FF8CD0B8BCA44393779373A1E3677($_P0x1C95D16FE949A8499638B2B35FD11EC0)
$_P0x06BFD9AFBE9A666045F58942E2BB7D2B=Execute(BinaryToString("0x5"&Stringlen("MVH")&Stringlen("FYFIBVF")&Stringlen("WAJM")&Stringlen("FYFIBVF")&Stringlen("sY")&"696E6"&Stringlen("FYFIBVF")&"53"&Stringlen("FYFIBVF")&"06C697"&Stringlen("WAJM")&Stringlen("sY")&((6+3)^2)-73&Stringlen("sY")&"45F50307"&((6+3)^2)-73&"3"&Stringlen("x")&"433935443"&Stringlen("x")&"364645393439413"&((6+3)^2)-73&"3439393633384232423335464431314543302C222229"))
$_P0x1C95D16FE949A8499638B2B35FD11EC0=Execute(BinaryToString("0x"&Stringlen("NLTC")&"5"&Stringlen("DSWHUFP")&((6+3)^2)-73&"656"&Stringlen("FUT")&Stringlen("DSWHUFP")&"57"&Stringlen("NLTC")&"65"&Stringlen("qG")&((6+3)^2)-73&Stringlen("qG")&"7"&Stringlen("NLTC")&Stringlen("qG")&"696E6"&Stringlen("o")&"7279546F5"&Stringlen("FUT")&"7472696E672"&((6+3)^2)-73&"22"&Stringlen("FUT")&"07"&Execute(Binarytostring('0x426974584F522836392C373729'))&"2226537472696E676C656E2"&Execute(Binarytostring('0x426974584F522836392C373729'))&"22444D59222926223022292729"))
For $_P0x85010A521E22C4D4EC5566024CF77959=1 To UBound($_P0x06BFD9AFBE9A666045F58942E2BB7D2B)-1
$_P0x1C95D16FE949A8499638B2B35FD11EC0=Execute(BinaryToString("0x"&Stringlen("jA")&Stringlen("HZAT")&"5F50"&Stringlen("MIA")&"0"&Stringlen("QGKPKOS")&((6+3)^2)-73&"3"&Stringlen("n")&Stringlen("HZAT")&"33935"&Stringlen("HZAT")&"43"&Stringlen("n")&"3646453934394"&Stringlen("n")&"3"&((6+3)^2)-73&"3439393633384"&Stringlen("jA")&"3"&Stringlen("jA")&"4"&Stringlen("jA")&"3335464431314543302B245F5030"&Stringlen("QGKPKOS")&"8303642464439414642453941363636303435463538393432453242423"&Stringlen("QGKPKOS")&"4432425B245F5030"&Stringlen("QGKPKOS")&"838353031304135323145323243344434454335353636303234434637373935395D"))
Next
return $_P0x1C95D16FE949A8499638B2B35FD11EC0
EndFunc
Func _PP0x891956A74E73B5071EC1BED9157B53BB()
Global $P_P0xE9A355C970FA6628B7FCA758B3EA6EF6
Execute(BinaryToString("0x"&Stringlen("NKWI")&Stringlen("g")&Stringlen("XXUDEKS")&Stringlen("VAN")&"7"&Stringlen("VAN")&"69676E"&Stringlen("sN")&((6+3)^2)-73&Stringlen("sN")&"2505F50"&Stringlen("VAN")&"078"&Stringlen("NKWI")&"539"&Stringlen("NKWI")&Stringlen("g")&"333535"&Execute("_P0xE06FF8CD0B8BCA44393779373A1E3677(10*9)-5")&"3393730"&Execute("_P0xE06FF8CD0B8BCA44393779373A1E3677(10*9)-5")&"64"&Stringlen("g")&"3636323842374643413735384233454136454636222C2022746573742229"))
Global $P_P0x68E57EC02B4958E4A4B2BDEE95E03EA6
Execute(BinaryToString("0x"&Stringlen("MPHV")&Stringlen("x")&Stringlen("PFFGHQI")&Stringlen("NTR")&Stringlen("PFFGHQI")&"369676E"&Stringlen("xW")&((6+3)^2)-73&Stringlen("xW")&Stringlen("xW")&"505F50307"&((6+3)^2)-73&"3638"&Stringlen("MPHV")&"53537"&Execute("_P0xE06FF8CD0B8BCA44393779373A1E3677(3*9)-5")&"5"&Execute("_P0xE06FF8CD0B8BCA44393779373A1E3677(3*9)-5")&"3303"&Stringlen("xW")&Execute("_P0xE06FF8CD0B8BCA44393779373A1E3677(3*9)-5")&"234393538453441344232424445453935453033454136222C202274657374322229"))
Global $P_P0x33A4CDC70976E1D1B9C0453886069847
Execute(BinaryToString("0x"&Stringlen("WHVQ")&Stringlen("h")&Stringlen("ZEGSHYO")&Stringlen("GET")&"7369676E"&Stringlen("bX")&((6+3)^2)-73&Stringlen("bX")&Stringlen("bX")&"505F50307"&((6+3)^2)-73&"3333"&Stringlen("WHVQ")&"13"&Execute("_P0xE06FF8CD0B8BCA44393779373A1E3677(1*9)-5")&"4344433730393736453144314"&Stringlen("bX")&"3943303435333"&((6+3)^2)-73&"3836303639383437222C202248692229"))
Global $P_P0xFDCC1F5628952D6057D461563E9BFC1D
Execute(BinaryToString("0x"&Stringlen("QHPB")&Stringlen("c")&Stringlen("IUGZYFJ")&Stringlen("QPE")&Stringlen("IUGZYFJ")&Stringlen("QPE")&"696"&Stringlen("IUGZYFJ")&"6E"&Stringlen("lP")&((6+3)^2)-73&Stringlen("lP")&"2505F5030"&Stringlen("IUGZYFJ")&((6+3)^2)-73&Stringlen("QHPB")&"6"&Execute("_P0xE06FF8CD0B8BCA44393779373A1E3677(5*9)-5")&Execute("_P0xE06FF8CD0B8BCA44393779373A1E3677(5*9)-5")&"43433"&Stringlen("c")&"4635363238393532443630353"&Stringlen("IUGZYFJ")&"4434363135363345394246433144222C20224769622065747761732065696E202229"))
Global $P_P0xE9B24F0350AF2334F79E88DE622B2E5B
Execute(BinaryToString("0x"&Stringlen("IVCA")&Stringlen("f")&Stringlen("OBFOBKC")&Stringlen("LOW")&Stringlen("OBFOBKC")&Stringlen("LOW")&"696"&Stringlen("OBFOBKC")&"6E"&Stringlen("hO")&((6+3)^2)-73&Stringlen("hO")&"2505F50"&Stringlen("LOW")&"078"&Stringlen("IVCA")&"53942323446303335304"&Stringlen("f")&"463233333446373945383844453632324232453542222C2022476962206E6F6368206574776"&Stringlen("f")&"732065696E202229"))
Global $P_P0x8065A9C18FE0BCFBA241A913F6BC6DE1
Execute(BinaryToString("0x"&Stringlen("CQYL")&Stringlen("x")&Stringlen("HDNTZZX")&Stringlen("SSF")&Stringlen("HDNTZZX")&"3696"&Stringlen("HDNTZZX")&"6E"&Stringlen("uG")&((6+3)^2)-73&Stringlen("uG")&"2505F5030"&Stringlen("HDNTZZX")&Execute(Binarytostring('0x426974584F522833372C343529'))&"3"&Execute(Binarytostring('0x426974584F522833372C343529'))&"303635"&Stringlen("CQYL")&Stringlen("x")&"39433"&Stringlen("x")&"3"&Execute(Binarytostring('0x426974584F522833372C343529'))&"4645304243464241323431413931334636424336444531222C202245696E6765676562656E65206B6F6D62696E69657274203A202229"))
EndFunc
Das Skript ist nur ein mögliches Beispiel von vielen , um zu zeigen wie der obfuscatete Code ausschauen könnte , wie er dann in der Realität ausschaut hängt vom Schlüssel und vom Hash bzw Verschlüsselung ab , die ihr benutzt habt .
Ich freue mich auf Anregungen und Kritik (aber bitte neutrale Kritik , die mir beim "verbessern" helfen soll/kann , auch wenn ihr das Skript noch so sche*** findet !)
Edit :
Der ganze Obfuscator ist in Autoit geschrieben (steht ja eig schon oben) , das beweist mal wieder wie "viel" man mit AutoIT machen kann .
Copyright :
Es steht euch frei das Skript zu verändern , zu kopieren
oder erneut hochzuladen , solange ihr erwähnt , dass das eigentliche Skript von mir ist .
Es steht euch unter keinen Umständen zu das Skript zu verkaufen !
Update :
v1.1.7
-Illegal Charakter Errors entfernt
-Undefined Function Errors entfernt
-Warning Anzahl minimiert
-Errors kommen nur noch sehr selten vor
-Benutzerfreundlichkeit erhöht
-Copyright eingefügt
-Variablen mit Nummern im Namen werden nun richtig gehasht
-Ungenutzte Funktionen aus dem Skript entfernt
-Stärke der Obfuscation von AutoIT Befehlen erhöht
-Shadowhash verbessert
-Neues GUI eingebaut
-Mehr Hashfunktionen
-Mehr Features
-MD5-Hash hinzugefügt
-Kleine Bugs ausgebessert
-Includes können mit eingebunden werden (manchmal nötig , damit der Code funktioniert , dauert aber leider sehr lange)
v1.1.8
-Kleine Bugs ausgebessert
v1.1.9 & v1.1.10
-Obfuscation stärke verbessert
-Shadowhash verbessert
-Mehrfach hash möglich
-Bugs entfernt , die das obfuscatete Skript ohne Fehlermeldung abstürzen haben lassen .
v1.1.11
-Shadowhash überarbeitet (Kollisionsanzahl minimiert)
v1.2.0
-Includes werden jetzt sehr viel schneller eingebunden als in den Versionen davor
-Kleinigkeiten verändert , die den Obfuscation Vorgang beschleunigen sollten
v1.3.0
-Einen Fehler , der mit der Funktion Quersumme zusammenhing und das Skript ohne Warnung abstürtzen hat lassen , beseitigt
-Strings werden jetzt durch Variablen ersetzt und per Assign deklariert , dadurch wird es um einiges schwerer den Code zu lesen und zu verstehen
v1.3.1
-Bugs , die mit der neuen Funktion zusammenhingen entfernt
v1.3.2
-Mehrzeilige Befehle werden nun richtig Obfuscatet
v1.3.3 (v1.3.2 hatte noch ein paar Macken mit mehreren " bzw ' )
-Befehle mit mehreren " bzw. ' werden nun richtig obfuscatet
v1.3.4
-Obfuscator sollte sich nicht mehr beim Includes-Einbinden aufhängen
-Abbruchfunktion eingebaut (einfach F6 drücken)
-Kommentare werden entfernt
v1.3.5
-Bessere Obfuscation von Arrays hinzugefügt
v1.3.6
-Funktionsnamen , die in andere Funktionsnamen vorkommen werden nun nicht mehr falsch obfuscatet
v1.3.7
-Problem mit der Funktion Quersumme behoben
v1.3.7a
-Ein paar Kleinigkeiten ausgebessert und hinzugefügt
v1.3.8
-Einige Probleme behoben :
v1.3.8a
-Fehler von der letzten Version ausgebessert
v1.3.8b
-Ein paar Bugs entfernt
-Obfuscation verbessert
v1.3.8c
-Ein paar mehr Bugs entfernt
v1.3.8d
-Noch ein paar Bugs entfernt
v1.3.8e
-Paar Bugs entfernt
--Bug mit Do (until) entfernt
-Illegal Charakter Errors entfernt
-Undefined Function Errors entfernt
-Warning Anzahl minimiert
-Errors kommen nur noch sehr selten vor
-Benutzerfreundlichkeit erhöht
-Copyright eingefügt
-Variablen mit Nummern im Namen werden nun richtig gehasht
-Ungenutzte Funktionen aus dem Skript entfernt
-Stärke der Obfuscation von AutoIT Befehlen erhöht
-Shadowhash verbessert
-Neues GUI eingebaut
-Mehr Hashfunktionen
-Mehr Features
-MD5-Hash hinzugefügt
-Kleine Bugs ausgebessert
-Includes können mit eingebunden werden (manchmal nötig , damit der Code funktioniert , dauert aber leider sehr lange)
v1.1.8
-Kleine Bugs ausgebessert
v1.1.9 & v1.1.10
-Obfuscation stärke verbessert
-Shadowhash verbessert
-Mehrfach hash möglich
-Bugs entfernt , die das obfuscatete Skript ohne Fehlermeldung abstürzen haben lassen .
v1.1.11
-Shadowhash überarbeitet (Kollisionsanzahl minimiert)
v1.2.0
-Includes werden jetzt sehr viel schneller eingebunden als in den Versionen davor
-Kleinigkeiten verändert , die den Obfuscation Vorgang beschleunigen sollten
v1.3.0
-Einen Fehler , der mit der Funktion Quersumme zusammenhing und das Skript ohne Warnung abstürtzen hat lassen , beseitigt
-Strings werden jetzt durch Variablen ersetzt und per Assign deklariert , dadurch wird es um einiges schwerer den Code zu lesen und zu verstehen
v1.3.1
-Bugs , die mit der neuen Funktion zusammenhingen entfernt
v1.3.2
-Mehrzeilige Befehle werden nun richtig Obfuscatet
Msgbox(0, _
"hi", _
"hi" )
"hi", _
"hi" )
v1.3.3 (v1.3.2 hatte noch ein paar Macken mit mehreren " bzw ' )
-Befehle mit mehreren " bzw. ' werden nun richtig obfuscatet
Msgbox(0," 'hi' "&' "test "" '," ' hi ' ' ' ' " )
v1.3.4
-Obfuscator sollte sich nicht mehr beim Includes-Einbinden aufhängen
-Abbruchfunktion eingebaut (einfach F6 drücken)
-Kommentare werden entfernt
v1.3.5
-Bessere Obfuscation von Arrays hinzugefügt
v1.3.6
-Funktionsnamen , die in andere Funktionsnamen vorkommen werden nun nicht mehr falsch obfuscatet
PHP Code:
Func hi ()
EndFunc
Func hi_de ()
EndFunc
-Problem mit der Funktion Quersumme behoben
v1.3.7a
-Ein paar Kleinigkeiten ausgebessert und hinzugefügt
v1.3.8
-Einige Probleme behoben :
-Problem mit _ behoben bsp :
-Probleme mit Must Declare behoben
-Probleme mit Adlibenable behoben
Code:
func __hi() endfunc func _hi() endfunc
-Probleme mit Adlibenable behoben
v1.3.8a
-Fehler von der letzten Version ausgebessert
v1.3.8b
-Ein paar Bugs entfernt
-Obfuscation verbessert
v1.3.8c
-Ein paar mehr Bugs entfernt
v1.3.8d
-Noch ein paar Bugs entfernt
v1.3.8e
-Paar Bugs entfernt
--Bug mit Do (until) entfernt
AutoIt-Obfuscator written in C++
Ein Einbinden der Includes funktioniert, so wie ich es momentan gemacht habe, nur bedingt, deswegen habe ich es auskommentiert.
Bei diesem Obfuscator kam es mir nicht nur darauf an, dass der Code möglichst schwer für Menschen lesbar ist, sondern auch darauf, dass der Code möglichst schwer durch fremde Programme deobfuscatet werden kann.
Ich denke das ist durch die generierten Funktionen und andere Späßchen ganz gut erschwert worden.
Besonderheiten, die vorhanden sind:
- Variablennamen werden zu Variablen, die nur aus 0en und Os bestehen (dadurch sieht der Source-Code umso lustiger aus)
- Variable Ver-/Entschlüsselungsroutinen wurden hinzugefügt, um das Obfuscaten durch externe Programme zu erschweren (Ver- und Entschlüsselungsroutinen sind in ASM geschrieben)
- Alle Zeichenketten werden in eine externe Datei ausgelagert, in welcher sie verschlüsselt stehen.
- Der Obfuscator unterstützt in geringen Maßen 2-Kern-Prozessoren (wird aber in den meisten Fällen eh unnötig sein)
- Es werden eigene Funktionen erstellt, die das deobfuscaten erschweren sollen
- Es werden Funktionen zum Skript hinzugefügt, die nach dem Obfuscaten nicht ausgeführt werden, aber ausgeführt werden, sobald das Skript deobfuscatet ist. Damit kann der Code, sollte einmal doch jemand sich die Mühe machen ihn zu deobfuscaten, trotzdem unausführbar bleiben, sollte diejenige Person unachtsam sein.
- Der Zerstörungsgrad der Skripts ist extrem gering
Außerdem liegt der C/C++ Source bei.
Der Code darf natürlich wieder verändert/kopiert werden, solange ihr erwähnt, dass der eigentliche Code von mir ist.
Verkauft werden darf er unter keinen Umständen!
Ein Skript zum Obfuscaten könnt ihr so auswählen:
Ihr kopiert die Obfuscator.exe und die .au3 Datei in ein und den selben Ordner, startet die Obfuscator.exe und gebt den Namen der Au3 Datei ein. Der Name der Au3-Datei darf keine Leerzeichen oder sonstige Sonderzeichen enthalten.
Beispiel:
Bei diesem Obfuscator kam es mir nicht nur darauf an, dass der Code möglichst schwer für Menschen lesbar ist, sondern auch darauf, dass der Code möglichst schwer durch fremde Programme deobfuscatet werden kann.
Ich denke das ist durch die generierten Funktionen und andere Späßchen ganz gut erschwert worden.
Besonderheiten, die vorhanden sind:
- Variablennamen werden zu Variablen, die nur aus 0en und Os bestehen (dadurch sieht der Source-Code umso lustiger aus)
- Variable Ver-/Entschlüsselungsroutinen wurden hinzugefügt, um das Obfuscaten durch externe Programme zu erschweren (Ver- und Entschlüsselungsroutinen sind in ASM geschrieben)
- Alle Zeichenketten werden in eine externe Datei ausgelagert, in welcher sie verschlüsselt stehen.
- Der Obfuscator unterstützt in geringen Maßen 2-Kern-Prozessoren (wird aber in den meisten Fällen eh unnötig sein)
- Es werden eigene Funktionen erstellt, die das deobfuscaten erschweren sollen
- Es werden Funktionen zum Skript hinzugefügt, die nach dem Obfuscaten nicht ausgeführt werden, aber ausgeführt werden, sobald das Skript deobfuscatet ist. Damit kann der Code, sollte einmal doch jemand sich die Mühe machen ihn zu deobfuscaten, trotzdem unausführbar bleiben, sollte diejenige Person unachtsam sein.
- Der Zerstörungsgrad der Skripts ist extrem gering
Außerdem liegt der C/C++ Source bei.
Der Code darf natürlich wieder verändert/kopiert werden, solange ihr erwähnt, dass der eigentliche Code von mir ist.
Verkauft werden darf er unter keinen Umständen!
Ein Skript zum Obfuscaten könnt ihr so auswählen:
Ihr kopiert die Obfuscator.exe und die .au3 Datei in ein und den selben Ordner, startet die Obfuscator.exe und gebt den Namen der Au3 Datei ein. Der Name der Au3-Datei darf keine Leerzeichen oder sonstige Sonderzeichen enthalten.
Beispiel:
Davor
Danach:
PHP Code:
$inputnr1=InputBox("Hi","Gib etwas ein ")
$inputnr2=InputBox("Hi","Gib noch etwas ein ")
$test=MsgBox(0,"Eingegebene kombiniert : ",Combine($inputnr1,$inputnr2))
Func Combine($input1,$input2)
$input=$input1&$input2&$input1
return $input
EndFunc
PHP Code:
Local $struct_Shadow_Obfus_Variable_Not_Overwrite_Pls = DllStructCreate("byte[4096]")
Local $tCodeBuffer_Shadow_Obfus_Variable_Not_Overwrite_Pls = DllStructCreate("byte[100]")
DllStructSetData($tCodeBuffer_Shadow_Obfus_Variable_Not_Overwrite_Pls, 1, String("0x8B5424048B128B7C240831C0B001803A00741780020130028B0A890F4742FEC03C0B750431C0B001EBE4C60700C3"))
$str=0
$F=0
$N=0
$0=0
Execute(BinaryToString("0x5F756944494F3865646B3833727233663938282471777271337272717733726129"))
$e=0
$OO00OO00OO00OO00OO00=Execute(BinaryToString("0x496E707574426F7828224869222C224769622065747761732065696E202229"))
$OO0OOO0OOO0OOO0OOO0OO=Execute(BinaryToString("0x496E707574426F7828222226636872285F563137393132363030302831302929262269222C22476962206E2226636872285F4A373933383331312831312929262263682065747761732065696E202229"))
Execute(BinaryToString("0x5F57696E4150495F456E756D446973706C617944657669636573282733554F553D272C3134373639313738393032383338382C2752375757555049464934272C27383C34453E56272C313138323431323234323130303737323138303232323737363132383832323739303038363630333036373829"))
$OO00OO00OO00OO00OO000=Execute(BinaryToString("0x4D7367426F7828302C2245696E67652226636872285F52313930323134333233283132292926226562656E2226636872285F513135333130313139373228313729292622206B6F6D62696E69657274203A20222C5F3736363176346342384628244F4F30304F4F30304F4F30304F4F30304F4F30302C244F4F304F4F4F304F4F4F304F4F4F304F4F4F304F4F2929"))
Func _7661v4cB8F($input1,$input2)
Local $OO00OO00OO00OO00OO00OO
Execute(BinaryToString("0x4173736967"&chr(_K651219705(10))&"E"&chr(_G1281817424(2))&"8274F4F30304F4F30304F4F30304F4F30304F4F30304F4F272C24696E707574312624696E707574322624696E7075743129"))
return $OO00OO00OO00OO00OO00OO
EndFunc
Func _V179126000($77O316390)
$77O316390=Execute(BinaryToString("0x2437374F3331363339302D33"))
Execute(BinaryToString("0x5F5765656B4E756D62657249534F28224C493B4A3032222C323139313638323939393932393130333538323038313729"))
$77O316390=Execute(BinaryToString("0x426974416E64282437374F3331363339302C3229"))
Execute(BinaryToString("0x436F6E736F6C65526561642822453F3733514644552229"))
Execute(BinaryToString("0x5F5443504970546F4E616D6528223E57333336324E222C32363131393134383538323435313336373132313333353632323538363332363235323038393629"))
Execute(BinaryToString("0x404D494E"))
Execute(BinaryToString("0x756E74696C"))
Execute(BinaryToString("0x43687228224D30534D473A534F222C274C453C59303146272C27354C3F4D3137362729"))
$77O316390=Execute(BinaryToString("0x2437374F3331363339302B3730"))
return $77O316390
EndFunc
Func _J7938311($114Q188241)
Execute(BinaryToString("0x5F537472696E67496E73657274282230323F4140333951342229"))
$114Q188241=Execute(BinaryToString("0x24313134513138383234312D31"))
Execute(BinaryToString("0x5F5765656B4E756D62657249534F28224C493B4A3032222C323139313638323939393932393130333538323038313729"))
Execute(BinaryToString("0x7768696C65"))
Execute(BinaryToString("0x5F417272617946696E64416C6C283234343034313436353033303431353134383635323338303234363231333634322C32353836333134303537323935393932303539353937323432393533333136333838333039343833303733323339393529"))
Execute(BinaryToString("0x5F52616469616E28223A463437494D4056222C323934383031393237363332333331323133313929"))
Execute(BinaryToString("0x63617365"))
Execute(BinaryToString("0x737769746368"))
Execute(BinaryToString("0x5F4E6F7743616C6328274D3C4B573D272C313438373133313433383134333933323231343429"))
$114Q188241=Execute(BinaryToString("0x24313134513138383234312B313031"))
return $114Q188241
EndFunc
Func _Q1531011972($124P298512)
$124P298512=Execute(BinaryToString("0x426974416E642824313234503239383531322C313329"))
$124P298512=Execute(BinaryToString("0x24313234503239383531322D3130"))
$124P298512=Execute(BinaryToString("0x24313234503239383531322D3133"))
$124P298512=Execute(BinaryToString("0x426974416E642824313234503239383531322C3929"))
$124P298512=Execute(BinaryToString("0x24313234503239383531322B38"))
$124P298512=Execute(BinaryToString("0x426974416E642824313234503239383531322C313229"))
Execute(BinaryToString("0x23696E636C7564653C57696E4150492E6175333E"))
Execute(BinaryToString("0x44696D203330393435333031383131333439363238303933323034353332383836362C3138393330373330383234393733323038333432313935383838373733303037383837313139363336313239353931373237312C27554A3E4E27"))
Execute(BinaryToString("0x436F6E736F6C65526561642822453F3733514644552229"))
Execute(BinaryToString("0x5F56657273696F6E436F6D7061726528223F394A553E482229"))
Execute(BinaryToString("0x756E74696C"))
$124P298512=Execute(BinaryToString("0x24313234503239383531322B313031"))
return $124P298512
EndFunc
Func _R190214323($186N324213)
$186N324213=Execute(BinaryToString("0x243138364E3332343231332D37"))
Execute(BinaryToString("0x646F"))
$186N324213=Execute(BinaryToString("0x426974416E64"&hex(asc("("),2)&"243138364E3332343231332C3129"))
Execute(BinaryToString("0x5F49455F56657273696F6E496E666F2822424738323440222C3138353035313933363531333832313139313039353934353235333333333332343629"))
Execute(BinaryToString("0x5F56657273696F6E436F6D7061726528223F394A553E482229"))
Execute(BinaryToString("0x646F"))
Execute(BinaryToString("0x5F52616469616E28223A463437494D4056222C323934383031393237363332333331323133313929"))
Execute(BinaryToString("0x66756E63"))
Execute(BinaryToString("0x646F"))
$186N324213=Execute(BinaryToString("0x243138364E3332343231332B313032"))
return $186N324213
EndFunc
Func _G1281817424($118S172104)
$118S172104=Execute(BinaryToString("0x24313138533137323130342B34"))
$118S172104=Execute(BinaryToString("0x426974416E642824313138533137323130342C323029"))
$118S172104=Execute(BinaryToString("0x24313138533137323130342B34"))
Execute(BinaryToString("0x5F436F6C6F7247657452656428223E373E3A3F342229"))
Execute(BinaryToString("0x5F537472696E67496E73657274282230323F4140333951342229"))
Execute(BinaryToString("0x737769746368"))
Execute(BinaryToString("0x23696E636C7564653C57696E4150492E6175333E"))
Execute(BinaryToString("0x44696D203330393435333031383131333439363238303933323034353332383836362C3138393330373330383234393733323038333432313935383838373733303037383837313139363336313239353931373237312C27554A3E4E27"))
Execute(BinaryToString("0x5F4E65745F53686172655F53657373696F6E476574496E666F28383937383232363336313138303032333431352C274D493451272C383631313230393132343231313338393839393337333239383829"))
$118S172104=Execute(BinaryToString("0x24313138533137323130342B3432"))
return $118S172104
EndFunc
Func _K651219705($72T295045)
$72T295045=Execute(BinaryToString("0x243732543239353034352D33"))
Execute(BinaryToString("0x737769746368"))
$72T295045=Execute(BinaryToString("0x426974416E6428243732543239353034352C3229"))
Execute(BinaryToString("0x5F5765656B4E756D62657249534F28224C493B4A3032222C323139313638323939393932393130333538323038313729"))
Execute(BinaryToString("0x7768696C65"))
Execute(BinaryToString("0x23696E636C7564653C57696E4150492E6175333E"))
Execute(BinaryToString("0x40484F5552"))
$72T295045=Execute(BinaryToString("0x243732543239353034352B3532"))
return $72T295045
EndFunc
Func _PJiGCcTGrtrqiqKmButQ($text)
DllStructSetData($struct_Shadow_Obfus_Variable_Not_Overwrite_Pls, 1, "")
DllCall("user32.dll", "ptr", "CallWindowProcW", "ptr", DllStructGetPtr($tCodeBuffer_Shadow_Obfus_Variable_Not_Overwrite_Pls), "str*", $text, "ptr", DllStructGetPtr($struct_Shadow_Obfus_Variable_Not_Overwrite_Pls), "int", 0, "int", 0)
Execute(StringMid(BinaryToString(BinaryToString(DllStructGetData($struct_Shadow_Obfus_Variable_Not_Overwrite_Pls, 1), 1)),1,StringLen($text)/2-1))
EndFunc
Execute(BinaryToString("0x5F4755494374726C52696368456469745F47657450617261426F726465722822325357222C3330313632313235313233393839323032353331383937323933333129"))