Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Suche Oppcode => ASM Reference... (https://www.delphipraxis.net/98643-suche-oppcode-%3D-asm-reference.html)

Kedariodakon 30. Aug 2007 12:14


Suche Oppcode => ASM Reference...
 
Hallo,
ich stoße mal gerade auf Probleme…

Und zwar geht es darum Binärdaten (Opcode) in ASM umzuwandeln…
bzw. erstmal zu gruppieren…

Um das zu tun bin ich auf der Suche nach einer passenden Liste…
Scheinbar gibt es wohl verschiedene OPCode Tabellen, je nachdem mit was für ein Prozessor man arbeitet…

Nun mal die entscheidende Frage, wo find ich eine vollständige Liste für den x86 (das was ich hier gerade nutze, Athlon XP 1800+) und wo finde ich eine für den x64 (z.b. für den Athlon 64/Fx/x2)

Bye Christian


Edit: Ok habe schonmal was gefunden...
sandpile.org/

Nur hab ich immernoch nicht wirklich einen Plan wie ich irgendein Code entsprechend Disassemblen (bzw. erstmal gruppiern) kann...


Bye Christian

xaromz 30. Aug 2007 12:38

Re: Suche Oppcode => ASM Reference...
 
Hallo,

warum benutzt Du nicht einfach einen Disassembler? Der strukturiert Dir den Code automatisch.

Gruß
xaromz

Kedariodakon 30. Aug 2007 12:49

Re: Suche Oppcode => ASM Reference...
 
Gut, dass ist eine berechtigte Frage!

Ich beschäftige mich gerade ein wenig mit Hooks und anderen Speicher Manipulationen ;)

Und zwar geht es erstmal darum, wo Code einzufügen ohne das der alte zerstört wird, sprich einfach nur rausspringen, paar NOPs ausführen gesicherten Code ausführen, zurückspringen...
Damit ich dies aber irgendwo machen kann, muss ich natülich den alten Code an der Stelle wo ich meinen Jump einfüge sichern und dies scheinbar so, das er nicht zerstückelt wird, sonst gibt es pöses AUA ;)

Und da das so meine wersten pösen ASM versuche sind bin ich noch ein wenig unbedarft...

Solang ich das manuell hier in der Sandkiste mache ist das ja weniger wild, da ich ja im Debuger nachschaun kann was ich sichern muss...

Zudem will ich was daraus lernen, und eine eigene Disassembler Funktion hilft mir da sicher :angel2:

Bye Christian

sirius 30. Aug 2007 12:55

Re: Suche Oppcode => ASM Reference...
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier gibt es eine disasm.dll (vielleicht auch den Source dazu)
Und im Anhang habe ich eine Klasse dazu, damit kannst du disassemblen oder anderweitig rumspielen.


btw: Hook und Speichermanipulation würde ich nicht in einen Topf werfen...

Kedariodakon 30. Aug 2007 13:04

Re: Suche Oppcode => ASM Reference...
 
Zitat:

Zitat von sirius
Hook und Speichermanipulation würde ich nicht in einen Topf werfen...

Ok, dann frag ich mal nach dem "Warum".

Zitat:

Zitat von sirius
Hier gibt es eine disasm.dll (vielleicht auch den Source dazu)
Und im Anhang habe ich eine Klasse dazu, damit kannst du disassemblen oder anderweitig rumspielen.

Danke für den Link, da werde ich mir später nochmal genauer umschauen...


Im Grunde geht es mir aber im Moment nicht nach fertigen Source-Code, sondern ich benötige nur Informationen, da ich das ja aus Lernzwecken selbst umsetzen möchte ;)

Bye Christian

sirius 30. Aug 2007 13:10

Re: Suche Oppcode => ASM Reference...
 
Was du definitv brauchst ist den Anfang eines Opcodes. Du kannst nicht blinklinks in einen CodeSchnippsel reinrennen. Und von da an ist es doch nicht allzu schwer, denke ich. Du nimmst dir das erste Byte und schaust ob noch mehr Bytes zu dem Befehl gehören.

Edit:
Zitat:

Ok, dann frag ich mal nach dem warum.
Na mit einem Hook manipuliert man doch keinen Speicher. Ein Hook ist dazu da, um irgendwelche Nachrichten, bzw. sonstige Aktionen auf dem Rechner mitzubekommen. Bestenfalls muss man für den Hook an der Einsprungadresse etwas überschreiben, ok. Da schneidet sich Speichermanipulation und Hook.

Kedariodakon 30. Aug 2007 13:15

Re: Suche Oppcode => ASM Reference...
 
Zitat:

Zitat von sirius
Was du definitv brauchst ist den Anfang eines Opcodes. Du kannst nicht blinklinks in einen CodeSchnippsel reinrennen.

Das ist schon klar, das ich nicht blindlings in den Code reinspringen darf :zwinker:

Zitat:

Zitat von sirius
Und von da an ist es doch nicht allzu schwer, denke ich. Du nimmst dir das erste Byte und schaust ob noch mehr Bytes zu dem Befehl gehören.

Und genau das ist ja mein aktuelles Problem...
sprich gehören da nun noch mehr Bytes zu dem Befehl, falls das erste Byte überhaupt den ganzen Befehl darstellt, denn das ist scheinbar nicht immer so...

Nungut, ich wühl mich eben durch die von mir oben genannte Seite, aber wirklich schlau werd ich daraus noch nicht...


Bye Christian

Edit:
Zitat:

Zitat von sirius
Bestenfalls muss man für den Hook an der Einsprungadresse etwas überschreiben, ok. Da schneidet sich Speichermanipulation und Hook.

Das es nur Hooks mit Speichermanipulation gibt, will ich jetzt nicht verneinen, da ich mir diesbezüglich nicht sicher bin, aber bei den Hooks die ich so erstelle, muss ich immer Speicher manipulieren...
Nunja zumindest überschreiben muss man fast immer irgendwas... Und das sollte nunja nicht blind geschehen..

OlafSt 30. Aug 2007 13:37

Re: Suche Oppcode => ASM Reference...
 
Allererste Adresse bei Fragen zu Opcodes auf dem PC ist - natürlich - Intel. Die haben den Instruction Set entworfen.

Suche dort mal nach "Intel® 64 and IA-32 Architectures Software Developer’s Manual" oder "Instruction Set Reference". Sind zwei PDF-Dokumente mit jeweils 2,5MB Größe.

Gutes gelingen bei dem Versuch, einen kleinen DisAsm zu basteln :thumb:

Muetze1 30. Aug 2007 13:39

Re: Suche Oppcode => ASM Reference...
 
... welche du dir auch in Buchform von Intel kostenlos zusenden lassen kannst.

Kedariodakon 30. Aug 2007 14:57

Re: Suche Oppcode => ASM Reference...
 
Öhm ich hab danach gesucht, und komm auch auf eine entsprechende Intel-Seite: Intel® 64 and IA-32 Architectures Software Developer's Manuals

Nun bin ich von der Fülle der Informationen erschlagen!

Und das ist einfach zuviel, ich hab nun alle entsprechenden Dokumente durchgeblättert, aber das einzigste was ich finde sind super detailierte Funktionsbeschreibungen.... :|

Eigentlich suche ich nur eine keine simple Tabelle der Opcodes... und sowas lässt sich in dem Haufen von Informationen nicht finden... Hat da wer ev. genauere Angaben?

ich will doch erstmal nur wissen, wieviel Bytes auf ein entsprechendes Byte folgen... Und dafür 20.000 Seiten lesen? Für genauere Angabn wär ich echt dankbar...

Bye Christian


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:14 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz