AHK Cracken ?

Guten Tag,

ich wollt heute mal ein AHK Script "Cracken" was eig. ja zur einfachsten Sorte Gild soweit ich weiß. Aber ich finde einfach keine Tutorials dazu. Ich habe gehört man kann es ganz einfach aus dem Ram aus auslesen aber wie ?
Ich hoffe auf hilfe

Mfg##
 
Aus dem RAM auslesen ist überflüssig, für AutoHotkey gibt es Decompiler, mit denen du ganz einfach wieder an den Quelltext kommst: Unofficial AutoHotkey FAQ

Was natürlich auch recht interessant ist, sich einfach mal anzuschauen, wie die Decompiler arbeiten, zumindest beim AHK_L Decompiler liegt der Quelltext ja offen.
 
Weil du an den Quelltext wie oben geschrieben viel leichter durch Decompilieren kommst.
Oder welche Vorteile erhoffst du dir sonst dadurch, das Programm aus dem RAM zu laden, bzw. wozu wolltest du das ursprünglich machen, wenn nicht, um an den Quelltext zu kommen?
 
Ja aber den Decompiler den du mir gepostest hat Decompild nur die ohne Password aber ich brauche einen der alles decompiled ^^
Deshalb meinte ich das es einfacher ist vom Ram es auszulesen weil ich nicht glaube das man einen Allround-Decompiler findet.
Und noch ne kleine Frage hinterher wie liest man den Ram überhaupt aus?
Google bringt mir nur Müll.
 
Welche Version?
In der FAQ steht nämlich:
As of v1.1.01, password protection and the /NoDecompile switch are not supported.
=> es gibt keine Option zum "Schützen" =>
man sieht in einem einfachen Hexeditor:
Code:
 Offset    0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F   Ascii

000C5340  3B 20 3C 43 4F 4D 50 49 4C 45 52 3A 20 76 31 2E  ;.<COMPILER:.v1.
000C5350  31 2E 31 31 2E 30 31 3E 0A 4D 73 67 42 6F 78 20  1.11.01>.MsgBox.
000C5360  22 68 65 6C 6C 6F 20 77 6F 72 6C 64 22 50 41 44  "hello.world"PAD
den Quelltext.

Und falls die älteren Versionen keine Byte-Code-Compilierung beherrschen (wie z.B AutoIt), sollte man mit dem Decompiler weiterkommen (hint: man patcht den Decompiler so, dass dieser alle Passwörter akzeptiert).

Edit:
hab' mir mal die "Classic" Version (AutoHotkey 1.0 ("classic" and "basic" versions) - Announcements - AutoHotkey Community )
angeschaut und die in der Hilfedatei verlinkte http://www.autohotkey.com/download/Exe2Ahk.exe ausprobiert.

"Compiliertes" Script == AHK Interpreter mit einem verschlüsselten Anhang.

1) Falls ein Passwort gesetzt wurde, funktioniert Exe2Ahk ( => starten in OllyDbg 1.10, Scriptname und Dummypasswort als Agrumente übergeben):
Code:
00401622  |.  53            PUSH EBX
00401623  |.  E8 180F0000   CALL Exe2Ahk.00402540
kann man es an dieser Stelle ablesen (EBX => pointer auf das Passwort im Speicher)
und dann entsprechend nochmal sauber Exe2Ahk ausführen.


Falls kein Passwort gesetzt wurde ("N/A" als "Protection") fehlt ein Teil des Headers, so dass "Exe2Ahk" nicht funktioniert. Sicherlich kann man es irgendwie patchen - man kann es aber auch einfach in Olly laufen lassen, bis das Script "entschlüsselt" wurde:
Code:
0044834B  |> \8B45 64       MOV EAX,[ARG.24]
0044834E  |.  FF05 94AB4600 INC DWORD PTR DS:[46AB94]
=> EAX == Pointer auf Script im Speicher.

Generische Vorgehensweise: einfach in Olly ausführen und im Speicher nach "<COMPILER:" String suchen - danach dürfte das Script folgen (Problem könnte nur sein, wenn Teile des Scripts während der Ausführung überschrieben/gelöscht werden).
 
Okay habs hinbekommen.
Aber das mit dem Decompiler komm ich einfach nicht weiter. Ich hab keine Ahnung wie ich das patche damit er alle Passwörter akzeptiert
 
