|
You last visited: Today at 19:50
Advertisement
Achat's tiny Obfuscator
Discussion on Achat's tiny Obfuscator within the AutoIt forum part of the Coders Den category.
05/04/2013, 20:13
|
#1
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,404
|
Achat's tiny Obfuscator
Hi epvp!
Here I release my tiny Obfuscator:
Code:
Code:
Local $sScript = FileOpenDialog('Choose AutoIt Script to obfuscate', @ScriptDir, '(*.au3)', 1), $sSource = FileRead($sScript), $hTimer = TimerInit(), $aVariables = StringRegExp($sSource, '\$\w+', 3), $aFunctions = StringRegExp($sSource, '(?i)Func (\w+)\(', 3)
For $i = 0 To UBound($aVariables) + UBound($aFunctions) - 1
If $i < UBound($aVariables) Then $sSource = StringRegExpReplace($sSource, '(\' & $aVariables[$i] & ')([^\w])', '$' &Chr(Random(65,90,1))& StringTrimLeft(StringToBinary($i),2) & '\2')
If $i < UBound($aFunctions) Then $sSource = StringRegExpReplace($sSource, '(' & $aFunctions[$i] & ')([^\w])', Chr(Random(65,90,1)) & StringTrimLeft(StringToBinary($i),2) & '\2')
Next
FileWrite(FileOpen(StringTrimRight($sScript, 4) & '.o.au3',2), $sSource)
MsgBox(0x40040, 'AtO', 'Obfuscation successful.' & @CRLF & UBound($aVariables) & ' Variables obfuscated.' & @CRLF & UBound($aFunctions) & ' Functions obfuscated.' & @CRLF & 'Duration: ' & Round(TimerDiff($hTimer)) & 'ms')
Features:- Rename all functions irreversible
- Rename all variables irreversible
How to use: - Select an AutoIt Script
- wait a sec
- Now you'll find a scriptname.o.au3 file in your script's directory, in which all variable & function names are replaced by some random names. That makes it impossible to get the original variable/function names back.
Note: #include,Assign,Eval are not supported and will lead to errors!
Kind Regards
|
|
|
05/04/2013, 20:55
|
#2
|
elite*gold: 0
Join Date: Mar 2012
Posts: 75
Received Thanks: 225
|
i didnt under stand Give a video tut
|
|
|
05/04/2013, 20:58
|
#3
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,404
|
of course
Kind Regards
|
|
|
05/05/2013, 00:43
|
#4
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
Ja schonmal gut aber.willst du den noch weiter verbessern oder bleibt bei dieser funktion ? Jeder obfuscator benennt vars und funcs um deswegen hab ich halt keine verwendung fuer deinen aber trotzdem sehr gute arbeit
|
|
|
05/05/2013, 01:57
|
#5
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,404
|
[04.05.2013 23:39:51] S!r Achat: Alles, was über das Umbennenen von Variablen und Funktionsnamen hinausgeht, gefährdet die fehlerfreie Ausführung des Scripts, verlangsamt es auf jeden Fall!
Und es ist mit Aufwand sowieso wieder umzukehren.
[04.05.2013 23:44:10] S!r Achat: @error und @extended auslesen
[04.05.2013 23:44:15] S!r Achat: könnte Fehlschlagen
evtl. kommt noch was dazu^^
MfG
|
|
|
05/05/2013, 13:08
|
#6
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
Eine schoene funktion waere wenn das script alle strings die z.b. so aussehen : $test = "hallo" irgendwie "verschluesselt"
|
|
|
05/05/2013, 13:16
|
#7
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,404
|
Quote:
Originally Posted by »FlutterShy™
Eine schoene funktion waere wenn das script alle strings die z.b. so aussehen : $test = "hallo" irgendwie "verschluesselt"
|
Bringt dir nichts, da der String ja im Endeffekt wieder ausgegeben werden muss. Mit Aufwand kannst du das wieder "entschlüsseln"
Es macht das ganze nur langsamer und fehleranfälliger.
Am besten sensible Daten gar nicht erst im Skript speichern (Adressen etc.).
Oder noch besser: Gar nicht erst releasen -> keiner kann es leechen.
Quote:
Originally Posted by Achat
[04.05.2013 23:39:51] S!r Achat: Alles, was über das Umbennenen von Variablen und Funktionsnamen hinausgeht, gefährdet die fehlerfreie Ausführung des Scripts, verlangsamt es auf jeden Fall!
Und es ist mit Aufwand sowieso wieder umzukehren.
|
und btw
Quote:
Originally Posted by Achat
Here I release my tiny Obfuscator:
|
Dann wäre es kein 8-Zeiler mehr.
MfG
|
|
|
05/05/2013, 13:26
|
#8
|
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
|
Jo aber trotzdem . naja ich brauch autoit eh nicht mehr so oft
|
|
|
05/05/2013, 15:45
|
#9
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,876
|
Quote:
Originally Posted by Achat
Bringt dir nichts, da der String ja im Endeffekt wieder ausgegeben werden muss. Mit Aufwand kannst du das wieder "entschlüsseln"
Es macht das ganze nur langsamer und fehleranfälliger.
Am besten sensible Daten gar nicht erst im Skript speichern (Adressen etc.).
Oder noch besser: Gar nicht erst releasen -> keiner kann es leechen.
und btw
Dann wäre es kein 8-Zeiler mehr.
MfG
|
Noch nicht getestet aber werde ich definitiv noch tun :-D
Zu deiner Aussage, natürlich ist das Umkehrbar aber du musstfolgende Sachen im hinterkopf behalten:
1. Deobfuscaten per Hand:
Der Source-Code wird weiestgehend analysiert und die Stelle wird gesucht an der die sensiblen Daten stehen könnten. Hier ist es wichtig strings usw. zu verschlüsseln, damit es nicht einfach ist diese Stelle zu finden.
2. Per programm:
Hier muss man es dem programm so schwer wie moeglich machen also bringen zusätzliche masnahmen schon etwas.
Edit:
Wenn du nur auch RegEx setzt hast du ein Problem, nämlich folgendes:
Code:
$text&="Start bot first"
Func start()
endfunc
In den Strings würde "Start" jetzt auch umbenannt werden. In diesem Fall ist das nur ein Schönheitsfehler, aber was ist, wenn man einen kleinen Interpreten selbst schreiben möchte?
Code:
if($string="start") then
start()
endif
func start()
endfunc
Sicher das Ganze mag nicht oft passieren und dennoch gibt es dort Probleme.
|
|
|
06/06/2013, 12:48
|
#10
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,404
|
Quote:
Originally Posted by Shadow992
In den Strings würde "Start" jetzt auch umbenannt werden. In diesem Fall ist das nur ein Schönheitsfehler, aber was ist, wenn man einen kleinen Interpreten selbst schreiben möchte?
|
Strings müssen zuerst obfuscated werden.
Ich habe schon eine eigene Verschlüsselungsfunktion für Strings, diese würde ich aber ungern in .au3 weitergeben.
Vielleicht lasse ich Strings dann auf einem Server entschlüsseln.
String obfuscation gestaltet sich auch etwas schwierig, wenn " und ' vermischt werden.
Code:
MsgBox(0,"Ein Test",'Nur ein ''Test",''"')
MfG
|
|
|
06/06/2013, 14:56
|
#11
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Quote:
Originally Posted by Achat
Vielleicht lasse ich Strings dann auf einem Server entschlüsseln.
|
Sowas in der Art hab ich früher schonmal gemacht. Kann man vergessen. Das Script wird viel zu langsam.
|
|
|
06/06/2013, 16:25
|
#12
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,876
|
Quote:
Originally Posted by Achat
Strings müssen zuerst obfuscated werden.
Ich habe schon eine eigene Verschlüsselungsfunktion für Strings, diese würde ich aber ungern in .au3 weitergeben.
Vielleicht lasse ich Strings dann auf einem Server entschlüsseln.
String obfuscation gestaltet sich auch etwas schwierig, wenn " und ' vermischt werden.
Code:
MsgBox(0,"Ein Test",'Nur ein ''Test",''"')
MfG
|
Bei meinen Obfuscatoren klappt es. :P
|
|
|
08/17/2013, 20:17
|
#13
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,404
|
Habe den Code noch um eine Zeile verkürzt
Code:
FileDelete(StringTrimRight($sScript, 4) & '.o.au3')
FileWrite(StringTrimRight($sScript, 4) & '.o.au3', $sSource)
Code:
FileWrite(FileOpen(StringTrimRight($sScript, 4) & '.o.au3',2), $sSource)
€dit:
Quote:
Originally Posted by »FlutterShy™
Ja schonmal gut aber.willst du den noch weiter verbessern oder bleibt bei dieser funktion ? Jeder obfuscator benennt vars und funcs um deswegen hab ich halt keine verwendung fuer deinen aber trotzdem sehr gute arbeit
|
Danke. Habe ihn mittlerweile erweitert.
MfG
|
|
|
Similar Threads
|
[VB.NET] Obfuscator Frage
03/19/2013 - .NET Languages - 4 Replies
Hey,
ich wollte fragen ob ein guter Obfuscator es unmöglich macht den Sourcecode zu sehen, durch Entschlüsselung des Programms.
Danke für eure Antworten! ;)
VG,
TheBeanjy
|
GM-Script Obfuscator
06/28/2012 - Coding Releases - 4 Replies
Hallo,
ich präsentiere hiermit meinen GM-Script Obfuscator.
Normaler-Screenshot:
http://epvpimg.com/0XX4c.png
Screenshot nach Obfuscation:
http://epvpimg.com/dwThg.png
|
[Autoit]Besser als Obfuscator?
03/02/2011 - AutoIt - 2 Replies
Hallo liebe com,
ich erstelle bots über autoit und möchte aber das sie keiner decompilieren kann.
habe mir mal Obfuscator runtergeladen und somit den code verschlüsselt.
aber man konnte es wieder decompilieren...
Nun meine frage:
Kennt ihr eine software die besser ist?
|
All times are GMT +2. The time now is 19:50.
|
|