yetty
驱动牛犊
驱动牛犊
  • 注册日期2004-01-10
  • 最后登录2009-07-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2364回复:3

谁能说一下WriteProcessMemory的工作原理

楼主#
更多 发布于:2004-06-04 13:01
这个函数是导致我的程序在98下崩溃的祸根,我想在vxd中实现同样的功能,我打算将WriteProcessMemory(GetCurrentProcess(),ppfn,&(pfnDummyFuncAddress),
sizeof(pfnDummyFuncAddress),NULL)里面的参数都在应用层中得到,然后通过DeviceIoControl传入到vxd中,vxd中只要完成WriteProcessMemory函数的功能。
  大家说这样做可行吗?
yetty_forever
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-04 15:25
既然APP中已经实现了该函数,你为什么还需要在vxd中其实现?有什么特别原因吗?
我没有去反汇编过WriteProcessMemory,也没有去跟踪过。
但我想他的原(技术点)来应该是地址转换问题,当然这比普通地址转换要复杂因为他需要将一个进程空间映射到另外进程的地址空间。不是简单的ring0――》ring3或physical――》virtual
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-04 17:23
一个字:烂
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
yetty
驱动牛犊
驱动牛犊
  • 注册日期2004-01-10
  • 最后登录2009-07-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-04 18:32
前文
我想在ring0做那些被ring3级认为是违法的行为。
不瞒你说,这几天脑袋都想大了。
我做了一个截获打印的钩子程序,在附件里。你只要关心其中的windows update 和hook start按钮就行。如果有打印机就能测试,运行程序后,点击windows update按钮能得到当前运行的程序名称,如word1.doc等,选中其中之一,然后点击hook start按钮,这时钩子启动,然后你回到被钩程序如word1.doc,选择file->print菜单,就汇弹出can not print 信息,这是因为我截获了它的打印api,即 gdi32.dll中的StartDocA和StartDocW 程序在NT和XP下看起来很完美,除了一些响应和异常没有完成之外,但是有一个问题,就是程序在98下运行时,如果hook start后,开启任何其他的程序都会弹出”你做了非法操作”的信息,说明程序崩溃了。比如,你点击windows update 选择一个如word1.doc,然后点击hook start,然后你试试看能不能启动一个新的程序,比如ie,比如outlook,或其他。你可以多试两次,需要安装打印机,多试两次就知道我说的什么意思。


打击。。。
再传一个

[编辑 -  6/4/04 by  yetty]
附件名称/大小 下载次数 最后更新
2004-06-04_apihook.rar (12KB)  5
yetty_forever
游客

返回顶部