![]() |
Assembler
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 |
Re: Assembler
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 :) |
Re: Assembler
Danke für die Antwort,
kannst du mir noch sagen wie du von "PUSH ECX" auf "0x51" kommst? Danke |
Re: Assembler
Zitat:
Suche einfach mal nach Assembler und User MaBuSe. Ah! MaBuSe hat aus dem Post (der eine Antwort in einem Thread war) ein Tutorial gemacht: ![]() Grüße Faux |
Re: Assembler
Geht ganz einfach per Debugger, zum Beispiel OllyDBG.
|
Re: Assembler
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! |
Re: Assembler
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 ;> |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 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 by Thomas Breitkreuz