Exe de-compilieren
Übersicht
BlitzBasic
AllgemeinGehe zu Seite Zurück 1, 2, 3 Weiter
|
|
Hubsi |
Antworten mit Zitat |
|---|---|---|
|
Es ging ihm ja nur darum den Blitzchat-Server zu hacken, wobei er wohl nicht bedacht hat das in der Exe keinerlei Passwörter gespeichert werden. Die könnte man auch ohne disassembilieren ohne Aufwand aus der Exe lesen |
||
| Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... | ||
|
|
Kernle 32DLL |
Antworten mit Zitat |
|---|---|---|
|
Nein,darum geht es garnicht Hubsi.Auf dem Server bin ich eh schon.
Das mit dem de-compilierne hatte mich einfach mal intressiert. Also nch dem was ich hier gelesen habe,scheint es für den "Otto-normal- Verbraucher" nicht möglcih zu sein,eine Exe so zu de-compilieren. Schade drum,aber was solls ^^ |
||
|
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog] Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89 Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009 |
||
noir |
Antworten mit Zitat |
|
|---|---|---|
|
Kernle 32DLL hat Folgendes geschrieben: Nein,darum geht es garnicht Hubsi.Auf dem Server bin ich eh schon.
Das mit dem de-compilierne hatte mich einfach mal intressiert. alles klar Kernle, wir glauben dir das doch alle - keine frage |
||
|
Fragt und man wird euch helfen
Das Alternativ BlitzBasic-Forum: FreeCoder Einfach chatten: BlitzChat Code&Text schnell und einfach pasten: FreePasting |
||
Nox |
Antworten mit Zitat |
|
|---|---|---|
|
Steht ja ziemlich viel Quatsch hier drin...
Wie JonasCleve schon sagte, gibt es zuerst die Möglichkeit, ein Programm zu disassemblieren. Ein Disassembler sorgt dafür, eine nötige Struktur zu erstellen und somit den Code übersichtlicher zu machen. Z.B. findet er Zusammenhänge und Referenzen heraus, die die Arbeit beim Disassemblieren extrem vereinfachen. Assembler selbst ist weder eine "Profi"-Sprache noch unmöglich zu lernen, geschweigedenn nur für "Vollzeitprogrammierer, die sowas vollprofessionell" machen. Assembler ist eine der SIMPELSTEN Sprachen überhaupt. Oder was ist als Beispiel an einem "ADD AX, 4" schwer zu verstehen (Registerlehre vorausgesetzt - Lesedauer ca. 10-15 Minuten)?? Wer Erfahrung im Lesen von Assembler hat, wird sich nicht schwer tun, den Code auch verstehen zu können. Für alle Interessierten: Ladet euch den Debugger OllyDbg herunter. Integriert ist ein astreiner Disassembler. Als Übung könntet ihr ein kleines C-Programm schreiben und dies dann debuggen, um zu sehen, wie sowas in Maschinencode/Assembler aussieht. Lernen tut man ziemlich rasch. Es ist auch definitiv möglich, Maschinencode in eine Hochsprache zu übersetzen. Und ich bitte euch: Was ist bitte schwer daran, eine Schleife zu entdecken? OllyDbg erkennt sie schließlich auch... Das einzige Problem, das man nach einer solchen Umwandlung hätte ist, dass keine Variablen, Funktionen und Konstanten benannt wären. Und wer wird aus einem "unsigned long a, b, c, d" schlau? Gerade deshalb ist es schwachsinnig, Maschinencode in eine Hochsprache zu übersetzen. Assembler lernen ist da viel leichter und schneller. Bei BlitzBasic ist ein Verstehen des Hauptcodes sogar ziemlich leicht. Denn wie bei eigentlich jeder Game-Engine steht zu Beginn der Exe der Code der Engine selbst. Der ist statisch und in jedem kompilierten BB-Programm wiederzufinden. Mit Funktionen wie "Graphics3D" etc. ruft man dann Funktionen der Blitz-Engine auf. Halt wie eine Lib in C. In BB ist das allerdings - so wie ich glaube - etwas blöd gelöst. Denn egal, welche Funktionen ich letzten Endes in meinem Programm verwende, es wird immer der komplette Enginecode vorangeschoben. Ein Grund, weshalb die Exen mindestens 1 MB groß ist. Was man nun bräuchte wäre der Code, den der Hersteller geschrieben hat. Da das in der Regel nicht viel ist, kann man den Teil auch recht fix verstehen. Also: Unmöglich: Nein Sinnvoll: Nein Alternative: OllyDbg benutzen und glücklich werden |
||
Dreamora |
Antworten mit Zitat |
|
|---|---|---|
| Bei einem 200 Zeilenprogramm mag der ASM einigermassen zu lesen (und vor allem verstehen) sein, aber bei einem 10000 Zeilen Programm kannst du ASM getrost vergessen, da wirst du "ewig" brauchen wenn du das nicht professionell ständig machst. | ||
| Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. | ||
Nox |
Antworten mit Zitat |
|
|---|---|---|
|
Was hat das mit professionell zu tun? Wer soetwas GERNE tut, wird auch Erfolg haben...
Außerdem wirst du mit Sicherheit nicht ein komplettes Programm debuggen wollen... |
||
Timo |
Antworten mit Zitat |
|
|---|---|---|
|
also ich mein immer noch das es nicht geht, denn es mag von Hochsprache zu maschinencode nur eine einzige möglickeit geben, aber anders herum ist es interpretationssache. Mal davon ab - ginge es, würde es ja eigentlich schon jeder machen oder?
Hier mal ein kleines Beispiel: Eine kleine sinnlose Prozedur aus Delphi (also der Assemblercode davon) was tut sie? BlitzBasic: [AUSKLAPPEN] Die Procedur besteht nur aus 6 Zeilen.. ich wette keiner würde drauf kommen, wie ich es geschrieben habe.. !! Edit: BlitzBasic: [AUSKLAPPEN] |
||
|
|
Sebastian |
Antworten mit Zitat |
|---|---|---|
|
Dass ist so jetzt schwer zu sagen ........
Ich hab mal Microcontroller in ASM programmiert , das ist aber wieder was anderes .... Ich schau mir das zeug mal an ! OT: Was ich eigentlich noch sagen wollte ist dass ich bei Blitzchat ,alle meine Nachrichten vor meinem Router abzweigen und somit mithöhren kann ... (geht gottseidank nur im LAN .D.h. ich werd euch keine Pws klauen können Somit komm ich an die verschlüsselten Passwörter ran. Mit ner Bruteforce -attacke könnte man ,(wenn man ein bischen Zeit investiert) den Passworthashalgorytmus knacken .... Des weitern könnte man ja mal versuchen mit einer spoofing-Attacke (ich glaub das hieß so ...) euren Server zu überlasten, womit keine Clients mehr einloggen können.Naja ich bin kein Hacker deshalb hab ich meine paar Ideen nie getested ... |
||
| Seit 2 Jahren kein BlitzBasic und kein Windows mehr, und stolz darauf ! | ||
noir |
Antworten mit Zitat |
|
|---|---|---|
|
du kannst machen was du willst klar zu kannst die tcp pakete abfangen, aber was bringt es dir |
||
|
Fragt und man wird euch helfen
Das Alternativ BlitzBasic-Forum: FreeCoder Einfach chatten: BlitzChat Code&Text schnell und einfach pasten: FreePasting |
||
Nox |
Antworten mit Zitat |
|
|---|---|---|
|
Nochmal: OllyDbg. Dort einen Breakpoint setzen, wo das Entscheidende passiert, bissi ASM verstehen und fertig (hört sich simpel an, hm? Ist es eigentlich auch...).
@Timo: Du wirst dich wundern, wieviele Instruktionen (Prozessorbefehle) manche "harmlosen" Funktionen haben. Aber erst durch soetwas lernt man, wie ein Computer annähernd funktioniert. Dass nicht jeder das wissen will, ist eine andere Sache.. Übrigens, anders als gewohnt setzt Intel auf eine "Nach, Von"-Syntax. Also "mov" bedeutet nicht "kopiere von ... nach ...", sondern "kopiere nach ... von ...". Und das Programm, was du da gepostest hast, ist nicht wirklich schwierig: mov ebx, $03 <--- 3 ins EBX-Register mov eax, ecx <--- Inhalt des ECX-Registers in's EAX-Register imul ecx <--- (Multiplikation MIT Vorzeichen) EAX wird mit ECX multipliziert, Ergebnis befindet sich dann in EAX sub ecx, $02 <--- 2 von ECX abziehen cdq <--- Aus einem DWORD ein Quad Word machen idiv <--- wie IMUL, nur dieses Mal dividieren (komisch, ich dachte, man gibt nur einen Dividenten an...) [...]viele Wiederholungen[...] sar eax, 1 <--- EAX um 1 Bit nach rechts shiften, dabei Vorzeichen behalten jns +$03 <--- 3 Bytes nach vorn jumpen, wenn Signed Flag = 0 adc eax, $00 <--- Addition, Ergebnis in EAX. Falls Carry-Flag gesetzt, EAX+1 dec ebx <--- EBX um eins verringern jnz -$20 <--- Falls Zero-Flag nicht gesetzt, 20 Bytes zurück jumpen pop ebx <--- Aktuelles Datum vom Stackpointer nach EBX "poppen" ret <--- Zurück zur Adresse springen, von wo ein CALL aufgerufen wurde mov eax, eax <--- wird nie erreicht. Ich glaube kaum, dass das der gesamte Code ist, oder? |
||
- Zuletzt bearbeitet von Nox am Mi, März 30, 2005 13:59, insgesamt einmal bearbeitet
Timo |
Antworten mit Zitat |
|
|---|---|---|
|
es ging mir eigentlich darum, von Assembler in eine Hochsprache. Denn ich bin ja der ansicht, es wird nicht funktionieren, weil es verschiedene Interpretationsmöglichkeiten gibt!! Diese Zeilen oben sind aus wie gesagt 6 Zeilen Delphi code. der Quellcode von "begin" und "end" hab ich schon weggelassen, sonst währen halt noch die beiden Stackbefehle da ^^
Wie gesagt: Meine Frage war nicht ,was macht das Programm oben, sondern wie sah es im Quellcode aus |
||
Nox |
Antworten mit Zitat |
|
|---|---|---|
|
Könnte ich dir sagen, wenn der Code (meiner Meinung nach) nicht unvollständig wäre.
mov ebx, $00000003 mov eax, ecx Es is interessant, dass das ECX-Register ins EAX-Register kopiert wird. Nur WAS ist im ECX-Register? Außerdem wird gegen Ende noch EBX gepoppt, ohne irgendwann was gepusht zu haben. UND es kommt noch eine Instruction nach RET, was mir sagt, dass du garnicht genau weißt, wo dein Code anfängt und endet... Edit: Es ist nämlich erstmal wichtig zu wissen, WAS das Programm macht, damit man passend dazu den Quellcode präsentieren kann.. Edit²: Du hast Recht, es gibt verschiedene "Interpretationsmöglichkeiten", also versch. Wege, den Quellcode zu erzeugen. Allerdings gibt es dabei immer bessere und schlechtere Wege. Was meinst du, was ein Compiler mit Codeoptimierung tut? |
||
Timo |
Antworten mit Zitat |
|
|---|---|---|
|
hmm.. vielleicht hätt ich wohl das begin und end doch hinzufügen sollen...
Das programm sah so aus: BlitzBasic: [AUSKLAPPEN] und hier der Screen der CPU: klick mich was ich halt nur damit zeigen wollte, ist das man vielleicht weiß, was das Programm so in etwas tut, aber das man es, wegen der vielen Möglichkeiten es zurückzucompilieren, es halt ummöglich währe. |
||
|
|
Sebastian |
Antworten mit Zitat |
|---|---|---|
|
Wie gesagt könnte ich mit hilfe eurer PW-Packte den PW-hash knacken ....
Damit könnt ich warscheinlich nicht viel anstellen , aber egal .. Viel schlimmer wär ne spoofing-attacke. |
||
| Seit 2 Jahren kein BlitzBasic und kein Windows mehr, und stolz darauf ! | ||
noir |
Antworten mit Zitat |
|
|---|---|---|
|
zu 1. : könntest du nicht.
zu 2. : möglich wäre es, aber deine ip ist schnell gesperrt. |
||
|
Fragt und man wird euch helfen
Das Alternativ BlitzBasic-Forum: FreeCoder Einfach chatten: BlitzChat Code&Text schnell und einfach pasten: FreePasting |
||
Dreamora |
Antworten mit Zitat |
|
|---|---|---|
| Könntet ihr die Diskussionen über Straftaten dann nun endlich lassen, oder ist erst eine Anzeige notwendig um euch endlich in die Realität zurück zu holen? | ||
| Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. | ||
NetPad |
Antworten mit Zitat |
|
|---|---|---|
|
das heisst nicht spoofing...
du meinst einen DoS. das mit dem server durch verbindungen überlasten würde ich eher lassen, weil das doch schon ziemlich auffällig ist. um ein server auszuschalten gibt es elegantere mehoden. entweder man sucht sich exploits(man wird wahrscheinlich keine aktuelle finden, ausser man tauscht seine eigene mit jemandem, der welche hat), oder man versucht an den source zu kommen und schaut sich das ganze genaustens an(die wahrscheinlichkeit, dass du etwas finden würdest ist ziemlich gering), oder man versucht einige allgemeine schwächen aus(format-string, buffer-overflows, usw). das mit dem knacken der passwörtern ist ein witz. so leid es mir tut, ich glaube nicht, dass du etwas mit dem verschlüsseltem passwort anfangen kannst. ausserdem finde ich das nicht so toll, wenn man packet-sniffing tools benützt, ohne zu wissen, was man will. Ich hoffe dir ist klar, dass solche sachen oft sehr hart bestraft werden und du sehr schnell in probleme geraten kannst. grs NP |
||
sven123 |
Antworten mit Zitat |
|
|---|---|---|
|
@pointer
Zitat: schon, aber man kann ihn ja auch nutzen, indem man sich ihn anschaut und daraus lernt, aber nicht den code kopiert oder sowas. ich glaube wer eine exe wieder in Sourcecode verwandeln kann brauch nicht mehr aus Fremden code zu lernen.Definitiv nicht! |
||
|
Amd Athlon 2200+,Saphire Atlantis Radeon9800pro,1024 MB DDR RAm,40 Gb Festblatte.
'in shâ'a llâh=so Gott will Fertiges Projekt:Invasion der Heuschrecken |
||
NetPad |
Antworten mit Zitat |
|
|---|---|---|
|
wiso nicht???
wie schon erwähnt wird jeder befehl durch den compiler in einen bestimmten ASM code verwandelt. wenn man nun ein solches tool zur hand, kann man irgendwelchen code rekonstruieren. da kann man seeehr viel lernen. z.b ob die benutzereingaben gefiltert werden. wie der login kontrolliert wird. verschlüsselung usw... grs NP |
||
Timo |
Antworten mit Zitat |
|
|---|---|---|
|
Zitat: ich glaube wer eine exe wieder in Sourcecode verwandeln kann brauch nicht mehr aus Fremden code zu lernen.Definitiv nicht!
damit meinte er: wer es geschafft hat, von ASM zu einer Hochsprache zurück zu kompilieren, der kann das so gut, der brauch sich keine anderen Quellcodes mehr anschauen ^^ |
||
Gehe zu Seite Zurück 1, 2, 3 Weiter
Übersicht
BlitzBasic
Allgemein
Powered by phpBB © 2001 - 2006, phpBB Group
