能力值:
(RANK:10 )
|
-
-
2 楼
HANDLE h;
h = OpenProcess(PROCESS_ALL_ACCESS, TRUE, GetCurrentProcessId());
char buf[10];
memset(buf, 0, sizeof(buf));
DWORD by = 0x0118;
::ReadProcessMemory(h, (void *)0x50003C,
(void *)buf,
4,
NULL);
memset(buf, 0, sizeof(buf));
WriteProcessMemory(h, (void *)0x50003C,
(void *)by,
4,
NULL);
memset(buf, 0, sizeof(buf));
::ReadProcessMemory(h, (void *)0x50003C,
(void *)buf,
4,
NULL);
|
能力值:
(RANK:10 )
|
-
-
3 楼
我换了0x50003C也不行为什么?
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
WriteProcessMemory(h, (void *)0x50003C,
(void *)by, ---->&by
4,
NULL);
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我也碰到这个问题,但是我发现只要把该段块标志修改成修改成 可写的 就能正常写入,原来的是只读就没法写入。
有没有方法不修改PE的块标志,直接写入为只读属性的块呢???
|
能力值:
(RANK:10 )
|
-
-
6 楼
谢楼上 问题解决
|
能力值:
(RANK:350 )
|
-
-
7 楼
最初由 kx001 发布 我也碰到这个问题,但是我发现只要把该段块标志修改成修改成 可写的 就能正常写入,原来的是只读就没法写入。
有没有方法不修改PE的块标志,直接写入为只读属性的块呢???
MEMORY_BASIC_INFORMATION mbi_thunk;
//查询页信息
VirtualQuery(pData, &mbi_thunk, sizeof(MEMORY_BASIC_INFORMATION));
//改变页保护属性为读写。
VirtualProtect(mbi_thunk.BaseAddress,mbi_thunk.RegionSize,PAGE_READWRITE, &mbi_thunk.Protect);
…… 此处放你要写入数据的代码
//恢复页的原保护属性。
DWORD dwOldProtect;
VirtualProtect(mbi_thunk.BaseAddress,mbi_thunk.RegionSize, mbi_thunk.Protect, &dwOldProtect);
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
kanxue ,good!!!
解决~~~~又多学一招
|
|
|