能力值:
( LV2,RANK:10 )
2 楼
有几个问题
1.权限
OpenProcess 打开进程的时候要军权啊,可以说是生杀大权
OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, 0, nPid) ;
简单点就PROCESS_ALL_ACCESS这样就具备了、查询、读和写的所有权限
2.还有个权限操作进程和服务之类的时候用的,不知道你主程序弄什么的。。干脆也添加进去吧
void UpgradeProcessPrivilege()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
LookupPrivilegeValue (NULL,SE_DEBUG_NAME,&tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1; // 设置一个权限
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);
CloseHandle(hToken);
}
3.要操作的进程地址、不知道你的 0x004021A3 是从哪里来的
准确的应该是用GetSystemInfo函数返回的SYSTEM_INFO结构中的
lpMinimumApplicationAddress 最小寻址空间
这里判断 0x004021A3 是不是在这中间
lpMaximumApplicationAddress 最大寻址空间
能力值:
( LV2,RANK:10 )
3 楼
想帮忙 但是硬是没有看明白啊
能力值:
( LV5,RANK:60 )
4 楼
谢谢2楼大侠帮忙,我还有好多不懂,先查查资料再来找下出错的地方,主要是文件格式和进程不太懂。用查看内存的工具可以看到打开的进程在那2个地址有值,但是在代码里面用了读内存的函数之后2个szBuffer都是空的