AGB  ·  Datenschutz  ·  Impressum  







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

In den Speicher schreiben

Ein Thema von Reddog · begonnen am 5. Okt 2004 · letzter Beitrag vom 9. Okt 2004
 
MartinA

Registriert seit: 27. Aug 2003
13 Beiträge
 
#6

Re: In den Speicher schreiben

  Alt 6. Okt 2004, 12:50
Zitat von Luckie:
Kapier ich nicht. Sinnvoll ändern kan nman doch sowie so nur Bytes von Daten und über die habe ich doch sowieso in meinem Programm die volle Kontrolle.
Ich gebe Dir vollkommen recht, wenn man von dem Standpunkt ausgeht, das es sich um Variablen handelt die man Programatisch verändern kann.

z.B
Code:
 A := 10;
A soll nun 11 werden.
 A := 11;
Ist allemal sinnvoller als
 WriteByte($woauchimmer,$B);
Wenn ich jedoch dynamisch den Code erweitern ohne jeweils alles neu zu Compilieren bzw. neu Auszuliefern hat man kaum eine andere Möglichkeit.

Pseudocode:
Code:
 dbgMakeJump(hxInMSGProcBase, DWord(@InMsgProc) + 2, 0);
 dbgMakeJump(DWord(@InMsgProc), hxInMSGProcBase-5, 0);
   :
   :
procedure dbgMakeJump(hxZielAddr, hxJumpAddr, NOPS: DWord);
Var
 Buffer : Array[1..5] of Byte;
 Data   : DWord;
 X      : Byte;
begin
  Data:= hxZielAddr - (hxJumpAddr + 5);
  Move(Data, Buffer[2], 4);
  Buffer[1]:= $E9;
  WriteSecureBuffer(hxJumpAddr, @Buffer, 5);
  For X:= 1 to NOPS do WriteSecureByte(hxJumpAddr + 4 + X, $90);
end;
Vorstehendender Code befindet sich in einer Debug-DLL die nur geladen wird wenn Sie da ist. Ist dem So wird eine bestimmte Routine der Exe auf eine Funktion der DLL umgebogen. Im Prinzip kommt das einen "Funktionshook" recht nahe.
Eine andere Einsatzmöglichkeit währe es auch z.B. einen Durchlaufszähler auf ähnliche Weise zu verändern. Nochmal deutlich hervorheben, will ich, daß die Änderungen aus der DLL kommen und im Hauptprogramm vorgenommen werden. Die Änderung im Hauptprogramm selbst auf diese weise ist, wie bereits richtig festgestellt wurde, relativ sinnlos.

Gruß
Martin
ALT +F4
  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 02:50 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