猛牛哥
记录网络点滴生活

OpenProcess在某些XP系统上打开进程失败的原因

最近用AAU写游戏外挂代码,结果几个客户的电脑上打开游戏进程失败,通过远程协助在客户电脑上鼓捣了好久都没有找到原因。最后想到以前用AU3写的同样功能的软件没有遇到过这种问题,所以就去分析这2个语言打开外部进程时有什么区别。通过对比,发现这两种语言打开外部进程都是调用的kernel32.dll的OpenProcess函数,新说这就好办了,如果他们两个的机制不同,就无法下手。再仔细对比,发现AU3调用OpenProcess时,参数DesiredAccess参数使用的0x1F0FFF,而AAU的process库调用OpenProcess时这个参数却是0x1FFFFF。其他地方基本都一样。后经过测试,AAU程序改动这个参数以后,以前打开外部进程失败的机器上也可以打开成功了。然后查了查资料,可能是0x1FFFFF这个值是WINDOWS新版系统才能正常使用的值,而旧版的系统识别不了这个标志,所以会运行失败。估计遇到此问题的都是没有打过更新补丁的XP机。

赞(0) 打赏
猛牛哥原创:猛牛哥的博客 » OpenProcess在某些XP系统上打开进程失败的原因

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