Okay habs hinbekommen.
Was hinbekommen?
Aber das mit dem Decompiler komm ich einfach nicht weiter. Ich hab keine Ahnung wie ich das patche damit er alle Passwörter akzeptiert
Ich dachte, Du willst nur 1-2 Scripte decompilieren? Da muss man nichts patchen - nur das Passwort ablesen.
Ansonsten: UPX laden,
Exe2Ahk mittels:
Code:
upx -d Exe2Ahk.exe
entpacken.
Dann sollte das Patchen auch leichter fallen.
 
Ich kann keinen Befehl mit UPX durchführen wenn ich es versuche kommt:
unbenanntz0ssl.png

/edit es geht auch nicht wenn ich ein upx davor schreibe kommt genau das gleiche
 
Zuletzt bearbeitet:
Hmmm, ich will nicht überheblich klingen, aber liest du auch, was da so steht?

Was soll -d für ein Befehl sein, genauso wie upx -d?
Unter usage steht doch bereits, wie der Befehl aussehen muss, also
upx [command] [befehl] [output] [input]

und was command bzw befehl jeweils sein kann, steht dann auch da.
 
UPX entpacken => Kommandozeile =>
Code:
C:\Beispiel\upx.exe -d X:\Pfad\meinahk\Exe2Ahk.exe

Patch für Exe2Ahk:

In OllyDbg öffnen und diese Stelle
Code:
00401042      B8 6C814000   MOV EAX,Exe2Ahk.0040816C                 ;  ASCII "BadPassword"
00401047      EB 18         JMP SHORT Exe2Ahk.00401061
00401049      B8 5C814000   MOV EAX,Exe2Ahk.0040815C                 ;  ASCII "FileNotFound"
zu diesem Code ändern:
Code:
00401042      8D8424 400500>LEA EAX,DWORD PTR SS:[ESP+540]
00401049      90            NOP
0040104A      90            NOP
0040104B      90            NOP
0040104C      90            NOP
0040104D      90            NOP
Rechsklick => Copy to executable => all modifications => save file as

Das akzeptiert zwar nicht jedes Passwort beim decompilieren, gibt bei Falscheingabe allerdings das richtige aus, welches man dann verwenden kann.
 
Wenn ich die Exe2Ahk mit UPX entpackt habe wo finde ich die Ausgangsdatei ?
Oder ist die Exe die fertige Datei schon (sry für die vielen fragen bin noch recht neu im geschäft) ^^
 
Wenn ich die Exe2Ahk mit UPX entpackt habe wo finde ich die Ausgangsdatei ?
Die Originaldatei wird (bei Erfolg => siehe die UPX Ausgabe in der Konsole) mit der entpackten Version ersetzt. Außerdem meckert sonst OllyDbg beim Öffnen einer gepackten Datei.

OT:
Oder ist die Exe die fertige Datei schon (sry für die vielen fragen bin noch recht neu im geschäft) ^^
Daher auch die zahlreichen Fragen bezüglich Version, Vorgehensweise usw.

Wenn jemand von "Cracken" und "Speicherauslesen" spricht, auf den WinAPI Verweis (ReadProcessMemory) mit "klappt net" und auf Debugger-Listnengs mit "habs hinbekommen" antwortet, geht man schon davon aus, dass derjenige zumindest die Grundlagen beherrscht und die bisherigen Begriffe/Informationen ihm keinerlei Schwierigkeiten bereitet haben ;).

Ein Forum lebt von der Kommunikation der User - es ist also bei technischen Fragen durchaus üblich, nach folgendem Muster zu posten:
0. Ich habe folgende, meines Erachtens für das Problem relevante Software/Hardwarekonfiguration
(ggf. werden andere User weiter nachhacken)
1. Ich möchte das und das erreichen.
2. Ich habe dieses und jenes ausprobiert.
3. Folgendes bereitet mir Probleme aka "Dat versteh' ich net!"
Optional: Folgende Kenntnisse auf diesem Gebiet bringe ich mit: xyz.

