2010-12-26 8 views
2

Ich habe großes Interesse bekommen in Trainer-Codierung (Programm, das Wert von einem anderen Prozess modifiziert) für Videospiele. Ich habe die einfachen "Gott-Modus" und "unbegrenzten Geld" -Dinge gemacht, aber ich möchte viel mehr als das tun. (Einfache Bearbeitung mit WriteProcessMemory)Advanced Memory Bearbeiten/Funktion aufrufen

Es gibt Speicheradressen von Funktionen im Internet des Videospiels, an dem ich arbeite, und eine der Funktionen ist wie "CreateCar" und ich möchte diese Funktion von einem externen aufrufen Programm.

Meine Frage: Wie kann ich eine Funktion von einem externen Prozess in C/C++ aufrufen, sofern die Funktionsadresse, einen Prozess Griff oder eine andere Methode verwendet.

PS: Wenn jemand mich zu Werkzeuge in Verbindung bringen könnte (ich habe Debugger bekam, keine Notwendigkeit für mehr ..), die Hilfe bei dieser Art der Sache, dass wäre schön.

Antwort

1

Sie können nicht, zumindest sicher nicht. Wenn die Funktion genau einen Parameter hat, können Sie in diesem Prozess einen neuen Thread an der Funktionsadresse anlegen. Wenn es mehr hat, möchten Sie möglicherweise eine DLL injizieren, um es zu tun.

Aber keine dieser Lösungen sind sicher, da einen neuen Thread erstellen, können die Funktion auszuführen und korrupte Datenstrukturen, wenn andere Threads zur Zeit mit ihnen sind. Die einzige sichere Möglichkeit, eine Funktion in einem anderen Prozess aufzurufen, besteht darin, den Aufruf an dieser Stelle genau an die richtige Stelle zu setzen, damit er für dieses Programm logisch korrekt ist. Beachten Sie die technischen Hürden (Einhängen von Haken an beliebigen Stellen); Sie müssen genau wissen, wie das Programm funktioniert, was im Grunde bedeutet, dass Sie viel Reverse Engineering vor sich haben (oder Sie müssen den Quellcode bekommen).

+0

Gab ein bisschen Einblick in die richtigen Worte, um in Google (lol) zu suchen. Danke für die Antwort. – Saustin