AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ASM zu binärcode bzw funktionierender exe?

Ein Thema von Memnarch · begonnen am 28. Jul 2011 · letzter Beitrag vom 29. Jul 2011
Antwort Antwort
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: ASM zu binärcode bzw funktionierender exe?

  Alt 29. Jul 2011, 10:53
mm steht laut der letzten Tabelle auf der Seite für die Register MM0 bis MM7.

Speicheradressen bzw. Konstanten werden wie in meinem Beispiel drangehangen:

mov eax, 20

=>

B8 14 00 00 00

Es sei denn ich habe dich falsch verstanden...
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#2

AW: ASM zu binärcode bzw funktionierender exe?

  Alt 29. Jul 2011, 11:24
Mh, seh ich das ichtig dass die operanden umgekehrt werden?

mov eax, 20

=>

mov 20, eax//das bedeutet doch dein bytecode? und dein Hexwert wird von links nach recht und nicht von rechts nach links gelesen?

in der ModByte tabelle steht für 00 aber [eax] und nicht eax. Wieso den dereferenzierten?

und wie wird hier unterschieden sodass erkannt wird, dass nach dem opcode für mov das eine eine adresse und keine eventuelle nezeichnung für ein anderes mrmodbyte ist?

Dazu bräuchte ich mal eine detaliertere erläuterung
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: ASM zu binärcode bzw funktionierender exe?

  Alt 29. Jul 2011, 11:33
Nein,

B8 bedeutet: mov eax, <32-Bit Wert>
darauf folgt der entsprechende 32-Bit Wert (Little Endian):

Code:
   Hex      32-Bit             Little Endian
20 ===> 0x14 =====> 0x00000014 ============> 14 00 00 00


B8 14 00 00 00
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."

Geändert von Neutral General (29. Jul 2011 um 11:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#4

AW: ASM zu binärcode bzw funktionierender exe?

  Alt 29. Jul 2011, 12:10
AH, gerade diese seite gefunden:
http://www.posix.nl/linuxassembly/na.../nasmdoca.html

da steht genau erklärt wie opcodes notiert werden (z.B das +r).

Damit kapier ich auch wieso du da nur den opcode direkt gefolgt von dem hexwert hast.

MFG
Memnarch
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: ASM zu binärcode bzw funktionierender exe?

  Alt 29. Jul 2011, 12:17
kannst auch mal in Delphi nen asm-Block benutzen, ein paar Anweisungen reinschreiben, dann nen Breakpoint auf die 1. Anweisung und wenn der Debugger angehalten hat ins CPU-Fenster gucken (Strg+Alt+C). Da steht sowohl der Assemblerbefehl als auch der Bytecode des Befehls drin.
Angehängte Grafiken
Dateityp: png CPU-Fenster.png (63,3 KB, 16x aufgerufen)
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."

Geändert von Neutral General (29. Jul 2011 um 12:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#6

AW: ASM zu binärcode bzw funktionierender exe?

  Alt 29. Jul 2011, 15:37
Hab icha cuh schon beutzt. war gut um mal rauszufinden ob ich vorgehensweise X richtig verstanden habe .

werde ich auch zum gegentesten nutzen. wenn ich wirklich mal nen programm hab das bytecode ausschmeißt, werd ich daneben den selben asm code auchnochmal in delphi angucken und vergleichen

edit: strg+alt+c geht aber nichtmehr sobald Smartinspect drin ist >.<


MFG
Memnarch
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.542 Beiträge
 
Delphi 12 Athens
 
#7

AW: ASM zu binärcode bzw funktionierender exe?

  Alt 29. Jul 2011, 16:58
edit: strg+alt+c geht aber nichtmehr sobald Smartinspect drin ist >.<
Im Notfall kann man auch noch über das Menü gehen, wofür Strg+Alt+C die Schnellwahl/Shortcut ist.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz