|
进程注入比较常见,比如用IDE调试程序以及一些Spy程序,如果仅仅为了与调试器通讯,可以使用。net提供的Debugger接口(在EnvDTE.dll的EnvDTE命名空间下)。但无论出于什么目的,进程注入都是比较好玩的事情,所以不妨一试 . 进程注入的方法貌似很多(比如像特洛伊一样乔装打扮让目标进程误认为你的程序集合法而加载到目标进程),这里提到的仅是其中的一种或某些方法的结合。 大致原理是这样的: 源进程(也就是你的代码所在的进程)获得目标进程(也就是你的注入目标所在的进程)的ID或进程对象 源进程提供一回调函数methodA(也就是你想要注入到目标进程后所执行的代码) 将目标进程和回调函数methodA的完整路径(其所在的Assembly,Classic以及MethodName)提交给Injector(也就是我们编写的负责注入的类),让Injector来完成注入和让目标进程执行回调函数 Injector根据提供的目标进程ID取得目标进程对象,并获得目标进程的一个线程(我们称为目标线程) 在目标线程中分配一块内存,将回调函数methodA的完整路径作为字符串存入该内存中 Injector在目标进程中安装一个钩子(Hook)监视某一个Windows消息(messageA),撰写钩子的回调函数methodB(该方法中的内容稍后解释) 像目标进程发消息messageA,并将刚才分配的内存的基地址作为消息参数传递。 由于我们针对messageA安装了钩子,所以目标进程会调用我们钩子函数methodB,并会把分配的内存的基地址包含在函数参数中 methodB中, 根据函数参数中的内存基地址在内存中解析出其实际对象,也就是一个表示我们的methodA的完整路径的字符串。根据该字符串中所表示的Assembly,className, methodName利用。net反射,反射出其MethodInfo对象(注意,关键点,methodB被回调时已经是在目标进程的某个线程中了)。
中国站长站 |
![]()
![]()
手机刷机升级 | Windows2003安全 | Macrmedia认证 | IDS 入侵检测系统专题 | 企业数据容灾备份专题 | 相册制作 | 网吧媒体应用 | PPT/PowerPoint | 鼠绘 | 数据库文摘 | 网站安全论文 | 网页相关 | 笔记本新闻 | 腌卤菜谱 | 磁盘阵列 | 浏览特效 | 站长之休闲 | PHP | 360度全景 | 徽菜 | J2EE 应用服务器 | SQL Server 2008 | Html | Firework | Java认证 | 笔记本评测 | Oracle 10g | 系统安全相关 | Linux安全 | 站长之推广策划
• Phontol.com 和网页作者无关,不对网页的内容负责。
• 非本站原创内容和本站转载内容,其版权所有权属于原版权持有人所有。
• 本站转载的部分内容是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。
• 如有任何异议,请参见版权声明/免责声明部分。
• 美专利商标局将确认亚马逊1-Click专利
• 微软Outlook可连接MySpace很快支持Facebook
• 成人网专设域名.xxx提议引发争议
• 首富16年来首次非美国人中国上榜富豪全球第二
• 墨西哥人取代盖茨成首富中国内地64位富豪上榜
• 电信与清华研究下一代互联网技术
• 用户复制手机卡被骗800元
• 双全十强触屏高像素拍照手机排行榜
• 工信部科技司:IPv6是我国互联网心病
• CM域名大面积瘫痪疑顶级注册局倒闭
• 美股评论:互联网泡沫破灭十周年祭
• 谷歌将公开测试Blogger布局定制新工具
• Verizon年底将推4G服务明年发布首款LTE手机
• 三星发布首款3D电视4月率先进入中国
• 同Sprint版Verizon定制TouchPro2图赏
• 互联网正式获得诺贝尔和平奖提名