1708554793 发表于 2021-8-8 19:23:33

另类驱动读写办法

利用DuplicateHandle()无驱动的另类读写内存方法,理论上可以过游戏保护读写
BOOL DuplicateHandle(
HANDLE   hSourceProcessHandle,
HANDLE   hSourceHandle,
HANDLE   hTargetProcessHandle,
LPHANDLE lpTargetHandle,
DWORD    dwDesiredAccess,
BOOL   bInheritHandle,
DWORD    dwOptions
);
这个API实现的是跨进程拷贝内核对象,比如进程句柄、文件句柄都是可以拷贝的对象,如果目标进程中存在这样的对象,则可以将该对象拷贝到另一个进程中去使用
第一个参数为要拷贝的目标进程句柄

第二个参数为目标进程中要拷贝的句柄

第三个参数为当前进程句柄

第四个参数传出拷贝出的新句柄,并且在当前进程中可以使用该句柄

首先举个例子解释一下这个用法

A进程正在运行,B进程有权限读写他并且已经打开了A进程,C进程拷贝B进程中打开A进程后的句柄来读写A进程内存

B进程代码如下:

#include <stdio.h>
#include <Windows.h>

int main()
{
        HANDLEsrchandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 3656);
        printf("handle = %d\n", (int)srchandle); //以十进制打印出句柄
        DWORDnum;
        ReadProcessMemory(srchandle, (LPCVOID)0xE805D8, &num, 4, NULL);
        printf("%d", num);//打印出读出的内容

        system("pause");
        return 0;
}
运行结果:



由图可知,B进程读A进程内容为100,句柄十进制为240

此时我们运行C进程,代码如下

#include <Windows.h>
#include <stdio.h>

int main()
{
        HANDLEcopyhandle = (HANDLE)240; // 目标进程中将被拷贝过来的句柄
        HANDLE targethandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 14712); //目标进程句柄
        HANDLE newhandle; //存放拷贝出来的新句柄
        DuplicateHandle(targethandle, copyhandle, GetCurrentProcess(), &newhandle, 0, FALSE, DUPLICATE_SAME_ACCESS); //拷贝
        DWORDnum;
        ReadProcessMemory(newhandle, (LPCVOID)0xE805D8, &num, 4, NULL); //利用新句柄读写内存并打印
        printf("%d\n", num);
        system("pause");
        return 0;

}虽然游戏进程无法打开,但是加载驱动保护游戏的进程却可以被打开,比如图中的TslGame_BE.exe,而通常保护游戏的进程都是可以打开游戏的进程的,或者说在加载驱动之前就已经打开了游戏的进程,因此可以利用这个句柄

3.如何打开保护游戏的进程的句柄比如TslGame_BE.exe的句柄,很明显在第二点已经说过了,该进程并没有被保护,CE可以看见图标就意味着可以被打开



4.如何取得TslGame_BE.exe中打开游戏进程的句柄?很明显我们可以注入DLL下钩子,钩住TslGame_BE.exe中的OpenProcess() API,并传出句柄。向TslGame_BE.exe注入DLL比向游戏进程注入简单,游戏进程在加载前驱动已经加载好了因此除了ring0层之外很难注入,但是TslGame_BE.exe却可以被注入,只要摘掉该进程对LoadLibrary的钩子便可,然后利用DLL隐藏技术隐藏自身,HOOK API并传回句柄,再卸载掉注入的DLL




guzhev5 发表于 2021-8-9 19:41:06

建议来个开源例子最实在点

3264189562 发表于 2021-8-9 19:26:54

类驱动读写办法 [

q757586416 发表于 2021-8-9 18:20:44

打开句柄=3天大礼包。

393686984 发表于 2021-8-8 21:39:24

从CSDN板砖都不发一下出处

7723 发表于 2021-8-8 19:37:25

建议来个开源例子最实在点
页: [1]
查看完整版本: 另类驱动读写办法