【发布时间】:2020-01-28 15:15:02
【问题描述】:
所以我正在尝试制作游戏作弊(出于学习目的),并且我正在使用 Counter Strike Global Offensive 作为目标,并且我正在使用 -insecure 启动选项,它不允许我进入任何安全服务器,因此我只能在单人游戏中使用作弊,以免破坏他人的游戏。
我使用 GuidedHacking 的注入器 (GH_Injector) 将我的 DLL 注入到游戏进程中。作弊是INTERNAL(直接修改内存)
我尝试注入,但是当我出于测试目的注入 DLL 时,我添加了 MessageBox() 以在注入后显示,但没有显示出来。确切地说,没有任何反应,但 dll 已被注入,并且我确定,因为当我尝试使用不同的注入器时,另一个注入器会发出错误,表明该 dll 已被注入(为占用的内存空间提供错误代码)
这是我得到的代码:
#include "stdafx.h"
BOOL WINAPI ATTACH() {
MessageBox(NULL, "test", "test", MB_OK); // This here doesnt show up ever.. But it should
DWORD dwClient = (DWORD)GetModuleHandle("client_panorama.dll"); // gets the base address of the module (dll) i want
Beep(750, 100); // used for testing
while (!GetAsyncKeyState(VK_DELETE)) {
*(BYTE*)(dwClient + hazedumper::signatures::dwForceJump) = 6; // should jump ingame
}
FreeLibraryAndExitThread(NULL, 0); // want to make "uninject" but idk how and im testing
Beep(750, 500); // used for testing
return 0;
}
BOOL WINAPI DLLMain(HMODULE hInstanceDLL, DWORD fdwReason, LPVOID lpvReserved) {
switch (fdwReason) {
case DLL_PROCESS_ATTACH:
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)ATTACH, NULL, 0, NULL);
break;
case DLL_PROCESS_DETACH:
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
}
return TRUE;
}
【问题讨论】:
-
@RichardCritten 不,我的问题完全不同
-
那是一个很长的答案/讨论
CreateThread(在DLLMain),这正是你正在做的。
标签: c++ dll inject dll-injection