AGB  ·  Datenschutz  ·  Impressum  







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

Assembler Rücksprungadresse ändern

Ein Thema von totti14 · begonnen am 2. Mai 2016 · letzter Beitrag vom 2. Mai 2016
 
totti14

Registriert seit: 26. Mai 2005
Ort: Bremen
90 Beiträge
 
Delphi 10.3 Rio
 
#1

Assembler Rücksprungadresse ändern

  Alt 2. Mai 2016, 22:22
Hallo,
ich versuche gerade ein uraltes D2 Prog unter D2007 neu zu compilieren.
Allerdings klemmt es an folgenden ASM Code und von ASM habe ich Null Ahnung:

Delphi-Quellcode:

procedure SaveErrRet;
// sets RetAddr to address after next call.
begin
  asm
    POP EAX
    MOV Sav_ESP, ESP
    PUSH EAX
    ADD EAX, 5
    MOV RetAddr, EAX
    MOV Sav_EDI, EDI
    MOV Sav_ESI, ESI
    MOV Sav_EBP, EBP
    MOV Sav_EBX, EBX
  end;
  SavHeapPtr:= HeapPtr;
end;

procedure ShowError;
begin
  HeapPtr:= SavHeapPtr;
  SaveError;
  Asm
    MOV EBX, Sav_EBX
    MOV EBP, Sav_EBP
    MOV ESI, Sav_ESI
    MOV EDI, Sav_EDI
    MOV EAX, RetAddr
    PUSH EAX // sollte jetzt wieder ins Main springen nach RetAddr
  end;
end;

procedure TestError;
begin
  ShowError;
end;

// -------- Main --------
begin
 // .......
 SaveErrRet;
 // 1.)
 // tu was ganz tief
 // ......
 TestError;
 // ......
end.
Das gibt heute eine Access violation
Wie macht man das heute ?

Danke Totti

Geändert von totti14 ( 2. Mai 2016 um 23:19 Uhr)
  Mit Zitat antworten Zitat
 


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 22: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-2025 by Thomas Breitkreuz