[发明专利]一种导入表的修复方法及装置有效
| 申请号: | 201210592469.X | 申请日: | 2012-12-28 |
| 公开(公告)号: | CN103077029A | 公开(公告)日: | 2013-05-01 |
| 发明(设计)人: | 陈锦;刘业欣 | 申请(专利权)人: | 北京神州绿盟信息安全科技股份有限公司;北京神州绿盟科技有限公司 |
| 主分类号: | G06F9/44 | 分类号: | G06F9/44 |
| 代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 郭红丽 |
| 地址: | 100089 北京*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 导入 修复 方法 装置 | ||
1.一种导入表的修复方法,其特征在于,包括:
记录运行加壳程序过程中产生的数据改写信息和模块加载信息,所述数据改写信息包括数据改写执行地址、数据改写地址、改写数据和数据改写时间,所述模块加载信息包括所述加壳程序映射到内存中的基地址和结束地址;
在确定所述加壳程序对应的原始程序的入口点OEP后,根据数据改写时间、数据改写地址和设定的组合规则将记录的数据改写信息中的改写数据进行组合,并根据模块加载信息和导入表格式在组合后的改写数据中搜寻待选导入表;
若搜寻到待选导入表,确定每个待选导入表对应的导入地址表,获取在到达所述OEP的时刻存在于内存中、并且内存地址最小的导入地址表,将获取的导入地址表对应的待选导入表作为所述加壳程序对应的原始程序的导入表;
若搜寻不到待选导入表,根据记录的数据改写信息中包括数据改写执行地址、数据改写地址、改写数据和数据改写时间重新建立所述加壳程序对应的原始程序的导入表。
2.如权利要求1所述的方法,其特征在于,根据数据改写时间、数据改写地址和设定的组合规则将记录的数据改写信息中的改写数据进行组合,具体包括:
在记录的数据改写信息中,将数据改写时间连续且数据改写地址连续的数据改写信息所对应的改写数据进行组合;和/或,
在记录的数据改写信息中,将数据改写时间连续、至少两个连续的数据改写地址循环的数据改写信息所对应的改写数据进行组合。
3.如权利要求1所述的方法,其特征在于,所述模块加载信息还包括加载模块的名称,根据模块加载信息和导入表格式在组合后的改写数据中搜寻待选导入表,具体包括:
在所有改写数据的组合中搜寻符合下列条件的待选导入表:
大小大于等于第一设定字节;
原始第一换长OFT指向的内存地址不为零,且落入所述模块加载信息中包括的基地址和结束地址范围内;
OFT指向的内存地址为零,第一换长FT指向的内存地址不为零且落入所述模块加载信息中包括的基地址和结束地址范围内;
模块名称虚拟地址偏移Name RVA与所述基地址的和指向的内存地址落入所述模块加载信息中包括的基地址和结束地址范围内,且Name RVA与所述基地址的和指向的内存地址中的模块包含在所述模块加载信息包括的加载模块的名称中;
OFT和FT指向的内存地址中的函数包含在所述模块加载信息包括的加载模块对应的函数中。
4.如权利要求1所述的方法,其特征在于,所述数据改写信息还包括改写长度,根据记录的数据改写信息重新建立所述加壳程序对应的原始程序的导入表,具体包括:
在到达所述OEP的时刻之前记录的数据改写信息中,获取改写数据为函数地址、改写长度为第二设定字节的数据改写信息;
将获取的数据改写信息中包括的数据改写执行地址相同的数据改写信息分为一组;
从所有分组中选取数据改写地址顺序排列、且包含的数据改写地址最多的分组,选取的分组中的数据改写信息中的改写数据指向的函数包含在所述模块加载信息包括的加载模块对应的函数中,选取的分组中的数据改写信息中的改写数据指向的函数中归属于同一加载模块的相邻;
根据选取的分组中每条数据改写信息中包括的改写数据,确定所述加壳程序对应的原始程度的导入地址表;
从确定的导入地址表中获取运行所述加壳程序对应的原始程序时所需的函数库及每个函数库中的函数;
根据获取的函数库及每个函数库的函数重新建立所述加壳程序对应的原始程序的导入表。
5.如权利要求1所述的方法,其特征在于,还包括:
记录运行加壳程序过程中产生的代码块信息,所述代码块信息包括代码块的起始地址和结束地址;
根据记录的代码块信息重新建立所述加壳程序对应的原始程序的导入表。
6.如权利要求5所述的方法,其特征在于,根据记录的代码块信息重新建立所述加壳程序对应的原始程序的导入表,具体包括:
在到达所述OEP的时刻之后记录的代码块信息中,获取调用第一个函数的内存地址;
根据获取的内存地址,确定所述加壳程序对应的原始程度的导入地址表;
从确定的导入地址表中获取运行所述加壳程序对应的原始程序时所需的函数库及每个函数库中的函数;
根据获取的函数库及每个函数库的函数重新建立所述加壳程序对应的原始程序的导入表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京神州绿盟信息安全科技股份有限公司;北京神州绿盟科技有限公司,未经北京神州绿盟信息安全科技股份有限公司;北京神州绿盟科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210592469.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:三接点式接触型充电组件
- 下一篇:一种双油位开关螺杆并联式压缩冷凝机组





