小白CE关于游戏基址访问的两个问题
问题一:最近在学习游戏相关的内容,用 CE 指针扫描找到了一系列地址,如图1是一个关于"PlantsVsZombies.exe"的地址,据我目前所学,"PlantsVsZombies.exe"+00331DA0 形式的指针其基址就是 00331DA0,然后我再写代码实现对其读写:
HANDLE hprocess = ::OpenProcess(PROCESS_ALL_ACCESS,false,ProcessId);
LPVOID pBase = (LPVOID)3349920;
int target = 0;
LPVOID pTarget = (LPVOID)⌖
SIZE_T byred;
::ReadProcessMemory(hprocess,pBase,pTarget,4,&byred);
pBase = (LPVOID)(target+800);
cout << byred << endl;
::ReadProcessMemory(hprocess,pBase,pTarget,4,&byred);
pBase = (LPVOID)(target+24);
::ReadProcessMemory(hprocess,pBase,pTarget,4,&byred);
pBase = (LPVOID)(target+0);
::ReadProcessMemory(hprocess,pBase,pTarget,4,&byred);
pBase = (LPVOID)(target+8);
::ReadProcessMemory(hprocess,pBase,pTarget,4,&byred);
pBase = (LPVOID)(target+21880);
但是发现根本读取不了这个地址,在第一个ReadProcessMemory中 byred返回的值是0,这是游戏加了防护的原因吗?
问题二:
在这些指针中还存在基址形式是"THREADSTACK0"-00000184这样的,我大致理解是这是基于线程的访问。然后我就试图获取线程地址,就用到了ThreadStackFinder来定位THREADSTACK 0 的地址,也尝试用thread-stack-finder来定位,但是结果都是否定的,不是错的就是无法读取(就是byred返回的是0)
啊好难受啊,到底是什么情况 找到问题了,需要把这个地址双击到下面列表,就可以直接看到基址地址的十六进制值了 Songhi 发表于 2024-3-25 21:45
找到问题了,需要把这个地址双击到下面列表,就可以直接看到基址地址的十六进制值了
指针扫描出来的结果,双击到列表也不显示呀,我现在也是遇到这个问题,求解 应该是你找的基址不对。 本帖最后由 cyn123 于 2024-6-18 13:45 编辑
[[+768]+5560]
16进制前面加个0x直接就可以读取,你这改成十进制多此一举
页:
[1]