Also ich hab mich mal kurz durchgeschaut und ein bisschen herumprobiert.
Abstürtzen tut er hier:
Delphi-Quellcode:
for i := 0 to size-1 do
pbyte(integer(p2)+i)^ := pbyte(integer(p2)+i)^-pbyte(integer(p1)+i)^;
err := 0;
und zwar mit range check error.
Allerdings nur, wenn ein cheat installiert ist.
Was ich allerdings seltsam finde ist, daß er wenn ich die ganze funktion in einem eigenen programm laufen hab eigentlich funktioniert.
Wenn ich es allerdings in mein Programm einbaue dann stürtzt er ab.
Der code ist aber garantiert der gleiche und ich hatte den absturtz auch schon im separaten programm allerdings momentan gehts seltsamer weise.
der code ist deshalb sicher der gleiche, weil ichs mit copy und paste eingefügt hab.
Ich hab mich auch schon versucht ein bisschen durchzuwurschteln durch den code.
Ist im prinzip recht verständlich - wusste ja nicht, daß man einfach so den
handle einer lib in einem anderen prozess bekommen kann
.
wo ich allerdings aussteige ist dann bei der funktion: compareExecuteSections
vor allem deshalb, weil ich den datentyp PImageDosHeader nicht kenne und mir auch nicht klar ist was letzten endes in der struktur steht auf den der pointer zeigt.
Hoffe damit ist dir klar warum das programm nicht mehr funktioniert
mir nämlich nicht.
Danke
Arnulf
Edit: Ich hab mal ein bischen nachgeschlagen - jetzt verstehe ich die source ganz - gott sei dank
- wusste ja nicht, daß solche header für .exe oder .dlls existieren - sag ja ich bin etwas ab vom schuß des programmierens...
Auch interessant für mich ist wohl IMAGE_EXPORT_DIRECTORY damit wäre es doch relativ einfach simple wrapper zu entdecken - ich müsste nur alle vom spiel geladene .dlls kontrollieren.
oder lieg ich damit falsch? - Das ist ein extrem interessantes kapitel.
Arnulf