[发明专利]一种基于核心注入式调试器的被调试程序调试方法无效
申请号: | 201110306905.8 | 申请日: | 2011-10-11 |
公开(公告)号: | CN102508769A | 公开(公告)日: | 2012-06-20 |
发明(设计)人: | 傅强 | 申请(专利权)人: | 北京锐安科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 余功勋 |
地址: | 100044 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 核心 注入 调试 程序 方法 | ||
技术领域
本发明属于计算机程序逆向调试技术领域,涉及到一种可以将被调试程序与调试器完全隔离的工作方法。
技术背景
目前市场流行的调试器有很多,可以通过动态译码的方式实现计算机已编译程序的汇编码动态调试及内存,寄存器,栈信息的显示,方便了工作人员对调试器的调试。
但是这些调试器都存在一个问题,被调试程序与调试器直接挂接。这样就产生了一个问题,被调试程序通过相关的技术手段可以侦测到调试器的存在,从而增加一些针对某个调试器的反调试功能。
同时,由于调试器的核心程序与人机交互界面相互耦合,很难利用现有的调试器进行新人机交互界面的开发。
发明内容
本发明针对调试器与被调试程序直接挂接和调试器核心功能无法快速改变人机交互页面的问题,提出了一种基于核心注入式调试器的被调试程序调试方法,在完全隔离了调试器与被调试程序的同时,还增加了调试器人机交互界面的扩展性。本发明通过将现有调试器分为核心工作模块与人机交互界面两个功能模块,分别放到两个独立进程中,其中调试器核心工作模块的功能为获取调试过程中被调试程序的译码信息、内存信息、堆栈信息、寄存器信息等调试数据由宿主进程通过进程通信传递给人机交互界面模块,人机交互界面模块用于解析被调试程序的输出数据以及接收用户输入的调试指令。
本发明的主要技术内容如下:
1)把调试器的核心工作模块与人机交互界面模块分别放在同一宿主主机的两个独立进程中实现,调试器核心工作模块被注入到宿主主机的任意进程中,使被调试程序可探测到的调试器进程具有无穷种可能。
2)人机交互界面模块放在独立的界面进程中,通过进程通信将由界面输入的调试指令传入到宿主进程中,再由宿主进程传递给调试器核心工作模块,对被调试程序进行相应的调试动作。本发明通过系统内核将被调试程序与任意宿主进程联系起来,再由宿主进程与界面进程通信,克服了现有技术通过系统内核将调试器与被调试进程联系起来带来的问题。宿主进程是指调试器核心工作模块所寄生的进程母体,界面进程是独立的一个用于界面显示和用户交互进程。
3)调试器核心工作模块将调试过程中从被调试程序获取的译码信息,内存信息,堆栈信息,寄存器信息等调试数据由宿主进程通过进程通信传递给人机交互界面,再由人机交互界面模块按照通信格式解析并显示给用户。
4)在遵循调试器核心的输出和输入数据格式的情况下,可以快速开发不同的人机交互界面,不需要再考虑调试器的逻辑处理流程。
本发明的技术方案为:
一种基于核心注入式调试器的被调试程序调试方法,其步骤为:
1)将调试器划分为核心工作模块与人机交互界面模块;其中,所述核心工作模块用于获取调试过程中被调试程序调试数据,所述人机交互界面用于解析被调试程序的输出数据以及接收输入的调试指令;
2)将所述核心工作模块和所述人机交互界面模块分别放在同一宿主主机的两不同独立进程中实现;
3)所述人机交互界面模块将接收的调试指令通过进程通信传入到所述核心工作模块所在的宿主进程中,再由该宿主进程传递给所述调试器核心工作模块,对被调试程序进行相应的调试动作;
4)所述调试器核心工作模块将调试过程中从被调试程序获取的调试数据,由宿主进程通过进程通信传递给所述人机交互界面模块,再由所述人机交互界面模块解析并显示。
进一步的,所述被调试程序与所述核心工作模块位于同一进程中。
进一步的,所述被调试程序位于所述宿主主机的一独立进程中。
进一步的,所述调试数据包括:译码信息,内存信息,堆栈信息和寄存器信息。
进一步的,所述调试器核心工作模块通过DLL注入的方式注入到所述宿主主机的任意一进程中。
进一步的,通过所述人机交互界面模块选择所述宿主进程。
进一步的,所述核心工作模块通过从所述人机交互界面模块输入的被调试器程序路径启动所述被调试程序。
与现有技术相比,本发明的有益效果是:
采用本发明后,开发者可以利用调试器核心模块注入到宿主进程中调试被调试程序。相关的调试信息和调试指令可以通过相应的接口输入和输出,这样开发者可以根据不同的应用化境快速的开发出相应的人机交互界面,而且这个工作过程中,调试器和被调试程序是完全隔离的,被调试程序只能探测到宿主程序,而无法探测到真正的调试器程序,使针对调试器进程检测的相关反调试方法完全失效。本发明实现调试器和被调试程序的完全隔离,让被调试程序探测到的调试进程具有无穷可能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京锐安科技有限公司,未经北京锐安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110306905.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:轮胎试验机
- 下一篇:二苯酮酸类化合物的制备方法