首页
社区
课程
招聘
[旧帖] win7 64 writeProcessMemory 不管用, 有啥办法? 0.00雪花
发表于: 2013-7-30 00:25 6777

[旧帖] win7 64 writeProcessMemory 不管用, 有啥办法? 0.00雪花

2013-7-30 00:25
6777
如题  win7 64 下, 使用 writeProcessMemory 只能写入目标程序自己的内存, 系统的dll却写入不了 ,专家 怎么看

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 65
活跃值: (60)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
请确认要写的目标进程中的写入目标虚拟地址的页面保护属性,用 VirtualProtect 修改为可写。
用 IDA 或者 VS 的调试器做一下简单的追踪,看看是哪里返回了。
用 GetLastError 可以帮助你找到错误码。
winxp 以上好像引入了动态内存分配保护(学名不确定),基址是不断变化的,确认你没有硬编码。

如果你这个帖子的意思是改单个目标程序的系统 DLL 内存,也使其他程序的系统 DLL 内存改变是不可能的,因为 COPY ON WRITE 技术。

win7-64bit 我没有用过,以上均为菜鸟拙见……
2013-7-30 07:32
0
雪    币: 110
活跃值: (527)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
权限问题,,,,用管理员身份即可。。
2013-7-30 08:47
0
雪    币: 110
活跃值: (34)
能力值: (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);

要么就是加载地址随机化或者别的啥造成的,确认写直接已经修改目标区域保护属性为可写了么?
2013-8-1 02:24
0
游客
登录 | 注册 方可回帖
返回
//