一种获取导入表和重定位表的方法及装置制造方法及图纸

技术编号:8532571 阅读:306 留言:0更新日期:2013-04-04 15:26
本发明专利技术公开了一种获取导入表和重定位表的方法及装置,该方法包括:记录运行加壳程序过程中产生的数据改写信息,所述数据改写信息包括数据改写地址、改写数据和数据改写时间;在确定所述加壳程序对应的原始程序的入口点OEP后,在记录的数据改写信息中,将数据改写时间连续且数据改写地址连续的数据改写信息所对应的改写数据进行组合;和/或,在记录的数据改写信息中,将数据改写时间连续、至少两个连续的数据改写地址循环的数据改写信息所对应的改写数据进行组合;逐一分析组合后的改写数据来获取所述加壳程序对应的原始程序的导入表和重定位表。该方案减少了耗时,提高了效率。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤指一种获取导入表和重定位表的方法及装置
技术介绍
加壳是对可执行程序资源进行处理的简称,是保护可执行程序的常用手段,其原理是利用特殊算法,对可执行程序里的资源进行压缩、加密。加壳程序可以在设备上直接运行,但是不能获取原始程序,要经过脱壳才可以获取。脱壳的过程主要分为如下三步第一步,确定原始程序的入口点(Original Entry Point, OEP);第二步,修复导入表和重定位表;第三步,将内存中的原始程序写入文件,更改程序的新入口地址为0ΕΡ,这一步通常称为转储(Dump)。在为程序加壳的过程中,有时并没有完全破坏原始程序的导入表和重定位表,这样在运行加壳程序的过程中,原始程序的导入表和重定位表会完整重现或部分重现在内存记录的数据中,例如,导入表的数据包括A1、A2、A3,在Tl时刻将导入表的数据Al写入内存地址X,在T2时刻将导入表的数据A2写入内存地址x+dl,在T3时刻导入表的数据A3写入内存地址x+d2,Al、A2、A3也可以称为三种内存状态,那么将改写数据A1A2A3进行组合就可以得到整个导入表。可见,对于导入表和重定位表没有被完全破坏的加壳程序,在获取到加壳程序运行过程中产生的所有的数据改写信息、并确定加壳程序对应的原始程序的OEP后,如果能将所有内存状态的可能组合还原,就可以在这些组合后的内存状态中获取导入表和重定位表。在获取到的加壳程序运行过程中产生的数据改写信息后,为了便于分析数据改写信息从而得到导入表和重定位表,可以将数据改写信息记录在一个表格中,假设将获取的数据改写信息记录在如下表中,其中X、X+dl、x+d2表示数据改写地址,Tl、T2、T3表示数据改写时间,八1、4233、81、82、83、(1、02、03表示改写数据,那么,根据获取的数据改写信息可以得出3*3*3=27中改写数据的组合。本文档来自技高网...

【技术保护点】
一种获取导入表和重定位表的方法,其特征在于,包括:记录运行加壳程序过程中产生的数据改写信息,所述数据改写信息包括数据改写地址、改写数据和数据改写时间;在确定所述加壳程序对应的原始程序的入口点OEP后,在记录的数据改写信息中,将数据改写时间连续且数据改写地址连续的数据改写信息所对应的改写数据进行组合;和/或,在记录的数据改写信息中,将数据改写时间连续、至少两个连续的数据改写地址循环的数据改写信息所对应的改写数据进行组合;逐一分析组合后的改写数据来获取所述加壳程序对应的原始程序的导入表和重定位表。

【技术特征摘要】
1.一种获取导入表和重定位表的方法,其特征在于,包括记录运行加壳程序过程中产生的数据改写信息,所述数据改写信息包括数据改写地址、改写数据和数据改写时间;在确定所述加壳程序对应的原始程序的入口点OEP后,在记录的数据改写信息中,将数据改写时间连续且数据改写地址连续的数据改写信息所对应的改写数据进行组合;和/ 或,在记录的数据改写信息中,将数据改写时间连续、至少两个连续的数据改写地址循环的数据改写信息所对应的改写数据进行组合;逐一分析组合后的改写数据来获取所述加壳程序对应的原始程序的导入表和重定位表。2.如权利要求1所述的方法,其特征在于,还包括为组合后的改写数据添加编号信息,并添加到待分析队列中。3.如权利要求2所述的方法,其特征在于,逐一分析组合后的改写数据来获取所述加壳程序对应的原始程序的导入表和重定位表,具体包括逐一从所述待分析队列中取出组合后的改写数据并分析,得到所述加壳程序的导入表和待选重定位...

【专利技术属性】
技术研发人员:陈锦刘业欣
申请(专利权)人:北京神州绿盟信息安全科技股份有限公司北京神州绿盟科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1