WriteProcessMemory后,目标进程异常

间谍 2006-02-03 08:22:35
1. 程序A 用CreateProcess产生程序B的 M个实例。
2. 当程序B的 实例1 的某一页(为可读可写页)发生改变后,这时程序A用WriteProcessMemory把这一页写到其它M-1个实例中。
3.程序B中有一个查看按钮,单击此按钮会引用到刚才修改的页,平时一切正常,但当程序A中的 WriteProcessMemory执行后,点击此按钮,当前正在执行的实例就会终止运行。
4.通过一些内存查看软件观察,数据其实已经被写入到该页中。
5.我用FPE,发现程序A的WriteProcessMemory执行后,用FPE观察指定页,然后点击fpe上的“刷新”,这时再点击实例中的查看按钮,实例就不会中止了。
6.只想在ring3下解决这个问题,不想用ring0下修改pte绕过copy on write的办法。

请高手指点一下如何解决这个问题,谢谢了。
...全文
113 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
间谍 2006-02-03
  • 打赏
  • 举报
回复
上面那个读起来不方便,看这个

HANDLE hp = OpenProcess( PROCESS_ALL_ACCESS, TRUE, m_process_id[ m_cs ][ 0 ] );
char buffer[ 0x0001000 ];
SIZE_T n = 0x00001000;
DWORD BaseAddr = 0x0062a000;
if( hp == NULL ) ExitProcess( 0 );
ReadProcessMemory( hp, (VOID*)BaseAddr, buffer, n, NULL );
CloseHandle( hp );
for( int i = 1; i < m_num[ m_cs ]; i++ )
{
HANDLE hp1 = OpenProcess( PROCESS_ALL_ACCESS, TRUE, m_process_id[ m_cs ][ i ] );
if( hp == NULL ) ExitProcess( 0 );
WriteProcessMemory( hp1,(VOID*)BaseAddr,buffer, n, NULL );
CloseHandle( hp1 );

}
间谍 2006-02-03
  • 打赏
  • 举报
回复
这是相关的代码,谢谢各位,请帮我找找毛病

HANDLE hp = OpenProcess( PROCESS_ALL_ACCESS | PROCESS_TERMINATE|PROCESS_VM_OPERATION|
PROCESS_VM_READ| PROCESS_VM_WRITE, TRUE, m_process_id[ m_cs ][ 0 ] );
char buffer[ 0x0001000 ];
SIZE_T n = 0x00001000;
DWORD BaseAddr = 0x0062a000;
if( hp == NULL ) ExitProcess( 0 );
ReadProcessMemory( hp, (VOID*)BaseAddr, buffer, n, NULL );
CloseHandle( hp );
for( int i = 1; i < m_num[ m_cs ]; i++ )
{
HANDLE hp1 = OpenProcess( PROCESS_ALL_ACCESS | PROCESS_TERMINATE|
PROCESS_VM_OPERATION|PROCESS_VM_READ| PROCESS_VM_WRITE, TRUE, m_process_id[ m_cs ][ i ] );
if( hp == NULL ) ExitProcess( 0 );
WriteProcessMemory( hp1,(VOID*)BaseAddr,buffer, n, NULL );
CloseHandle( hp1 );

}
蒋晟 2006-02-03
  • 打赏
  • 举报
回复
a common mistake is trying to access the stake in another process.
DentistryDoctor 2006-02-03
  • 打赏
  • 举报
回复
WriteProcessMemory写了什么?写的地址?

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