上一个内容:16.在目标进程构建CALL执行代码
16.在目标进程构建CALL执行代码在它的代码上进行的更改,它的callData变量中的代码不完善一个完整的函数是有return的,处理器执行到return会返回如果执行不到会继续往下走,直到执行不下去或者执行到未知函数中报错,报错执行进程就会崩溃,然后一个函数之所以会运行是因为有线程,执行我们植入的代码方式有HOOK拦截游戏本身的线程,另外一种我们给游戏进程创建一个线程然后执行我们的函数(CreateRemoteThread是Windows提供的可以在指定进程中创建一个线程)
GaameCracker.h文件中新加
LPVOID hpJianShangHaiDiZhi; // 用来记录我们植入到游戏进程中调用hp-伤害的代码位置 void call_hpJianShangHai(); // 创建一个线程执行我们植入的hp-伤害
GaameCracker.cpp文件中新加
在 OpenGame函数中callData数组中新加0xC3是return的代码
在 OpenGame函数中新加 hpJianShangHaiDiZhi = (LPVOID)((int)在其它进程开辟的空间 + 500);这一句
void GaameCracker::call_hpJianShangHai()
{
DWORD tid;
CreateRemoteThread(
hProcecss,
NULL,
0,
(LPTHREAD_START_ROUTINE)hpJianShangHaiDiZhi,
0,
0,
&tid
);
}
然后界面中新加按钮调用