论坛登陆 注册 文章专区 投稿文章 旧版浏览
用DLL控制Windows中进程的方法
首页 | 页界资讯 | 安全动态 | 网络应用 | 组网技术 | 网络原理 | 工具软件 | 网管知识 | 帮助
文学 | 操作系统 | 注 册 表 | 编程语言 | 数 据 库 | 服 务 器 | 网页设计 | 图形图象 | VIP
论坛 | 网络安全 | 安全防范 | 黑客技术 | 硬件学堂 | 路由技术 | 搜索研究 | 站长经验 | 投稿
专题 | 教育频道 | 特色专题 | 精文荟萃 | 聊天通讯 | 注 册 码 | 论坛社区 | 广告服务 | 旧版
设为首页 加入收藏
当前位置:首页>>文章>>操作系统>>Windows综合>>正文

用DLL控制Windows中进程的方法

www.xker.com 作者:不详 来源:网络转载 加入日期:2005-12-9 8:57:32

在Microsoft Windows中,每个进程都有它自己的私有地址空间。当使用指针来引用内存时,指针的值将引用你自己进程的地址空间中的一个内存地址。你的进程不能创建一銎湟用属于另一个进程的内存指针。因此,如果你的进程存在一个错误,改写了一个随机地址系内存,那么这个错误不会影响另一个进程使用的内存。Windows 98 在Windows 98下运行的各个进程共享2 GB的地址空间,该地址空间从0x80000000至0xFFFFFFFF。只有内存映像文件和统组件才能映射到这个区域。

独立的地址空间对于编程人员和用户来说都是非常有利的。对于编程人员来说,系统更容易捕获随意的内存读取和写入操作。对于用户来说,操作系统将变得更加健壮,因个应用程序无法破坏另一个进程或操作系统的运行。当然,操作系统的这个健壮特性是要冻代价的,因为要编写能够与其他进程进行通信,或者能够对其他进程进行操作的应用程序难得多。

有些情况下,必须打破进程的界限,访问另一个进程的地址空间,这些情况包括:

当你想要为另一个进程创建的窗口建立子类时。

当你需要调试帮助时(例如,当你需要确定另一个进程正在使用哪个DLL时)。

当你想要挂接其他进程时。

这里将介绍两种方法,可以用来将DLL插入到另一个进程的地址空间中。一旦你的DLL进入另一个进程的地址空间,就可以对另一个进程为所欲为。这一定会使你非常害怕,因此,究竟应该怎样做,要三思而后行。

1 插入DLL:一个例子

假设你想为由另一个进程创建的窗口建立一个子类。你可能记得,建立子类就能够改变窗口的行为特性。若要建立子类,只需要调用SetWindowLongPtr函数,改变窗口的内婵中的窗口过程地址,指向一个新的(你自己的) WndProc。Platform SDK文档说,应用程虿能为另一个进程创建的窗口建立子类。这并不完全正确。为另一个进程的窗口建立子类的关键问题与进程地址空间的边界有关。

当调用下面所示的SetWindowsLongPtr函数,建立一个窗口的子类时,你告诉系统,发送到或者显示在hwnd设定的窗口中的所有消息都应该送往MySubclassProc,而不是送往口的正常窗口过程:

进程A中代码:

EXE file:

LRESUlT WndProc(HWND hend,UNIT uMsg,...){.....}

USER32.DLL file

LONG DispatchMessage(CONST MSG*msg)

{

LONG lRet;

WNDPROC lpfnWndProc=

(WNDPROC)GetWindowLongPtr(msg,hwnd,GWLP_WNDPROC

);

lRet=lpfnWndProc(msg.hwnd,msg.message,msg.wParam,mag.

lParam);

return lRet;

}

进程B中:

EXE file

void Somefunc(void)

{

HWND hwnd=Findwindow("class A",NULL);

SetWindowLongPtr(hwnd,GWLP_WNDPROC,MySubclassProc);

}

USER32.DLL file ......

上一篇:VC下通过系统快照实现进程管理
下一篇:解决Windows中的explorer.exe出错

关闭窗口】【浏览次数:】【发送给好友】【收藏此页
相关文章 最新文章 热门文章

·解析Windows XP操作系统进程
·操作系统进程描述
·常用Windows系统进程列表
·解析Windows系统进程列表
·Win2000常见系统进程描述
·任务管理器:Win2K系统进程详解
·Windows 2000 Server进程详解
·进程与端口的映射
·Windows的系统进程及服务
·系统进程概述
·QQ密码丢失后能做的事情:快速找回密码
·免费代理IP(每日更新)
·系统优化 专题
·找回QQ密码的注意事项 
·WinRAR 3.51 注册码
·最经典的黑客入门教材
·怎样查找对方的IP地址
·Norton AntiVirus 2006 注册码(激活
·求职简历封皮
·史上最强QQ个人档案资料欣赏
评论 本站声明
会员名称:
密码:匿名 ·注册·忘记密码?
评论内容:
(最多300个字符)
  查看评论
【注】 发表评论必需遵守以下条例:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
  • 本站大部分为网络转载,如有版权问题,请通知我们,我们立即更正!

设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003-2005 xker.com All rights reserved. 网站合作、广告联系QQ:12231446
小新技术网 冀ICP备05002857号