能力值:
( LV3,RANK:30 )
|
-
-
2 楼
请确认要写的目标进程中的写入目标虚拟地址的页面保护属性,用 VirtualProtect 修改为可写。
用 IDA 或者 VS 的调试器做一下简单的追踪,看看是哪里返回了。
用 GetLastError 可以帮助你找到错误码。
winxp 以上好像引入了动态内存分配保护(学名不确定),基址是不断变化的,确认你没有硬编码。
如果你这个帖子的意思是改单个目标程序的系统 DLL 内存,也使其他程序的系统 DLL 内存改变是不可能的,因为 COPY ON WRITE 技术。
win7-64bit 我没有用过,以上均为菜鸟拙见……
|
能力值:
( LV4,RANK:40 )
|
-
-
3 楼
权限问题,,,,用管理员身份即可。。
|
能力值:
(RANK:50 )
|
-
-
4 楼
看看GetLastError()返回啥错误码然后去找定义
个人感觉是权限不够,可能要SeDeBugPrivilege
HANDLE hToken;
bool flag = OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken );
if( !flag )
{
DWORD err = GetLastError();
//printf( "OpenProcessToken error:%d", err );
}
SetPrivilege( hToken, SE_DEBUG_NAME, true );
CloseHandle(hToken);
要么就是加载地址随机化或者别的啥造成的,确认写直接已经修改目标区域保护属性为可写了么?
|
|
|