Hier war nur die Rede von (statischen) Adressen, sodass ich gar nicht daran dachte, dass ihr auch Offsets meinen könntet :P schlimm.. muss echt mehr schlafen *Ausreden such*
Naja ok, die Rede davon war hier auch nicht, ist nicht deine Schuld ;O
Aber im grunde ging es ja einfach darum, fixe Adressen in den Code zu schreiben anstatt zb. die VTable per Pattern Search zu suchen.
Und das hat nicht einfach nur was mit dem OS zutun, sondern eher mit der Dll Version.
Btw. für gewöhnlich hat eine Dll auf dem gleichen OS auch immer die gleiche Base, es sei denn, man stellt es anders ein o.ô
Zumindest haben bei mir alle Dlls immer die gleiche Base.
Jo, wenn die Dlls gleich sind, wird der Code immer gleich gemappt und das Offset bleibt gleich.
Nur unterscheidet sich das evtl. von Dll zu Dll aufgrund von Version, OS, Patches, etc. also wäre es jetzt nicht zum Releasen geeignet.
Weiß allerdings selber nicht, wie sich das mit der d3d9.dll verhält
An welcher Stelle sich die Dll befindet hängt natürlich davon ab, wie die gewählte ImageBase lautet und wann und wo Speicher reserviert wird, also auch von den anderen Dateien, die gemappt werden. Bei gleichen Bedingungen ist es sehr wahrscheinlich, dass die Dlls auch gleich geladen werden und sie die ImageBase erhalten, die sie vorher auch hatten, kann sich aber auch durch Threads, die ungleich ausgeführt werden, etc., verändern
Jo, wenn die Dlls gleich sind, wird der Code immer gleich gemappt und das Offset bleibt gleich.
Nur unterscheidet sich das evtl. von Dll zu Dll aufgrund von Version, OS, Patches, etc. also wäre es jetzt nicht zum Releasen geeignet.
Weiß allerdings selber nicht, wie sich das mit der d3d9.dll verhält
Genau das ist doch das, was ich sagte, die Adresse bleibt solange gleich, solange die Dll dieselbe ist ;O
Für verschiedene Systeme gibts ja normalerweise verschiedene Versionen.
Quote:
An welcher Stelle sich die Dll befindet hängt natürlich davon ab, wie die gewählte ImageBase lautet und wann und wo Speicher reserviert wird, also auch von den anderen Dateien, die gemappt werden. Bei gleichen Bedingungen ist es sehr wahrscheinlich, dass die Dlls auch gleich geladen werden und sie die ImageBase erhalten, die sie vorher auch hatten, kann sich aber auch durch Threads, die ungleich ausgeführt werden, etc., verändern
Mich würde mal interessieren, wie sich das verhält, wenn die im Projekt gewünschte ImageBase schon an eine andere Dll zur Laufzeit vergeben ist, wird dann die Dll nicht geladen?
"Genau das ist doch das, was ich sagte, die Adresse bleibt solange gleich, solange die Dll dieselbe ist ;O"
Jojo, wollte mit meinem ersten Post jetzt auch nur klugscheißern, weil ich etwas engstirnig einfach nur "Adresse" gelesen und nicht an Offsets gedacht habe :P
"Mich würde mal interessieren, wie sich das verhält, wenn die im Projekt gewünschte ImageBase schon an eine andere Dll zur Laufzeit vergeben ist, wird dann die Dll nicht geladen?"
Wie meinst du das genau?
Wenn du dir eine ImageBase selber aussuchst und die dann allerdings schon belegt ist?
Deine Dll wird an eine freie Stelle gemappt und reloziert, sodass absolute Adressen innerhalb der Dll wieder stimmen. Gibt's keine relocs wird die Dll trotzdem an eine andere Stelle geladen und stürzt später dann einfach wegen falscher Referenzen ab.
Menü Source Code D3D9 11/06/2010 - WarRock Hacks, Bots, Cheats & Exploits - 59 Replies Hallo Community.
Dieses mal habe ich mir was lustiges ausgedacht und was gutes^^
Ich werde fast jeden Tag einen oder Mehrere D3D9 Menü Source Code posten.
Aber nur Funtionen!
BITTE KEIN SPAM!!!!!!!!!!!!!
[C++]D3D9 Menü 11/04/2010 - C/C++ - 3 Replies Hi Com,
Da Google und die Sufu nichts gebrauchbares ausgeben, frage ich am besten hier.
Ich beschäftige mich zurzeit mit C++ - genauer mit Cheats.
Nun, da ich noch wenig Ahnung vom Gamehacking und von D3D Programmierung habe, frage ich hier.
Ich möchte ein Ingame Menü haben, das sich mit der Taste Insert(Einfügen) öffnen und schließen lässt.