Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 13:25

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Release] Shadow's General Deobfuscator

Discussion on [Release] Shadow's General Deobfuscator within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
[Release] Shadow's General Deobfuscator

I just always wanted to start that project.
There are so many public and unpublic obfuscators in the internet and most of them are really easy to crack even for programs.
There are also some deobfuscators but most of them are only working for one special obfuscator and that is the reason why I decided to make a deobfuscator which may work for the most obfuscators.

The reason why this deobfuscator may work for many obfuscators is the way it parsers the autoit file. This deobfuscator is a selfwritten autoit-interpreter. So it interprets the script like autoit, line for line and finds out which variables with static content can be replaced and which not.

It is actually just an alpha version but I am still releasing it because my time is at the moment very limited and I do not want that this project disappears in the deep of my computer.

The complete deobfuscator is written in C/C++ and in the attached file you will be able to find the source-code too.
At some points I made some strange things e.g. sorting an integer array instead of an string array through I have to process with the string array further.
Most of these things I have done are for performance. So now my script is able to parse and interpret an autoit script with 11.000 lines in around 10-30 sec.

That sounds really fast and yes it is fast but there is a little problem.
Let us use an example to explain the problem:

Obfuscated-Code:
PHP Code:
$var=10
$var2
=Execute("$var+10")
$var3=Execute("$var2+10"
My program now interprets on the following way:

Line 1: Nothing to do
Line 2: Interpret Execute(...
Line 3: Interpret Execute(...

New Code:
PHP Code:
$var=10
$var2
=$var+10
$var3
=$var2+10 
Because if you are Executing "Execute(..." you only have to remove the ".

Now the second walk through starts.
My deobfuscator now tries to find functions which can be replaced by their code.

In our case deobfuscator did not find anything.

So walk through 3 starts. In this walk through deobfuscator tries to remove variables which can be replaced:

PHP Code:
$var=10
$var2
=$var+10
$var3
=$var2+10 
Will be converted to:

PHP Code:
$var=10
$var2
=10+10
$var3
=$var2+10 
Because $var2 is a term and have to be interpreted, $var3=$var2+10 will in this pass not be replaced.

Now we start again at pass #1 where we interpret the autoit-code and our code then gets to:

PHP Code:
$var=10
$var2
=20
$var3
=$var2+10 
Now we have to go through all steps again and replace line 3 with $var3=20+10.

Now we have to interpret again and then we get:
PHP Code:
$var=10
$var2
=20
$var3
=30 
This is why my deobfuscator needs some more passes than 3.
Because it have to solve the problems above by interpreting and replacing again and again. I also added some little things which will make it possible to just do fewer interprets and replaces but the problem consists.

So now my deobfuscator needs around 10 passes to deobfuscate most obfuscators but this is bad for performance. We remember 1 pass through 11.000 lines lasts around 10-20 seconds. If we now have to walk through around 10 times then we are getting around 100-300 seconds for deobfuscating a script which is around 11.000 lines long.

In some future updates (when I have got more time) I will update this deobfuscator and solve this problem.

At the moment this deobfuscator is not very good in deobfuscating because it is also not able to interpret selfmade functions. But this will all be added, for now deobfuscator may be only useful for researching and deobfuscating little and easy scripts.

If you are having any obfuscated scripts which do not use my obfuscators nor the autoit obfuscator, please send me some obfuscated code of them. I need them for analysing and optimizing my script.

Feel free to use the code in parts or full for your own projects or change the source code of deobfuscator. But please if you are going to release your project mention my name and my project.

I compiled this .exe with linux and Wine. I hope it will work for Windows. :/
If not then you have to recompile the source by yourself. I used GNU GCC Compiler.

Changelog (German):
Attached Files
File Type: zip GeneralDeobfuscator v0.1.1.zip (37.5 KB, 721 views)
Shadow992 is offline  
Thanks
9 Users
Old 04/20/2013, 14:51   #2
 
elite*gold: 0
Join Date: Apr 2013
Posts: 1
Received Thanks: 0
Попробуем)

Не работает(
Weinstein is offline  
Old 04/20/2013, 16:25   #3
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by Weinstein View Post
Попробуем)

Не работает(
Пожалуйста, напишите английский или просто использовать Google-переводчик.
Я надеюсь, вы поняли нити.
Я писал, что это Deobfuscator в настоящий момент не хорошо.
На данный момент вы можете использовать эту Deobfuscator только для тестирования и исследования.
(переводчика Google)

---------------------------------------------

Please write englisch or just use Google-Translator.
I hope you understood the thread.
I wrote that this deobfuscator is at the moment not good.
At the moment you can use this deobfuscator just for testing and researching.
Shadow992 is offline  
Old 04/20/2013, 20:28   #4
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Du hast n groben Fehler. Wenn du den behebst, kannst du sicherlich noch einiges mehr an Performance rausholen.
Beispiel:
Code:
void Parser::AddCode(std::string Code)
Übergebe den string als const Referenz.
Code:
void Parser::AddCode(const std::string& Code)
Damit sparst du das erneute anfordern von Speicher, das Kopieren des Buffers etc. Wenn strings oft als Parameter übergeben werden, kann das schon ins Gewicht fallen. Beim Rückgabewert gibts das Problem aufgrund von RVO meist ja nicht.
Schlüsselbein is offline  
Thanks
1 User
Old 04/21/2013, 08:49   #5


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Ist bei mir gleich mal gecrasht
Requi is offline  
Old 04/21/2013, 15:10   #6
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by Requι View Post
Ist bei mir gleich mal gecrasht
Das skript dazu wäre interessant. ;-)
Es ist auch noch nicht wirklich ausgereift wie gesagt hab ich das erstmal nur releast damit das nicht auf meine PC verschimmelt, da man mit etwas Arbeit sicherlich etwas gutes draus machen kann.
Da kann ein Absturz schin mal passieren. ;-)
Shadow992 is offline  
Old 04/21/2013, 16:02   #7
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Bei mir funktionierts ueberall einwandfrei jedoch ist mein script zum glueck trotzdem noch unlesbar
YatoDev is offline  
Old 04/21/2013, 17:02   #8
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by »FlutterShy™ View Post
Bei mir funktionierts ueberall einwandfrei jedoch ist mein script zum glueck trotzdem noch unlesbar
Jo das ist wohl momentan bei 80% der Skripts so.
Das simple Variablen ersetzen und das Durchführen von einfachen Bit-Manipulationen und das Berechnen von verschiedenen Term-Werten reicht nur selten aus um das Skript wirklich lesbar zu machen.

In Planung sind aber auch so Sachen wie einen intelligenten Variablenumbenenner (dieser soll das Lesen des Codes enorm erleichtern, konkrete Vorstellungen dazu sind vorhanden) und einen Funktionenumbenenner (wobei ich hier ehrlich gesagt noch nicht genau weiß wie ich das angehen soll).

Wie gesagt, zum Leid aller AutoItler, will ich diesen Deobfuscator, wenn ich einmal wieder mehr Zeit habe, so perfekt wie möglich machen.

Da steckt aber noch enorm viel Arbeit drin von daher wird das wohl nicht morgen oder in ner Woche passieren.

Edit:
Darf ich wissen welchen Obfuscator du verwendest?
Shadow992 is offline  
Old 04/21/2013, 18:35   #9
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
also ich benutze eigentlich hauptsächlich deinen obfuscator und fände es auch gut wenn du den nicht deobfuscaten lässt oder wie auch immer ist mir recht egal wie sowas funktioniert .

der hier wurde 4/2/2013 geupdatet und war bis vor kurzem auch irgendwie nicht decompilierbar , bei EXE2Aut kahm No PE file oder sowas aber jetzt wird der code wieder recht lesbar ausgegeben .

Ich wollte auch mal versuchen deinen in autoit geschriebenen open source obfuscator mal zu erweitern bin aber noch nicht weit gekommen ^^

der autoit obfuscator wird nicht deobfuscated also find ich den besser um meine scripts zu schützen allerdings wird das
Code:
ShellExecute("www.elitepvpers.com")
zu
Code:
ShellExecute( $fna8fwne948mvw84tw8 )
und die variable ist nicht declariert also muss man diese noch im script vorher bestimmen
aber das ist ja hier eigentlich nicht das thema
YatoDev is offline  
Thanks
1 User
Old 04/21/2013, 20:53   #10


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Quote:
Originally Posted by Shadow992 View Post
Das skript dazu wäre interessant. ;-)
Es ist auch noch nicht wirklich ausgereift wie gesagt hab ich das erstmal nur releast damit das nicht auf meine PC verschimmelt, da man mit etwas Arbeit sicherlich etwas gutes draus machen kann.
Da kann ein Absturz schin mal passieren. ;-)
Dann schau ein decompiltes Script von FlutterShy an.
Ich schaffe es nicht zu deobfuscaten
Requi is offline  
Old 04/21/2013, 22:11   #11
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
Quote:
Originally Posted by Requι View Post
Dann schau ein decompiltes Script von FlutterShy an.
Ich schaffe es nicht zu deobfuscaten
Deobfuscaten ist doch glaube ich auch das glfalsche wort da das bis jetzt noch garnicht wirklich funktiiniert . Ich habe selber noch nicht aisgetesten damit . habe nur den von shadow decompiles lassen .

@Shadow schau mal in meine statistiken rein und suche nach All releases BETA oder sowas muss auf der ersten seite sein . das ist wiegesagt der neue obfuscator den man sich zu scite dazu laden kann
YatoDev is offline  
Thanks
1 User
Old 04/17/2017, 21:54   #12
 
elite*gold: 0
Join Date: Feb 2014
Posts: 132
Received Thanks: 31
Stopped working on 9/10
lenclstr746 is offline  
Old 04/18/2017, 11:10   #13
dotCom
 
Devsome's Avatar
 
elite*gold: 9842
The Black Market: 107/0/0
Join Date: Mar 2009
Posts: 16,866
Received Thanks: 4,685
Quote:
Originally Posted by lenclstr746 View Post
Stopped working on 9/10
Have you tried turning it off and on again.
Thread is from 2013, maybe not working.
Devsome is offline  
Reply

Tags
autoit, deobfuscator


Similar Threads Similar Threads
[Release] AutoIt3 Deobfuscator
04/18/2017 - Coding Releases - 25 Replies
Projekt eingestellt. Hallo Elitepvpers, ich release hier mal den Deobfuscator (geschrieben in VB.net) für Shadows Obfuscator (HIER zu finden; gute Arbeit übrigens ;) ). Mein Deobfuscator sollte beide Versionen seines Obfuscators (AutoIt und C++) wieder deobfuscaten können. Und bevor jetzt hier welche ankommen und meinen sie müssten Sachen loslassen wie "bla, voll scheiße, jetzt ist das voll unsicher, bla" meine ich, dass Leute, die die Source wirklich haben wollen, sie auch manuell...
[B].Net Deobfuscator-Service[S]e*Gold/PSC
02/20/2013 - elite*gold Trading - 2 Replies
Ich biete hier meinen Service an eure exen oder die exen von jemanden zu Deobfuscaten(fals ihr nicht wießt was es ist eine PN an mich:)) Was bringt euch das? Ihr wollt nicht teuere Sourcen kaufen, sondern einfach nur die exe auslesen,jedoch ist diese exe gesichert und ihr könnt sie nicht lesen,keine Problem ich Deobfuscate euch diese exe:) Ausser dem kann ich euch auch diese exe als Porjektmape zurück schicken das hießt mit Source in C#, jedoch ist das nicht ganz billige ,denn ihr...
[Release]PSF VIP Shadow Rev.4
12/14/2009 - Soldier Front Hacks, Bots, Cheats & Exploits - 19 Replies
E2 po ung VIp ni Sticklebackz!! Working po i2 ang problema nid po i2 ng username and pass!! Sa mga magagaling po mag crack paki crack naman po.. Share nyo nalng po d2 pag na crack niyo na tnx!!! Sa mga mag hahanap ng VS wala po 2 virus. Kung ayaw niyo maniwala wak nyo nalng po DL ok?!! DL Link!!>>PSF VIP Shad0w Rev4.rar
[RELEASE] Shadow Pk
11/29/2008 - EO PServer Hosting - 6 Replies
ShadowPK My eudemon Server Website - 5.88.194.1 (must be on my hamachi) How to connect HAMACHI NETWORKS :



All times are GMT +1. The time now is 13:26.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.