好友
阅读权限10
听众
最后登录1970-1-1
|
问题一:最近在学习游戏相关的内容,用 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)
啊好难受啊,到底是什么情况 |
-
图1
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|