游戏远程代码注入和动态连接库的使用

前提是已经用汇编语言对远程基址进行了成功的捕获。

在VC中,读取远程基址比较常用的方法有几种:可以采用hook钩子函数,也可采用windows API 远程进程函数对内存进行读取,然后获得远程进程在本机中的数据,并进行相关代码的注入,获取更高的执行效率。

比较常见的API函数:

FindWindow();//查找当前游戏运行窗口,

GetWindowThreadProcessID();//得到游戏句柄

OpenProcess();//获得游戏进程的访问权限

ReadProcessMemory();//读写内存空间,这里包含了游戏改变数值的基址,注入函数的函数名

CreateRemoteThread();//创建远程线程,注入代码

动态链接库的创建和调用

1创建动态链接库; 2 添加函数代码;3 在def文件中做一个套出的处理;4 运行发布版本,win32 release;5 创建MFC程序,将动态链接库和函数库文件套入MFC程序文件夹中,并且设置文件寻找路径link下写上文件名;6调用 先声明 -declspec(dllimport) int 函数名 (参数),或者#pragma comment(lib,“mydll.lib”)

2 注入游戏中:以键盘为例:

1 键盘回调函数 KeyboarProc;SetWindowsHook(创建键盘钩子函数,使用这个函数的时候,通过监视键盘动作,自动的调用回调函数。将游戏代码注入到游戏中去,完成所需操作。

//安装线程钩子

HHOOK SetWindowsHookEx(

int idHook,//回调函数的类型
HOOKPROC lpfn, //钩子回调函数 ,键盘回调函数
HINSTANCE hMod,
DWORD dwThreadId //游戏线程的ID
);
相应的回调函数也是不同的,如:callWndProc CBTProc ,KeyboardProc MouseProc 有按钮按下回调函数,键盘回调函数,鼠标回调函数。

由以上可以看出,要将代码注入,需要安装钩子函数产生相应的钩子函数,通过钩子函数产生回调函数,回调函数里写上注入代码。同时回调函数,可以考虑写入动态连接库中

LRESULT CallNextHookEx(

HHOOK hhk,
int nCode,
WPARAM wParam,
LPARAM lParam
);
LRESULT CALLBACK KeyboardProc(

int code,
WPARAM wParam,
LPARAM lParam
);

安装游戏函数:

创建游戏程序:加入以上动态链接库,当在游戏界面上按下键盘时,打开任务管理器,进程里可以发现游戏里注入了我们自己写的动态链接库。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值