金币3636
积分3764
注册时间2020-6-24
最后登录2025-1-14
|
跟反向注入器一样,具有相同的内存。您可以对克隆的进程进行OpenProcess(PROCESS_ALL_ACCESS),并像对其进行游戏一样对克隆进程进行内存操作
pclone使用PTM, PTM使用VDM。创建pclone_ctx时不需要加载VDM驱动程序,这个项目通过生成一个进程(挂起)并在其EPROCESS结构中交换它的dirbase和PEB来工作。它通过使用VDM从usermode完成所有这些(没有映射驱动程序就是我所说的“usermode”)。
要生成一个pclone_ctx,需要生成一个vdm_ctx/,还需要克隆进程的pid。然后您可以根据需要多次调用.clone,因为它只会创建进程的新克隆。你可以同时运行10个克隆,20个,哈哈。
- pclone_ctx clone_ctx(vdm, util::get_pid("notepad.exe"));
-
- // clone_pid是克隆进程的pid
- // clone_handle是一个PROCESS_ALL_ACCESS句柄,您可以
- //用于调用VirtualAllocEx,ReadProcessMemory,WriteProcessMemory等
- const auto [clone_pid, clone_handle] = clone_ctx.clone();
复制代码
VirtualProtectEx / VirtualAllocEx
您可以同时使用这两种方法,尽管克隆(在本例中为RuntimeBroker.exe)没有与游戏相同的VAD,因为我没有复制VAD_ROOT。我自己对这个工作感到惊讶,因为我几乎假设内核会崩溃时,试图虚拟保护一个没有VAD条目的页面,但我猜它只是做了一个VAD条目。
|
|