首页
社区
课程
招聘
[求助]请问:我用NtWriteVirtualMemory写内存为何总是失败?(RING 3) 谢谢!!
发表于: 2010-5-3 15:16 7383

[求助]请问:我用NtWriteVirtualMemory写内存为何总是失败?(RING 3) 谢谢!!

2010-5-3 15:16
7383
typedef

  NTSTATUS

(NTAPI*pfnNtWriteVirtualMemory)(
        HANDLE ProcessHandle,
        PVOID BaseAddress,
        PVOID Buffer,
        ULONG BufferLength,
        PULONG ReturnLength OPTIONAL
);

pfnNtWriteVirtualMemory NtWriteVirtualMemory = (pfnNtWriteVirtualMemory)GetProcAddress(GetModuleHandle ( "ntdll.dll" ),"NtWriteVirtualMemory");

int main()
{
        UpTokenPrivileges(); //提权

        NTSTATUS status;

        HANDLE w_hopen = OpenProcess(PROCESS_ALL_ACCESS,0,632);

        DWORD temp=0x74;

        status = NtWriteVirtualMemory(w_hopen,(LPVOID)0x6F2A0930,&temp,1,NULL);

        if(!NT_SUCCESS(status))
                MessageBox(NULL,"0","0",MB_OK);

        return 0;
}

NtWriteVirtualMemory函数的地址已获取到,openprocess也没问题.难道是我参数的问题吗? 总是失败,郁闷死了.

请各位指点一下,我这是第一次这样用.我这是在ring3下调用的

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 7
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
挖。写外挂
2010-5-3 15:27
0
雪    币: 113
活跃值: (628)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
嗯.事情是这样的,我远程注入了一个程序,想得到它操作的内存地址,

可是它hook了writeprocessmemory这个函数,所以我就想起了ntwritevirtualmemory,

但是我还不会用,就新建了一个工程来练手,但是总是失败...
2010-5-3 15:39
0
雪    币: 290
活跃值: (20)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
VirtualProtect
2010-5-4 11:05
0
雪    币: 113
活跃值: (628)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢.我已经搞定了.要用NtOpenProcess打开进程,然后去除内存保护,再写内存数据
2010-5-4 21:51
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
6
所写的程序没加TMD,估计不是韩国的~
2010-5-4 23:02
0
游客
登录 | 注册 方可回帖
返回
//