开发者

Advanced Memory Editing/Function Calling

开发者 https://www.devze.com 2023-02-01 20:05 出处:网络
I\'ve gotten extremely interested into coding trainers (Program that modifies value of a different process) for video games. I\'ve done the simple \'god-mode\' and \'unlimited money\' things, but I wa

I've gotten extremely interested into coding trainers (Program that modifies value of a different process) for video games. I've done the simple 'god-mode' and 'unlimited money' things, but I want to do alot more than that. (Simple editing using WriteProcessMemory)

There are memory addresses of functions on the internet of the video game I'm working on, and one of functions is like "CreateCar" and I'm wanting to call tha开发者_Go百科t function from an external program.

My question: How can I call a function from an external process in C/C++, provided the function address, using a process handle or other method.

PS: If anyone could link me to tools (I've got debuggers, no need for more..) that help with this sort of thing, that'd be nice.


You can't, at least not safely. If the function has exactly one parameter, you can create a new thread in that process at the function address. If it has more, you might want to inject a DLL to do it.

But neither of these solutions are safe because creating a new thread to run the function can and will corrupt data structures if other threads are currently using them. The only safe way to call a function in another process is to somehow insert the call in exactly the right place in that process so that it's logically correct for that program. Never mind the technical hurdles (inserting hooks at arbitrary locations); you need to know exactly how the program works, which basically means you have a lot of reverse engineering ahead of you (or you need to get the source code).

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号