AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

RTL Fehler beheben - System.pas

Ein Thema von arcticwolf · begonnen am 28. Jul 2023 · letzter Beitrag vom 17. Okt 2023
 
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: RTL Fehler beheben - System.pas

  Alt 28. Jul 2023, 22:33
Das hört sich interessant an, wie genau funktioniert das? Wie kann ich mich da dazwischen hängen?
1. Adressen der alten und neuen Funktion referenzieren (z.b. @System._writestring, @MyUnit.MyWriteString)
2. offset ermitteln (Integer(@MyUnit.MyWriteString) - Integer(@System._writestring) - 5). Die 5 sind der JMP Befehl sowie die vier Byte des Pointers.
3. $E9 + (offset and 255) + ((offset shr 8) and 255) + ((offset shr 16)) and 255 + ((offset shr 24) and 255) bilden. Das ergibt dann ein JMP rel32 auf die neue Funktionsadresse
4. Diese Bytefolge an die Adresse der alten Funktion setzen (move)

Den Aufruf in die initialization setzen, oder wenn das zu spät ist eine statische Klasse erstellen die das im class constructor macht.

Siehe auch https://c9x.me/x86/html/file_module_x86_id_147.html
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all

Geändert von Union (28. Jul 2023 um 22:35 Uhr)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:04 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