ce变速注入dll失败_调用CE变速DLL注入的软件含HOOK模块

后期大家可以自行增加快捷键,加速和减速。

.如果 (文件是否存在 (取运行目录 () + “\biansu.dll”) = 假)

写到文件 (取运行目录 () + “\biansu.dll”, #bs)

.否则

.如果结束

.如果 (远程线程注入DLL (进程ID, 取运行目录 () + “\biansu.dll”) = 真)

滑块条1.禁止 = 假

.如果 (文件是否存在 (取运行目录 () + “\speedhack-i386.dll”) = 假)

写到文件 (取运行目录 () + “\speedhack-i386.dll”, #DLL)

.否则

.如果结束

模块句柄 = _装载模块 (“speedhack-i386.dll”)

hook [1].安装ApiHook (“kernel32”, “GetTickCount”, _取库函数地址 (模块句柄, “speedhackversion_GetTickCount”), , 7)

hook [2].安装ApiHook (“kernel32”, “QueryPerformanceCounter”, _取库函数地址 (模块句柄, “speedhackversion_QueryPerformanceCounter”), , 5)

hook [3].安装ApiHook (“winmm”, “timeGetTime”, _取库函数地址 (模块句柄, “speedhackversion_GetTickCount”))

数据_GetTickCount = 申请内存 (20, )

数据_QueryPerformanceCounter = 申请内存 (20, )

写到内存 (hook [1].取保存数据 () + Asm_jmp (数据_GetTickCount + 7, hook [1].取Hook地址 () + 7), 数据_GetTickCount, )

写到内存 (hook [2].取保存数据 () + Asm_jmp (数据_QueryPerformanceCounter + 5, hook [2].取Hook地址 () + 5), 数据_QueryPerformanceCounter, )

写到内存 (数据_GetTickCount, _取库函数地址 (模块句柄, “realGetTickCount”), )

写到内存 (数据_QueryPerformanceCounter, _取库函数地址 (模块句柄, “realQueryPerformanceCounter”), )

hook [1].开始Hook ()

hook [2].开始Hook ()

hook [3].开始Hook ()

InitializeSpeedhack (1)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
c hook注入dll是一种在Windows系统中实现函数钩子的技术。下面给出一个完整的例子: 首先,创建一个c文件,命名为hookdll.c,代码如下: #include <Windows.h> // 定义要hook的目标函数 typedef bool (WINAPI* ORIGINAL_FUNCTION)(LPCTSTR); ORIGINAL_FUNCTION OriginalFunction; // 定义hook的替代函数 bool WINAPI HookFunction(LPCTSTR lpFileName) { // 在这里编写你的hook函数逻辑 // 可以在这个函数中修改传入参数或返回值,实现钩子的目的 // ... // 调用原始函数 return OriginalFunction(lpFileName); } // Dll入口函数 BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { if (ul_reason_for_call == DLL_PROCESS_ATTACH) { // 加载kernel32.dll HMODULE kernel32 = LoadLibrary("kernel32"); if (kernel32 != NULL) { // 获取目标函数地址 OriginalFunction = (ORIGINAL_FUNCTION)GetProcAddress(kernel32, "函数名"); if (OriginalFunction != NULL) { // 修改函数的内存属性为可执行和可写 DWORD oldProtect; VirtualProtect(OriginalFunction, sizeof(ORIGINAL_FUNCTION), PAGE_EXECUTE_READWRITE, &oldProtect); // 修改函数的指针为hook函数的指针 *OriginalFunction = &HookFunction; // 还原函数的内存属性 VirtualProtect(OriginalFunction, sizeof(ORIGINAL_FUNCTION), oldProtect, &oldProtect); } // 释放kernel32.dll内存 FreeLibrary(kernel32); } } return TRUE; } 编译这个项目,得到一个dll文件,命名为hookdll.dll。 然后,创建一个使用目标dll的示例程序,例如使用了kernel32.dll中的某个方法。然后按照以下步骤实现hook注入: 1. 打开示例程序的源代码,编辑代码,添加以下代码段: #pragma comment(lib, "hookdll.lib") 2. 将hookdll.dll拷贝到示例程序的目录下。 3. 使用LoadLibrary函数在程序中动态加载hookdll.dll。 4. 调用示例程序中使用kernel32.dll中方法的代码,此时会执行被hook函数的替代函数。 通过以上步骤,我们就实现了c hook注入dll的完整例子。在hook函数中可以对传入的参数或返回值进行修改,实现我们想要的钩子效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值