Es ist ok, etwas nicht zu wissen - das muss man aber auch an andere signalisieren ;).
Es wird hier sicherlich niemand bei Adam und Eva anfangen und absolut "Noob-verständliche" Anleitungen schreiben - allerdings durchaus andere, einfachere Begriffe und Lösungsmöglichkeiten wählen und weiterführende Links dazu posten.
Das Credo des Forums ist im Übrigen Unterstützung der Eigeninitiative, daher ist Punkt 2 "Ich hab' dies und das ausprobiert" sehr hilfreich, um Antworten auf die Fragen zu bekommen.
 
UPX entpacken => Kommandozeile =>
Code:
C:\Beispiel\upx.exe -d X:\Pfad\meinahk\Exe2Ahk.exe
Patch für Exe2Ahk:

In OllyDbg öffnen und diese Stelle
Code:
00401042      B8 6C814000   MOV EAX,Exe2Ahk.0040816C                 ;  ASCII "BadPassword"
00401047      EB 18         JMP SHORT Exe2Ahk.00401061
00401049      B8 5C814000   MOV EAX,Exe2Ahk.0040815C                 ;  ASCII "FileNotFound"
zu diesem Code ändern:
Code:
00401042      8D8424 400500>LEA EAX,DWORD PTR SS:[ESP+540]
00401049      90            NOP
0040104A      90            NOP
0040104B      90            NOP
0040104C      90            NOP
0040104D      90            NOP
Rechsklick => Copy to executable => all modifications => save file as

Das akzeptiert zwar nicht jedes Passwort beim decompilieren, gibt bei Falscheingabe allerdings das richtige aus, welches man dann verwenden kann.

Diese stelle ist bei mir nicht zu finden.
Hab bei SearchFor alles durchgeguckt nichts gefunden
 
Hilfe mit OllyDbg

Hallo Leute! Ich bin der Natow und frisch hier angemeldet, da ich auf der Suche nach einem Dekompiler für kompalierte AHK Skripts war,
und das hier gefunden habe. Ich wollte nämlich mal prüfen, wie sicher meine AHK Executables sind.

Nun habe ich das hier gefunden und mir OllyDbg besorgt.
Aber ich komme einfach nicht dahinter, wie man aus drei Zeilen sechs machen kann:
In OllyDbg öffnen und diese Stelle
[code
zu diesem Code ändern:
[code

Ich habe schon mit einer Zeile Problem und bin mir nicht sicher ob ich es richtig mache.

Wer kann mir den zeigen wie man das macht?

Danke.
 
Aber ich komme einfach nicht dahinter, wie man aus drei Zeilen sechs machen kann
Der Text ganz rechts ist nur eine Interpretation der Bytes (mitte) "B8 6C 81 40 00 ..." = CPU-lesbare-Anweisungen, in einer für Menschen lesbaren Form.

D.h, wenn man die Bytes direkt ändert (Zeile markieren, STRG+E), ändert man Anweisungen, was natürlich auch in "mehr" oder "weniger" Zeilen "Übersetzungstext" resultieren vermag - da eine Anweisung aus einem oder mehreren Bytes bestehen kann.

Da nicht jeder die Anweisungen direkt im Kopf in den Maschinencode übersetzen kann, bietet es sich an, die Zeile zu markieren und "Leertaste" zu betätigen - dann bekommt man eine Eingabeform, in der man Assemblyanweisungen (also Text)
"LEA EAX,DWORD PTR SS:[ESP+540]" direkt eingeben kann. OllyDbg übersetzt diese dann automatisch in Maschinencode. Man sollte darauf achten, dass das Häckchen "fill with nops" in diesem Dialog gesetzt ist.
 
Vielen Dank!!!

Hat funktioniert. Allerdings musste ich bei der Speichern-Anleitung erst noch "Alles Auswählen" ausführen.

Und der Patch wirkt Wunder, Danke!
Bei einfachen Passwörtern kann ich das Angezeigte im zweiten Durchgang verwenden.

Bei den komplexeren Passwörter, welche zB "Compile_AHK" erzeugt, z.B.:
ORIGINAL èTè<q}HXß%hDqÄoÈ7%;v|uö"z
GEFUNDEN ÞTÞ<q}HX▀%hDq─o╚7%;v|u÷"z
scheitere ich dann anscheinend an der CodePage sowie der Übergabe zum zweiten Durchgang.
Selbst mit einer GUI. Gut so :D (oder habt ihr dafür auch eine Lösung X( )


Also Alles Gut, danke.
 
Zuletzt bearbeitet:
Zurück
Oben