买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
摘要:本发明公开了一种基于全局内存保护的内核内存访问越界的调试方法,为待测系统构建内核监测器及虚拟内核调试器,内核监测器监测待测系统中内核模块的加载过程及内核线程的创建过程,并将获取的内核模块及内核线程的地址信息发送至虚拟内核调试器,虚拟内核调试器根据接收到的地址信息动态修改特定内核物理内存页的访问权限,并在监测到堆内存分配访问操作时对相关内存区域执行清零操作以触发内存访问异常,通过对内存访问异常的判断实现内核堆内存访问越界的及时识别及处理。
主权项:1.一种基于全局内存保护的内核内存访问越界的调试方法,其特征在于,具体包括以下步骤:构建内核监测器用于监测内核模块的加载过程及内核线程的创建过程,构建虚拟内核调试器用于监测堆内存访问、执行堆内存区域清零及捕获内存访问异常;在待测系统启动时加载内核监测器及虚拟内核调试器,内核监测器执行对内核模块及内核线程的监测;将内核地址空间映射到的物理内存页记为内核物理内存页,虚拟内核调试器启动对堆内存访问的监测、初始化第一堆内存地址列表,第一堆内存地址列表用于记录不存在内存访问越界的堆内存访问的指令地址;在待测系统运行过程中,内核监测器在监测到内核模块的加载操作时获取内核模块的基地址及模块大小,在监测到内核创建新线程时获取新线程的栈基地址及栈界限,将基地址及模块大小、栈基地址及栈界限发送至虚拟内核调试器;虚拟内核调试器将接收到的基地址及模块大小保存在第一内核模块地址列表中,将由栈基地址及栈界限确定的地址空间保存在内核栈内存列表中;将内核物理内存页中除第一堆内存地址列表及内核栈内存列表记录的内存区域以外的内存区域设置为不可访问;虚拟内核调试器监测到堆内存分配操作时,将为该堆内存分配操作建立的Hook函数所对应的指令地址记为目标指令地址并将其加入目标指令地址列表中,对相关堆内存区域清零;虚拟内核调试器监测到内存访问异常时获取异常指令地址,若异常指令地址在第一堆内存地址列表中则挂起待测系统,根据异常指令地址还原调用栈确定异常位置,比较异常指令地址与第一内核模块地址列表中地址确定异常相关的内核模块;若异常指令地址不在第一堆内存地址列表中且在目标指令地址列表中,则将当前的堆内存区域设置为可访问,将异常指令地址添加到第一堆内存地址列表中,将当前执行的指令地址改为异常指令地址,清除异常标志,恢复系统执行;若异常指令地址不在第一堆内存地址列表中且不在目标指令地址列表中,则挂起待测系统,根据异常指令地址还原调用栈确定异常位置,比较异常指令地址与第一内核模块地址列表中地址确定异常相关的内核模块。
全文数据:
权利要求:
百度查询: 北京麟卓信息科技有限公司 一种基于全局内存保护的内核内存访问越界的调试方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。