AGB  ·  Datenschutz  ·  Impressum  







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

Assembler

Ein Thema von mandumoal · begonnen am 10. Apr 2006 · letzter Beitrag vom 10. Apr 2006
Antwort Antwort
mandumoal

Registriert seit: 20. Feb 2003
124 Beiträge
 
Delphi 5 Professional
 
#1

Assembler

  Alt 10. Apr 2006, 16:58
Hi,

ich bin gerade dabei ein bisschen ASM zu lernen.
Dazu hab ich mir die Befehle angesehen...

Jetzt hab ich mit PE-Explorer eine meiner EXEn angeschaut und würde gern mal irgendwas verändern?

Kann man mit dem PE-Explorer den ASM-Code verändern, oder muss man das mit einem HEX-Editor machen?

Wie kann ich z.B. aus einem "push exc" ein "push eax" machen?



vielen Dank für die Hilfe,

mandumoal
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#2

Re: Assembler

  Alt 10. Apr 2006, 17:09
Ob das jetzt mit dem PE-Explorer geht weiß ich nicht, aber um aus einem PUSH ECX (nicht EXC) ein PUSH EAX zu machen muss man an der richtigen Stelle aus einer 0x51 eine 0x50 machen. Die bekommt man mit debuggen / disassemblen raus und muss man dann wohl noch von der VA in die RA umrechnen.
Sagt dir das nichts -> lern weiter, google hilft
  Mit Zitat antworten Zitat
mandumoal

Registriert seit: 20. Feb 2003
124 Beiträge
 
Delphi 5 Professional
 
#3

Re: Assembler

  Alt 10. Apr 2006, 17:41
Danke für die Antwort,

kannst du mir noch sagen wie du von "PUSH ECX" auf "0x51" kommst?

Danke
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Assembler

  Alt 10. Apr 2006, 17:46
Zitat von mandumoal:
Danke für die Antwort,

kannst du mir noch sagen wie du von "PUSH ECX" auf "0x51" kommst?

Danke
Also PUSH ECX ist nur ein Mnemnonic für den HEX-Code 51. Der Assembler (Compiler) wandelt das dann dementsprechend um. MaBuSe hat da mal eine Ausführliche Erklärung verfasst.
Suche einfach mal nach Assembler und User MaBuSe.

Ah! MaBuSe hat aus dem Post (der eine Antwort in einem Thread war) ein Tutorial gemacht:
http://www.delphipraxis.net/internal...ct.php?t=36841

Grüße
Faux
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Balu der Bär
(Gast)

n/a Beiträge
 
#5

Re: Assembler

  Alt 10. Apr 2006, 17:46
Geht ganz einfach per Debugger, zum Beispiel OllyDBG.
  Mit Zitat antworten Zitat
mandumoal

Registriert seit: 20. Feb 2003
124 Beiträge
 
Delphi 5 Professional
 
#6

Re: Assembler

  Alt 10. Apr 2006, 18:07
Hi,

Vielen Dank für den Verweis auf das Tutorial, das war sehr fein.

Leider sagt mir aber VA und RA tatsächlich nicht viel, ich denke es werden zwei Arten sein, eine Adresse anzugeben.
V=virtual? R=Relative? ???

Noch ein kleiner Tipp, bitte?

Google spuckt so verdammt viel aus...

Danke!
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#7

Re: Assembler

  Alt 10. Apr 2006, 20:06
VA = Virtual Address
RVA = Relative Virtual Address

Wenn du z.b. eine Funktion hast die bei 0x00407212 beginnt und die exe an 0x00400000 geladen ist, dann hast du die RVA 0x7212.
Wenn du die dann in ein FileOffset umrechnen willst musst du noch die RVA bezüglich der section wo die funktion nun hinzeigt subtrahoeren und die RFA der Section (heisst das so?) wieder addieren

Nehmen wir die Kernel32.CopyFileA:

Virtuelle Adresse: 0x77E89029
- Base von der Kernel32.dll: 0x77E70000
____________
RVA: 0x00019029

zeigt in die section '.text' die die RVA 0x00001000 hat
des subtrahieren und die RFA (0x00000600) von der section '.text' addieren

d.h. in der Datei an der Stelle 0x00018629 befindet sich die Funktion

Hab des jetzt nicht selbst getestet, wenn Fehler sind bitte anmerken ;>
  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 23:05 Uhr.
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