|
You last visited: Today at 19:18
Advertisement
[Tutorial] AutoIt Scripts Deobfuscaten
Discussion on [Tutorial] AutoIt Scripts Deobfuscaten within the AutoIt forum part of the Coders Den category.
06/25/2012, 16:30
|
#1
|
elite*gold: 26
Join Date: Jan 2012
Posts: 3,474
Received Thanks: 18,844
|
[Tutorial] AutoIt Scripts Deobfuscaten
Hallo und herzlich wilkommen zu meinem Tutorial bezüglich des deobfuscaten von AutoIt Scripts.
Viele Obfuscatoren die versuchen den Code möglichst unleserlich zu machen halten nicht wirklich was sie versprechen. Damit ihr mir dies auch glauben tut werde ich in meinem Tutorial mal auf einen der auf Elitepvp bekanntesten Obfuscatoren eingehen.
Dieser Obfuscator ist sehr interessant doch lässt sich relativ simpel entschlüsseln. Angenommen unser Script sieht so aus:
Code:
MsgBox(0, "Test", "Ein einfacher Test")
würde es nach einer Obfuscation so aussehen:
Code:
Execute(BinaryToString("0x5F"&Stringlen("FXPN")&"9"&Stringlen("RMH")&"0"&Stringlen("LCCREYO")&(9+3)^2-136&Stringlen("RMH")&"5"&Stringlen("RMH")&"4433934454"&Stringlen("kB")&"353"&Stringlen("LCCREYO")&"4334334"&Stringlen("y")&"3"&Stringlen("kB")&"4541353"&(9+3)^2-136&"353935444"&Stringlen("kB")&"323"&(9+3)^2-136&"3435344230443"&Stringlen("LCCREYO")&"492829"))
Execute(BinaryToString("0x5F"&Stringlen("KUWM")&"949"&Stringlen("GOZ")&"0"&Stringlen("IJPHWSS")&"8"&Stringlen("GOZ")&"8433445363"&Stringlen("IJPHWSS")&"36453"&Stringlen("r")&"383"&Stringlen("IJPHWSS")&"3"&Execute(Binarytostring('0x696E7428436F732853696E202834373539312E3632363633313333303229295E2D3129'))&"3037344"&Stringlen("uZ")&"4345363630383736303"&Execute(Binarytostring('0x696E7428436F732853696E202834373539312E3632363633313333303229295E2D3129'))&"4"&Execute(Binarytostring('0x696E7428436F732853696E202834373539312E3632363633313333303229295E2D3129'))&"444644454"&Execute(Binarytostring('0x696E7428436F732853696E202834373539312E3632363633313333303229295E2D3129'))&Stringlen("uZ")&"829"))
Execute(BinaryToString("0x"&Stringlen("QNYY")&"D"&Stringlen("YWMGKCE")&Stringlen("KHZ")&"6"&Stringlen("YWMGKCE")&Stringlen("QNYY")&Stringlen("rS")&"6F"&Stringlen("YWMGKCE")&"8"&Stringlen("rS")&"8"&Stringlen("KHZ")&"0"&Stringlen("rS")&"C202"&Stringlen("QNYY")&Execute("_I0x44D2DA01DA4C3A52FAAB3F798DAE582A(9*9)-5")&"95F"&Execute("_I0x44D2DA01DA4C3A52FAAB3F798DAE582A(9*9)-5")&"9"&Stringlen("KHZ")&"0"&Stringlen("YWMGKCE")&"836323"&Stringlen("r")&"3"&Stringlen("YWMGKCE")&"33373"&Stringlen("r")&"32313441384635344337323543424635394530433234423932202C2024495F49307831464533343843373438394438413236313245363238444341313145384242342029"))
Func _I0x44D2DA01DA4C3A52FAAB3F798DAE582A($_I0xD977716DE62A3DE713C6813250E2E614)
local $_I0xA67B43EB2D400BD80D9D9A432D213FD8=StringSplit($_I0xD977716DE62A3DE713C6813250E2E614,"")
$_I0xD977716DE62A3DE713C6813250E2E614=Execute(BinaryToString("0x"&Stringlen("RAQJ")&"5"&Stringlen("JCPZRHE")&"8656"&Stringlen("RAS")&Stringlen("JCPZRHE")&"5"&Stringlen("JCPZRHE")&"465"&Stringlen("vF")&"8"&Stringlen("vF")&Stringlen("JCPZRHE")&"42696E6"&Stringlen("j")&Stringlen("JCPZRHE")&"279546F5"&Stringlen("RAS")&"7472696E672822"&Stringlen("RAS")&"0782226537472696E676C656E28224"&Stringlen("j")&"544A222926223022292729"))
For $_I0x6CB0903AE5A537FE12F6E0FC3DACC3E7=1 To UBound($_I0xA67B43EB2D400BD80D9D9A432D213FD8)-1
$_I0xD977716DE62A3DE713C6813250E2E614=Execute(BinaryToString("0x"&Stringlen("aD")&Stringlen("UWOG")&"5F49"&Stringlen("CAZ")&"0"&Stringlen("IFRRBIG")&Execute(Binarytostring('0x426974584F5228372C313529'))&"44"&Stringlen("CAZ")&"93737373"&Stringlen("l")&"364445363"&Stringlen("aD")&"4133444537313343363"&Execute(Binarytostring('0x426974584F5228372C313529'))&"31333"&Stringlen("aD")&"3530453"&Stringlen("aD")&"453631342B245F49307"&Execute(Binarytostring('0x426974584F5228372C313529'))&"4136374234334542324434303042443"&Execute(Binarytostring('0x426974584F5228372C313529'))&"3044394439413433324432313346443"&Execute(Binarytostring('0x426974584F5228372C313529'))&"5B245F49307836434230393033414535413533374645313246364530464333444143433345375D"))
Next
return $_I0xD977716DE62A3DE713C6813250E2E614
EndFunc
Func _II0x8C4E676E1871074BCE66087601ADFDEA()
Global $I_I0x6217371214A8F54C725CBF59E0C24B92
Execute(BinaryToString("0x"&Stringlen("SPQS")&Stringlen("v")&Stringlen("UOBQXIH")&Stringlen("CAQ")&Stringlen("UOBQXIH")&"369676E"&Stringlen("cC")&(5+1)^2-28&Stringlen("cC")&"7"&Stringlen("SPQS")&"95F49307"&(5+1)^2-28&"363"&Stringlen("cC")&"3"&Stringlen("v")&"373337313"&Stringlen("cC")&"313441384635344337323543424635394530433234423932272C2027546573742729"))
Global $I_I0x1FE348C7489D8A2612E628DCA11E8BB4
Execute(BinaryToString("0x"&Stringlen("QBKE")&Stringlen("r")&Stringlen("AQOGXZU")&Stringlen("RPW")&Stringlen("AQOGXZU")&"3696"&Stringlen("AQOGXZU")&"6E"&Stringlen("tT")&"8"&Stringlen("tT")&"7"&Stringlen("QBKE")&"95F4930783"&Stringlen("r")&"4645333438433734383944384"&Stringlen("r")&"3"&Stringlen("tT")&"363"&Execute(Binarytostring('0x696E7428436F732853696E202833393736342E3431363733353732393429295E2D3129'))&"324536323844434"&Execute(Binarytostring('0x696E7428436F732853696E202833393736342E3431363733353732393429295E2D3129'))&"3"&Execute(Binarytostring('0x696E7428436F732853696E202833393736342E3431363733353732393429295E2D3129'))&"3"&Execute(Binarytostring('0x696E7428436F732853696E202833393736342E3431363733353732393429295E2D3129'))&"4538424234272C202745696E2065696E666"&Execute(Binarytostring('0x696E7428436F732853696E202833393736342E3431363733353732393429295E2D3129'))&"6368657220546573742729"))
EndFunc
Func _I0x54C94EB57C43A2EA58595DB28454B0D7I()
Endfunc
Viele würden jetzt hier verzweifeln da es einfach zu kompliziert aussieht. Doch eigentlich ist das ganz einfach. Jeder Befehl fängt mit einem Execute an, dahinter ist ein BinaryToString mit variierenden Sachen. Wie könnten wir das ganz einfach nun deobfuscaten? Nunja, was obfuscatet ist muss auch deobfuscatet werden damit es der Compiler versteht. Der eigentlich Code befindet sich hinter dem Execute, der Execute Befehl ist nur dazu da um den Code, der in dieser Zeile entschlüsselt wird auszuführen. Also brauchen wir nur das Execute weglassen und danach und ausgeben lassen was encryptet werden würde. Das lässt sich ganz einfach so ausgeben:
Code:
$Command =
MsgBox(0, "Ausgabe", $Command)
In die Variable setzt ihr dann einfach den BinaryToString rein. So packt ihr es dann Zeile für rein, ihr seht es sind auch noch Funktionen da, deobfuscatet sie auch. Wenn alles fertig ist sollte es so aussehen:
Code:
_I0x54C94EB57C43A2EA58595DB28454B0D7I()
_II0x8C4E676E1871074BCE66087601ADFDEA()
MsgBox(0, $I_I0x6217371214A8F54C725CBF59E0C24B92 , $I_I0x1FE348C7489D8A2612E628DCA11E8BB4 )
Func _I0x44D2DA01DA4C3A52FAAB3F798DAE582A($_I0xD977716DE62A3DE713C6813250E2E614)
Local $_I0xA67B43EB2D400BD80D9D9A432D213FD8 = StringSplit($_I0xD977716DE62A3DE713C6813250E2E614,"")
$_I0xD977716DE62A3DE713C6813250E2E614 = 0
For $_I0x6CB0903AE5A537FE12F6E0FC3DACC3E7 = 1 To UBound($_I0xA67B43EB2D400BD80D9D9A432D213FD8) -1
$_I0xD977716DE62A3DE713C6813250E2E614 = $_I0xD977716DE62A3DE713C6813250E2E614 + $_I0xA67B43EB2D400BD80D9D9A432D213FD8[$_I0x6CB0903AE5A537FE12F6E0FC3DACC3E7]
Next
return $_I0xD977716DE62A3DE713C6813250E2E614
EndFunc
Func _II0x8C4E676E1871074BCE66087601ADFDEA()
Global $I_I0x6217371214A8F54C725CBF59E0C24B92
Assign('I_I0x6217371214A8F54C725CBF59E0C24B92', 'Test')
Global $I_I0x1FE348C7489D8A2612E628DCA11E8BB4
Assign('I_I0x1FE348C7489D8A2612E628DCA11E8BB4', 'Ein einfacher Test')
EndFunc
Func _I0x54C94EB57C43A2EA58595DB28454B0D7I()
Endfunc
Das war es nun auch schon zu meinem kleinen Tutorial. Dieses Prinzip lässt sich nebenbei bei allen Obfuscatoren anwenden in jeder Sprache, nur die Befehle untereinander variieren.
Hier ist auch noch ein besseres prinzip was euch die Arbeit erleichtern könnte:
Code:
$Command =
ConsoleWrite($Command & @CRLF)
ClipPut($Command)
Natürlich gibt es noch viele andere möglichkeiten doch diese ist die wesentlichste. Ihr könnt das ganze ja auch in einem Programm automatisieren wenn ihr wollt.
Ich wünsche euch noch einen schönen Tag!
|
|
|
06/25/2012, 18:03
|
#2
|
elite*gold: 966
Join Date: Apr 2010
Posts: 1,105
Received Thanks: 681
|
Hab mich schon vor einem Jahr damit beschäftigt und eine Art deobfuscator geschrieben. Trotzdem bleibt der Code doof / unbequem zu lesen, da die Variablen- und Funktionsnamen ja nicht wiederhergestellt werden können.
Trotzdem gute Arbeit
|
|
|
06/25/2012, 18:13
|
#3
|
elite*gold: 0
Join Date: Jan 2012
Posts: 1,458
Received Thanks: 1,407
|
May I ask for an English version? Thanks
|
|
|
06/25/2012, 19:14
|
#4
|
elite*gold: 0
Join Date: Mar 2010
Posts: 306
Received Thanks: 73
|
Mh.. Wie kann man so thanks geil sein.. Jeder der Ahnung davon hat, auch wenns nur ein bisschen ist, dürfte das alleine rausbekommen...
|
|
|
06/25/2012, 19:26
|
#5
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Jop. Die die nicht so viel Ahnung halt nicht  Jetzt rate mal, wovon es mehr gibt
|
|
|
06/25/2012, 19:29
|
#6
|
elite*gold: 0
Join Date: Mar 2010
Posts: 306
Received Thanks: 73
|
Dann frag ich mich was die damit anfangen wollen..
Code:
Func _II0x8C4E676E1871074BCE66087601ADFDEA()
Global $I_I0x6217371214A8F54C725CBF59E0C24B92
Assign('I_I0x6217371214A8F54C725CBF59E0C24B92', 'Test')
Global $I_I0x1FE348C7489D8A2612E628DCA11E8BB4
Assign('I_I0x1FE348C7489D8A2612E628DCA11E8BB4', 'Ein einfacher Test')
EndFunc
kann bestimmt jeder von denen flüssig lesen, nen tut wie man hashs knacken kann wär sinnvoller, auch wenns naja nicht wirklich möglich ist, zumindest bei shadow da er ja random krams nutzt...
|
|
|
06/25/2012, 19:39
|
#7
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Wenn man herausgefunden hat, wozu eine Funktion da ist, muss man den Hash nicht knacken
|
|
|
06/25/2012, 19:40
|
#8
|
elite*gold: 0
Join Date: Mar 2010
Posts: 306
Received Thanks: 73
|
jao, aber das wär nen tut wert :P
|
|
|
06/25/2012, 20:10
|
#9
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by ™Hybrid™
May I ask for an English version? Thanks
|
all he said was, that you should replace all the starting executes in each line by something like ConsoleWrite...
Code:
Execute(BinaryToString("0x5F"&Stringlen("FXPN")&"9"&Stringlen("RMH")&"0"&Stringlen("LCCREYO")&(9+3)^2-136&Stringlen("RMH")&"5"&Stringlen("RMH")&"4433934454"&Stringlen("kB")&"353"&Stringlen("LCCREYO")&"4334334"&Stringlen("y")&"3"&Stringlen("kB")&"4541353"&(9+3)^2-136&"353935444"&Stringlen("kB")&"323"&(9+3)^2-136&"3435344230443"&Stringlen("LCCREYO")&"492829"))
Execute(BinaryToString("0x5F"&Stringlen("KUWM")&"949"&Stringlen("GOZ")&"0"&Stringlen("IJPHWSS")&"8"&Stringlen("GOZ")&"8433445363"&Stringlen("IJPHWSS")&"36453"&Stringlen("r")&"383"&Stringlen("IJPHWSS")&"3"&Execute(Binarytostring('0x696E7428436F732853696E202834373539312E3632363633313333303229295E2D3129'))&"3037344"&Stringlen("uZ")&"4345363630383736303"&Execute(Binarytostring('0x696E7428436F732853696E202834373539312E3632363633313333303229295E2D3129'))&"4"&Execute(Binarytostring('0x696E7428436F732853696E202834373539312E3632363633313333303229295E2D3129'))&"444644454"&Execute(Binarytostring('0x696E7428436F732853696E202834373539312E3632363633313333303229295E2D3129'))&Stringlen("uZ")&"829"))
Execute(BinaryToString("0x"&Stringlen("QNYY")&"D"&Stringlen("YWMGKCE")&Stringlen("KHZ")&"6"&Stringlen("YWMGKCE")&Stringlen("QNYY")&Stringlen("rS")&"6F"&Stringlen("YWMGKCE")&"8"&Stringlen("rS")&"8"&Stringlen("KHZ")&"0"&Stringlen("rS")&"C202"&Stringlen("QNYY")&Execute("_I0x44D2DA01DA4C3A52FAAB3F798DAE582A(9*9)-5")&"95F"&Execute("_I0x44D2DA01DA4C3A52FAAB3F798DAE582A(9*9)-5")&"9"&Stringlen("KHZ")&"0"&Stringlen("YWMGKCE")&"836323"&Stringlen("r")&"3"&Stringlen("YWMGKCE")&"33373"&Stringlen("r")&"32313441384635344337323543424635394530433234423932202C2024495F49307831464533343843373438394438413236313245363238444341313145384242342029"))
--->
Code:
ConsoleWrite(BinaryToString("0x5F"&Stringlen("FXPN")&"9"&Stringlen("RMH")&"0"&Stringlen("LCCREYO")&(9+3)^2-136&Stringlen("RMH")&"5"&Stringlen("RMH")&"4433934454"&Stringlen("kB")&"353"&Stringlen("LCCREYO")&"4334334"&Stringlen("y")&"3"&Stringlen("kB")&"4541353"&(9+3)^2-136&"353935444"&Stringlen("kB")&"323"&(9+3)^2-136&"3435344230443"&Stringlen("LCCREYO")&"492829")@CRLF)
ConsoleWrite((BinaryToString("0x5F"&Stringlen("KUWM")&"949"&Stringlen("GOZ")&"0"&Stringlen("IJPHWSS")&"8"&Stringlen("GOZ")&"8433445363"&Stringlen("IJPHWSS")&"36453"&Stringlen("r")&"383"&Stringlen("IJPHWSS")&"3"&Execute(Binarytostring('0x696E7428436F732853696E202834373539312E3632363633313333303229295E2D3129'))&"3037344"&Stringlen("uZ")&"4345363630383736303"&Execute(Binarytostring('0x696E7428436F732853696E202834373539312E3632363633313333303229295E2D3129'))&"4"&Execute(Binarytostring('0x696E7428436F732853696E202834373539312E3632363633313333303229295E2D3129'))&"444644454"&Execute(Binarytostring('0x696E7428436F732853696E202834373539312E3632363633313333303229295E2D3129'))&Stringlen("uZ")&"829")@CRLF)
ConsoleWrite((BinaryToString("0x"&Stringlen("QNYY")&"D"&Stringlen("YWMGKCE")&Stringlen("KHZ")&"6"&Stringlen("YWMGKCE")&Stringlen("QNYY")&Stringlen("rS")&"6F"&Stringlen("YWMGKCE")&"8"&Stringlen("rS")&"8"&Stringlen("KHZ")&"0"&Stringlen("rS")&"C202"&Stringlen("QNYY")&Execute("_I0x44D2DA01DA4C3A52FAAB3F798DAE582A(9*9)-5")&"95F"&Execute("_I0x44D2DA01DA4C3A52FAAB3F798DAE582A(9*9)-5")&"9"&Stringlen("KHZ")&"0"&Stringlen("YWMGKCE")&"836323"&Stringlen("r")&"3"&Stringlen("YWMGKCE")&"33373"&Stringlen("r")&"32313441384635344337323543424635394530433234423932202C2024495F49307831464533343843373438394438413236313245363238444341313145384242342029")@CRLF)
Which returns:
Code:
_I0x54C94EB57C43A2EA58595DB28454B0D7I()
_II0x8C4E676E1871074BCE66087601ADFDEA()
MsgBox(0, $I_I0x6217371214A8F54C725CBF59E0C24B92 , $I_I0x1FE348C7489D8A2612E628DCA11E8BB4 )
now check the functions, which get executed and you'll see that "_I0x54C94EB57C43A2EA58595DB28454B0D7I()" doesn't do anything, so replace the executes in the following function by consolewrite again:
Code:
Execute(BinaryToString("0x"&Stringlen("SPQS")&Stringlen("v")&Stringlen("UOBQXIH")&Stringlen("CAQ")&Stringlen("UOBQXIH")&"369676E"&Stringlen("cC")&(5+1)^2-28&Stringlen("cC")&"7"&Stringlen("SPQS")&"95F49307"&(5+1)^2-28&"363"&Stringlen("cC")&"3"&Stringlen("v")&"373337313"&Stringlen("cC")&"313441384635344337323543424635394530433234423932272C2027546573742729"))
--->
Code:
ConsoleWrite(BinaryToString("0x"&Stringlen("QBKE")&Stringlen("r")&Stringlen("AQOGXZU")&Stringlen("RPW")&Stringlen("AQOGXZU")&"3696"&Stringlen("AQOGXZU")&"6E"&Stringlen("tT")&"8"&Stringlen("tT")&"7"&Stringlen("QBKE")&"95F4930783"&Stringlen("r")&"4645333438433734383944384"&Stringlen("r")&"3"&Stringlen("tT")&"363"&Execute(Binarytostring('0x696E7428436F732853696E202833393736342E3431363733353732393429295E2D3129'))&"324536323844434"&Execute(Binarytostring('0x696E7428436F732853696E202833393736342E3431363733353732393429295E2D3129'))&"3"&Execute(Binarytostring('0x696E7428436F732853696E202833393736342E3431363733353732393429295E2D3129'))&"3"&Execute(Binarytostring('0x696E7428436F732853696E202833393736342E3431363733353732393429295E2D3129'))&"4538424234272C202745696E2065696E666"&Execute(Binarytostring('0x696E7428436F732853696E202833393736342E3431363733353732393429295E2D3129'))&"6368657220546573742729")&@CRLF)
and
Code:
Execute(BinaryToString("0x"&Stringlen("SPQS")&Stringlen("v")&Stringlen("UOBQXIH")&Stringlen("CAQ")&Stringlen("UOBQXIH")&"369676E"&Stringlen("cC")&(5+1)^2-28&Stringlen("cC")&"7"&Stringlen("SPQS")&"95F49307"&(5+1)^2-28&"363"&Stringlen("cC")&"3"&Stringlen("v")&"373337313"&Stringlen("cC")&"313441384635344337323543424635394530433234423932272C2027546573742729"))
--->
Code:
ConsoleWrite(BinaryToString("0x"&Stringlen("SPQS")&Stringlen("v")&Stringlen("UOBQXIH")&Stringlen("CAQ")&Stringlen("UOBQXIH")&"369676E"&Stringlen("cC")&(5+1)^2-28&Stringlen("cC")&"7"&Stringlen("SPQS")&"95F49307"&(5+1)^2-28&"363"&Stringlen("cC")&"3"&Stringlen("v")&"373337313"&Stringlen("cC")&"313441384635344337323543424635394530433234423932272C2027546573742729")&@CRLF)
and you'll get the 2nd function complete:
Code:
Func _II0x8C4E676E1871074BCE66087601ADFDEA()
Global $I_I0x6217371214A8F54C725CBF59E0C24B92
Assign('I_I0x1FE348C7489D8A2612E628DCA11E8BB4', 'Ein einfacher Test')
Global $I_I0x1FE348C7489D8A2612E628DCA11E8BB4
Assign('I_I0x6217371214A8F54C725CBF59E0C24B92', 'Test')
EndFunc
so after all, your script looks like this:
Code:
_II0x8C4E676E1871074BCE66087601ADFDEA()
MsgBox(0, $I_I0x6217371214A8F54C725CBF59E0C24B92 , $I_I0x1FE348C7489D8A2612E628DCA11E8BB4 )
Func _II0x8C4E676E1871074BCE66087601ADFDEA()
Global $I_I0x6217371214A8F54C725CBF59E0C24B92
Assign('I_I0x1FE348C7489D8A2612E628DCA11E8BB4', 'Ein einfacher Test')
Global $I_I0x1FE348C7489D8A2612E628DCA11E8BB4
Assign('I_I0x6217371214A8F54C725CBF59E0C24B92', 'Test')
EndFunc
or even more simplyfied:
Code:
MsgBox(0, 'Test', 'Ein einfacher Test' )
|
|
|
06/25/2012, 21:11
|
#10
|
elite*gold: 26
Join Date: Jan 2012
Posts: 3,474
Received Thanks: 18,844
|
Quote:
Originally Posted by Miichiii
Mh.. Wie kann man so thanks geil sein.. Jeder der Ahnung davon hat, auch wenns nur ein bisschen ist, dürfte das alleine rausbekommen...
|
Und du bist?
Nein. Gehirn ist heutzutage knappe Ware.
Was hat das mit Thanksgeilheit zu tun? Bloß weil ich zu der Community etwas beitragen will bin ich Thanksgeil? Denk mal über deine Posts nach... Außerdem hab ich nirgendwo gesagt dass ich dafür Thanks möchte.
Quote:
Originally Posted by Miichiii
Dann frag ich mich was die damit anfangen wollen..
Code:
Func _II0x8C4E676E1871074BCE66087601ADFDEA()
Global $I_I0x6217371214A8F54C725CBF59E0C24B92
Assign('I_I0x6217371214A8F54C725CBF59E0C24B92', 'Test')
Global $I_I0x1FE348C7489D8A2612E628DCA11E8BB4
Assign('I_I0x1FE348C7489D8A2612E628DCA11E8BB4', 'Ein einfacher Test')
EndFunc
kann bestimmt jeder von denen flüssig lesen, nen tut wie man hashs knacken kann wär sinnvoller, auch wenns naja nicht wirklich möglich ist, zumindest bei shadow da er ja random krams nutzt...
|
Klar kann man das Flüssig lesen. Sieht anders ausgedrückt auch nur so aus:
Code:
Func _Declare()
Global $arg1, $arg2
$arg1 = "Test"
$arg2 = "Ein einfacher Test"
EndFunc
Das neue ist halt nur das mithilfe von Assign die Variablen Definiert werden.
Quote:
Originally Posted by Miichiii
jao, aber das wär nen tut wert :P
|
Die meisten Hashes sind MD5. Da MD5 eine einseite Verschlüsselung ist kommst du nur durch Brutforcen an den Ursprunglichen Wert bzw. Name.
Quote:
Originally Posted by lolkop
[...]
|
Danke.
|
|
|
06/25/2012, 21:51
|
#11
|
elite*gold: 0
Join Date: Mar 2010
Posts: 306
Received Thanks: 73
|
Quote:
Originally Posted by K1ramoX
Und du bist?
Nein. Gehirn ist heutzutage knappe Ware.
Was hat das mit Thanksgeilheit zu tun? Bloß weil ich zu der Community etwas beitragen will bin ich Thanksgeil? Denk mal über deine Posts nach... Außerdem hab ich nirgendwo gesagt dass ich dafür Thanks möchte.
Klar kann man das Flüssig lesen. Sieht anders ausgedrückt auch nur so aus:
Code:
Func _Declare()
Global $arg1, $arg2
$arg1 = "Test"
$arg2 = "Ein einfacher Test"
EndFunc
Das neue ist halt nur das mithilfe von Assign die Variablen Definiert werden.
Die meisten Hashes sind MD5. Da MD5 eine einseite Verschlüsselung ist kommst du nur durch Brutforcen an den Ursprunglichen Wert bzw. Name.
|
Wer ich bin ist egal? 
Und wieso willst du denen helfen, bei denen "Gehirn knappe Ware" ist? Bzw, wieso denkst du dass es die interessieren wird? xD
Sie werden die Funktionen nicht flüssig lesen können, das kannst du, das kann ich, die könnens aber nicht, meiner Meinung nach, naja
Und "Thanksgeilheit", war meine eigene Meinung, verzeih mir ;D
[Ironie] Das die Hashs MD5 sind, ist mir jetzt auch wieder komplett neu
Genauso wie man an die "Entschlüsslung" kommt, brute force.. [/Ironie]
Deswegen wär nen Tut auch gut, falls jemand ne andere Möglichkeit kennt, zumindest im Falle Shadow.. ^^
Naja. 0x47757465205265697365203A29
|
|
|
06/25/2012, 22:24
|
#12
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by Miichiii
Wer ich bin ist egal? 
Und wieso willst du denen helfen, bei denen "Gehirn knappe Ware" ist? Bzw, wieso denkst du dass es die interessieren wird? xD
Sie werden die Funktionen nicht flüssig lesen können, das kannst du, das kann ich, die könnens aber nicht, meiner Meinung nach, naja
Und "Thanksgeilheit", war meine eigene Meinung, verzeih mir ;D
[Ironie] Das die Hashs MD5 sind, ist mir jetzt auch wieder komplett neu
Genauso wie man an die "Entschlüsslung" kommt, brute force.. [/Ironie]
Deswegen wär nen Tut auch gut, falls jemand ne andere Möglichkeit kennt, zumindest im Falle Shadow.. ^^
Naja. 0x47757465205265697365203A29
|
hashes sind nicht umkehrbar. es wird bewusst ein string von bestimmter länge erzeugt, welcher möglichst wenig mit dem original zu tun hat, welcher aber nach dem selben algorithmus immer wieder aus ein und dem selben string erstellt werden kann..
selbst mit bruteforce, kann man den ursprung nicht wieder herstellen, da es mehrere ergebnisse geben kann, welche zu ein und dem selben hash führen. genau darin besteht ja der sinn vom hashing. admins von websites, welche mit hashes arbeiten, können dem user so 100%ig garantieren, dass das passwort vom user niemals einsehbar sein kann, da nichteinmal der server selbst das passwort kennt.
für passwörter ist es natürlich ungünstig das mehrere strings zu ein und dem selben hash wert führen können, für variablennamen hingegen bedeutet das, das wir niemals mit 100%iger sicherheit das original wieder herstellen können, egal welchen weg wir einschlagen.
|
|
|
06/25/2012, 22:56
|
#13
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Quote:
Originally Posted by lolkop
hashes sind nicht umkehrbar. es wird bewusst ein string von bestimmter länge erzeugt, welcher möglichst wenig mit dem original zu tun hat, welcher aber nach dem selben algorithmus immer wieder aus ein und dem selben string erstellt werden kann..
selbst mit bruteforce, kann man den ursprung nicht wieder herstellen, da es mehrere ergebnisse geben kann, welche zu ein und dem selben hash führen. genau darin besteht ja der sinn vom hashing. admins von websites, welche mit hashes arbeiten, können dem user so 100%ig garantieren, dass das passwort vom user niemals einsehbar sein kann, da nichteinmal der server selbst das passwort kennt.
für passwörter ist es natürlich ungünstig das mehrere strings zu ein und dem selben hash wert führen können, für variablennamen hingegen bedeutet das, das wir niemals mit 100%iger sicherheit das original wieder herstellen können, egal welchen weg wir einschlagen.
|
100% niemals  Mit passender Hardware und Wordlist kann man innerhalb von Stunden eine Menge erreichen.
|
|
|
06/26/2012, 19:18
|
#14
|
elite*gold: 0
Join Date: Apr 2012
Posts: 319
Received Thanks: 54
|
Ist ein Süsses tutorial, aber ich verstehe nicht, wem das nun helfen soll?
Den Leechern?
Oder denen die es schon vorher wussten?
Sonst nett erklärt..!
|
|
|
06/29/2012, 08:54
|
#15
|
elite*gold: 0
Join Date: Mar 2010
Posts: 208
Received Thanks: 85
|
Tja KIramox mal wieder gute Arbeit von dir 
Hast n Thanks bekomm
|
|
|
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 19:18.
|
|