随笔分类 -  网络游戏安全

摘要:一、动态释放资源文件 1 添加资源文件 新建项目后,转到资源视图,然后 右键空白处 -> 添加资源 -> 导入 -> 选择需要添加的资源文件(如 exe、dll 等)-> 然后添加自定义类型(如 Binary,自定义类型名会自动转为字符串,后面要用到) -> 修改 ID(如 "IDR_DATA",必 阅读全文
posted @ 2025-08-22 19:10 lostin9772 阅读(24) 评论(0) 推荐(0)
摘要:在网络游戏中,我们角色周围对象数组及其对象的属性,如怪物 ID、名称、坐标、血量、阵营等,是非常重要的数据,如果需要做一个自动攻击的程序,那么这些数据是必不可少的。 我们需要搜索周围对象数组,我们就需要找一个切入点,在我们周围的对象一般都是可以选中的,我们可以使用 CE 工具来搜索人物是否处于被选中 阅读全文
posted @ 2025-04-27 16:38 lostin9772 阅读(38) 评论(0) 推荐(0)
摘要:在游戏中,背包中包含了各种药品和装备等游戏道具,通过搜索背包基址,进而遍历背包,得到各种背包物品信息是非常重要的。 背包中的物品数量是一个比较容易更改的属性,我们通过改变物品的数量,用 CE 工具来定位物品数量的虚拟地址,然后有两种思路来定位物品数量的基址: 对物品数量虚拟地址下硬件访问断点,看是谁 阅读全文
posted @ 2025-04-21 21:53 lostin9772 阅读(71) 评论(0) 推荐(0)
摘要:网络游戏中的功能都需要客户端通过发包函数来和服务器进行交互才能实现,因此通过截获发包函数就能够截获游戏中的所有功能函数。 要定位发包函数,那我们首先要来看看,Windows 系统下提供了哪些发包函数,一共有三个: send 发包函数: int WSAAPI send( [in] SOCKET s, 阅读全文
posted @ 2025-04-17 10:55 lostin9772 阅读(133) 评论(0) 推荐(0)
摘要:人物血量是游戏中的一个关键数据,由于人物血量包含在人物数据结构中,因此通过对血量基址的寻找,能够定位到人物数据结构基址,从而遍历出人物的其他数据属性。 通过使游戏中人物血量变动,用 CE 工具来定位到人物血量的虚拟地址,由于该虚拟地址是通过基址偏移而来 注:基址也称为静态地址(静态地址在 CE 中显 阅读全文
posted @ 2025-04-15 11:40 lostin9772 阅读(178) 评论(0) 推荐(0)
摘要:一、Detours 挂钩的原理 Detours 是微软提供的一个开发库,可以简单、高效且稳定的实现 API inline hook。 Detours 是一个可以在 x86、x64 和 IA64 平台上挂钩任意 win32 函数的程序开发库,它通过在需要进行挂钩的目标函数头部重写内存代码而达到接管函数 阅读全文
posted @ 2024-09-11 21:09 lostin9772 阅读(25) 评论(0) 推荐(0)
摘要:常用的线程注入方法有:远程线程注入、全局消息钩子注入、应用层 APC 注入 和 ZwCreateThreadEx 强力注入等。 今天我们讲一下ZwCreateThreadEx 强力注入的这种方法。之前的远程线程通过 CreateRemoteThread 函数来进行 Dll 注入,这种方式可以注入普通 阅读全文
posted @ 2024-09-03 15:25 lostin9772 阅读(224) 评论(0) 推荐(0)
摘要:常用的线程注入方法有:远程线程注入、全局消息钩子注入、应用层 APC 注入 和 ZwCreateThreadEx 强力注入等。 今天我们讲一下应用层 APC 注入的这种方法,首先我们来看一下官方的定义: 异步过程调用(APC)是在特定线程的上下文中异步执行的函数。当 APC 排队到线程时,系统会发出 阅读全文
posted @ 2024-09-03 10:10 lostin9772 阅读(84) 评论(0) 推荐(0)
摘要:常用的线程注入方法有:远程线程注入、全局消息钩子注入、应用层 APC 注入 和 ZwCreateThreadEx 强力注入等。 今天我们讲一下全局消息钩子注入的这种方法,其原理是通过 SetWindowsHookEx 函数,注册一个全局消息钩子,当我们截获到消息时(只要权限足够,任何基于消息机制的程 阅读全文
posted @ 2024-09-02 22:44 lostin9772 阅读(488) 评论(0) 推荐(0)
摘要:常用的线程注入方法有:远程线程注入、全局消息钩子注入、应用层 APC 注入 和 ZwCreateThreadEx 强力注入等。 今天我们讲一下远程线程注入的这种方法,其原理是获取 LoadLibrary 系统函数的地址(我们知道系统函数的地址在每个进程中都是保持一致的,因此在我们自己进程中获取的系统 阅读全文
posted @ 2024-09-02 21:05 lostin9772 阅读(50) 评论(0) 推荐(0)
摘要:一、Dll 可执行文件的编写 首先我们需要在 VS 创建一个动态链接库(DLL)项目,然后会生成如下代码: // dllmain.cpp : 定义 DLL 应用程序的入口点。 #include "pch.h" BOOL APIENTRY DllMain( HMODULE hModule, // 指向 阅读全文
posted @ 2024-09-02 18:45 lostin9772 阅读(102) 评论(0) 推荐(0)
摘要:x64 编译环境下调用汇编函数和 x32 下是不一样的。接下来我们简明的讲解一下 x64 编译环境下,如何在 C++ 源文件中调用汇编函数,以及如何在汇编中调用 C++ 源文件中提供的函数和变量。 首先我们要设置一下汇编的环境,新建一个 x64 项目后,首先要右键项目 -> 生成依赖项 -> 生成自 阅读全文
posted @ 2024-09-02 08:46 lostin9772 阅读(61) 评论(0) 推荐(0)