Es wäre tatsächlich echt hilfreich diesen Quelltext zu lesen. Kannst du ihn mir zukommen lassen?
Außerdem habe ich in dem Quellcode von einem Hack(
) zu einem anderen Spiel die von mir angesprochene Möglichkeit gefunden, es mit Hilfe von
ASM-Injection zu machen.
Um genauer zu sein ermittelt das Programm ersteinmal die Adresse der Funktionen GetModuleHandleA, LoadLibraryA und FreeLibrary in der kernel32.dll. Diese sind ja für alle Processe gleich. Dann wird eine kleine
ASM Sequenz geschrieben, die GetModuleHandle aufruft um festzustellen, ob die
DLL geladen ist, und wenn nicht, dann wird sie mit LoadLibrary geladen, wenn ja dann wird sie wieder entladen. Diese ganze Sequenz wird per WriteProcessMemory an eine Stelle in den Memory Space des Spiel-Process geschrieben, und in der WndProc wird ein Call-Befehl hineingeschrieben, der diese Stelle aufruft.(Der Original-Code wird am Ende von dieser Stelle auch noch ausgeführt, so dass sich eigentlich nichts verändert). Die eigene
DLL wird also von dem Spiel geladen, ohne dass es was merkt.
Ist leider in C++ und
ASM, deswegen hat'S gedauert bis ichS' gecheckt habe. Außerdem bin ich grad noch beim rumprobieren, und weiß nicht ob ich's so anwenden kann. Eigentlich wollte ich ja ohne
DLL-Injection auskommen. Aber , wenn's nicht anders geht mach ich's eben so.
Wie gesagt, wenn es irgendwie geht seine
DLL von sem Spiel laden zu lassen ohne dieses
ASM Zeug, würde ich das natürlich vorziehen.
Reddog.