先祝大家圣诞快乐:)大概的代码如下:
1.mProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,ProcessId); //ProcessId是前面得到的,取得方法无误--------此句成功,返回非0
2.VirtualProtectEx; //设某地址1个字节的长度为读写-------此句成功,返回1
3.WriteProcessMemory; //写此地址一个字节---------此句出错,返回0
4.GetLastError; //取错误代码为6,Access is denied.
5.VirtualProtectEx; //恢复前面的1个字节长度的地址为原来的权限----成功,返回1
6.CloseHandle;问题:
测试了取某记事本的进程ID作为ProcessId时代码成功运行,但很奇怪对某个游戏进程取ID作为ProcessId来OpenProcess后WriteProcessMemory返回值为6,求高手帮忙分析解决,谢谢!
1.mProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,ProcessId); //ProcessId是前面得到的,取得方法无误--------此句成功,返回非0
2.VirtualProtectEx; //设某地址1个字节的长度为读写-------此句成功,返回1
3.WriteProcessMemory; //写此地址一个字节---------此句出错,返回0
4.GetLastError; //取错误代码为6,Access is denied.
5.VirtualProtectEx; //恢复前面的1个字节长度的地址为原来的权限----成功,返回1
6.CloseHandle;问题:
测试了取某记事本的进程ID作为ProcessId时代码成功运行,但很奇怪对某个游戏进程取ID作为ProcessId来OpenProcess后WriteProcessMemory返回值为6,求高手帮忙分析解决,谢谢!
解决方案 »
- IOleInPlaceSite这个接口如何实现?
- 求助如何将下列的程序改进,使其自动回复?
- 多文档 窗口菜单中自动增加"隐藏"菜单项,无法删除。怎么办
- CString字符串这个方法要升级了!!不知道该怎么处理了!着急用!!
- 关于函数的调用
- 问一个关于sendmessage/postmessage的问题,高手进
- 菜鸟提问!!!
- 谁能给我一个在win2000下调试成功的多播的例子?
- 关于《深入浅出MFC》简单的环境设定问题。情各位帮忙!
- 如何使用IWebBrowser接口调用html中的所有资源?
- 如何制作一个无界面后台程序!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 怎样通过filter的友好名字找到它的CLSID?
我已调用VirtualProtectEx设此段地址可写并返回成功
VirtualProtectEx函数我改成一长段地址返回仍然成功,但WriteProcessMemory仍然失败返回6
OpenProcessToken
AdjustTokenPrivileges主要是你对进程得操作权限不够,需要提升一下你得权限。查查这方面得资料
//提升权限
void EnableDebugPriv( void )
{
HANDLE hToken;
LUID sedebugnameValue;
TOKEN_PRIVILEGES tkp;if ( ! OpenProcessToken( GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken ) )
return;
if ( ! LookupPrivilegeValue( NULL, SE_DEBUG_NAME, &sedebugnameValue ) ){
CloseHandle( hToken );
return;
}
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = sedebugnameValue;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if ( ! AdjustTokenPrivileges( hToken, FALSE, &tkp, sizeof tkp, NULL, NULL ) )
CloseHandle( hToken );
}
我已经调用过提升权限的函数了,返回成功,但WriteProcessMemory仍然返回6,只有对这个进程写的时候会出这种错,其他进程没见过这种错,一般都是998,227等错
6 The handle is invalid. ERROR_INVALID_HANDLE