一种基于壳技术的软件保护方法

 秒速赛车     |      2019-12-04 19:30

  跟着算计机软件技艺的进展,恶意软件濡染妨害才具的巩固、破解者秤谌的大幅擢升,古代的软加密和硬加密计划对待太平性哀求高的软件来说,掩护功效不显着,现正在一经进展到其他良多成熟的式样注册验证、软件水印、反跟踪技艺、加壳技艺等。此中壳加密技艺是软件加密中最常见、最太平的一种技艺。加壳技艺掩护式样是指运用某种算法,对可移植的可实践文献PE举行加密、压缩,给PE文献加上一个表壳。软件壳本来是一段为了防守软件被犯警利用、窜改、拷贝等的步骤。日常这个别代码比原步骤优先实践而且赢得驾御权,云云就起到掩护软件的影响。加了壳的PE文献已经能直接运转,这个表壳步骤担当把PE文献原步骤解密解压到内存里,而且把驾御权还给解压解密后的原步骤。全盘进程都是运转正在内存里,而且步骤运转速率根基没有影响,解密、解压进程齐备透后。PE文献式样

  PE 二进造文献式样是微软操作体例系列中的子集。PE文献式样二进造数据流是线性的。它从一个MS-DOS头部组织起初,一个形式的步骤糟粕紧随其后,接着即是PE文献头,此中PE文献头包括映像文献头(File Header)和可选文献头部(Optional Header),这个别后面的组织即是区块表头,紧跟正在区块表头之后即是完全的区块(Selection),PE文献的尾部是其他数据,此中包括Code View调试音信、COFF符号表音信、COFF行号音信等。PE文献式样总体组织从梗概上分为五大个别DOS首部(DOS Header)、PE文献头(PE Header)、区块块表(Section Table)、块(Section)、调试音信。此中,PE文献式样组织包括三个尽头紧要的表头D0S Header :为了兼容以前的平台;PE Header PE文献合系设备音信;SeCtion Header PE文献各个区块的合系音信。PE装载器加载PE文献的工夫,即是按照这个三个表头所供应的文献音信把文献各个别加载映照到内存中各自相应的地点,确保与磁盘数据组织构造的类似性。通过遍历正在磁盘里PE文献内部音信来决意哪一个别被映照,一朝文献被加载到内存里之后,内存中的数据组织构造与表存(磁盘)上的数据组织构造的类似性。以是,倘使知道正在表存(磁盘)中数据组织中存正在的实质,那么根基上都可能正在内存映照文献里找到雷同的数据;然则正在内存映像文献中,日常一经变更了这些数据之间的相对地点,数据偏移地点一经和正在表存上不雷同了,无论若何,这些完全的数据都可能将表存文献偏移与内存映像文献偏移举行转换。加了壳的PE文献倘使要完成脱壳,第一步也是最紧要的一步即是找到PE文献原步骤入口地点,然后抓取内存PE文献的映像,还原步骤。

  针对上述现有技艺,本出现要办理的技艺题目是现有加了壳的PE文献,壳加载自己就供应了一个显着断点给脱壳者,即无论什么壳最终都要转的原步骤的入口地点,然后胜利脱掉表壳;其最终都要把驾御权还给原步骤,以是不行以将入口地点这个分界点举行暗藏,以是只可针对脱壳的第二步,选用必定掩护程序让脱壳者尽管取得的内存PE文献映像也没有很好的手腕还原成原步骤。为体会决上述技艺题目,本出现采用如下技艺计划

  二、表壳步伐表壳步骤最初运转,解密被加密的数据,窜改合系音信,还原PE文献的原步骤。三、表壳增添步伐正在PE文献中新筑用于存放表壳个别数据的区块,同时将PE文献的原区块表个别增添到该区块表头;

  四、PE文献管束步伐JfPE文献读入的内存,然后对PE文献内存映像的附加数据、Import Tabel、资源数据举行管束。行为本出现进一步的改良,将所述表壳步伐中的PE文献原步骤举行乱序管束。更进一步地,所述乱序管束包罗如下三步

  ①寻找步骤代码中的跳转指令jmp、函数挪用指令call和前提专用指令jcc;②筛选步伐①中指令地点,倘使跳转16位以下的直接不商酌,倘使等于16位,看偏移是否足够跳转到花指令的VAR。倘使高于16位,直接跳转;

  ③当遭遇偏移的工夫,留存原指令要跳转的地点。然后跳转到花指令空间,然后正在花指令实践完的地方推广一个跳转到原先要跳转的谁人地点。行为本出现进一步的改良,正在所述乱序管束时的同时参预用来防御静态反编译的花指令;

  行为本出现进一步的改良,正在表壳步骤中利用了 SHE技艺来反动态跟踪。所述加密步伐的细致管束进程为将要加壳的PE文献从磁盘加载到内存内部,接着对PE文献内存映像每个合系头、区块举行管束,合键是对映像文献区块数据举行加密。所述表壳增添步伐的细致管束进程为算计代码段的CRC32值并写入到PE文献的头内部,奇特数据管束,输入表的修筑,最终把表壳步骤附加到该PE文献的内存映像里,云云就构成了新的加了壳的PE文献。末了,加了壳的PE文献起初运转壳步骤的个别,它将对原PE文献步骤就行CRC32校验,解密区块数据,输入表的重筑,步骤乱序,末了跳转到原步骤入口,把驾御权移交给原步骤。VAR 是variable变量、可变物的简写,正在多种算计机编程说话中,var被用作界说变量的要害字。与现有技艺比拟,本出现拥有以下有益功效

  一、本出现将原步骤和表壳代码举行乱序,来到原步骤与表壳的调和,大大巩固掩护软件的才具;通过本出现加密掩护的软件,尽管脱壳者找到了原步骤入口地点,抓取了 PE文献内存映像,将把壳脱掉,也很难还原PE文献原步骤;由于一朝把壳脱掉,那么原步骤的一个别也给脱掉了,那么云云就不行将原步骤还原了,从而来到掩护软件的主意;

  二、本出现正在完成的加壳进程中还可能连接多种软件掩护技艺来巩固抵御剖析、破解的才具,来到更好的掩护软件的主意。

  对本出现作进一步的描画。本出现包罗原PE文献管束和表壳步骤,所述原PE文献管束包罗加壳步骤和PE文献的重组进程将要加壳的PE文献从磁盘加载到内存内部,接着对PE文献内存映像每个合系头、区块举行管束,合键是对映像文献区块数据举行加密,算计代码段的CRC32值并写入到PE文献的头内部,奇特数据管束,输入表的修筑,最终把表壳步骤附加到该PE文献的内存映像里,云云就构成了新的加了壳PE文献了。所述表壳步骤,加了壳的PE文献起初运转壳步骤的个别,它将对原PE文献步骤就行CRC32校验,解密区块数据,输入表的重筑,步骤乱序,末了跳转到原步骤入口,把驾御权移交给原步骤。从文献式样漫衍角度来看,加了壳的PE文献由四个别构成。分手是PE文献头、被加密的文献区块数据、表壳步骤、附加数据。原PE文献的区块数据以加密的式样存放。原PE文献将新增一个区块,用来存放表壳步骤数据。此中正在该新增的区块数据中,以ShellEndO为界线,正在这之前的数据(合键是资源中的极少数据如图标等)以加密的式样存放,而正在之后的数据没有做任哪里理,也即是以明文的式样存放的。加了壳的PE文献步骤入口地点指向表壳的入口地点ShellStartO。辅导个别举行极少初始化做事,有时倘使加密了后面一部非常壳步骤,那正在这里将举行解压。之后运用来举行校验PE文献的完美性,防守脱壳者动态跟踪、脱壳、反汇编。倘使校验胜利,那么表壳步骤络续实践解压还原PE文献步骤、代码乱序、输入表管束等等。

  1.一种基于壳技艺的软件掩护格式,其特点正在于,包罗以下步伐,一、加密步伐对内存中映像文献的区块数据、资源数据举行加密;二、表壳步伐表壳步骤最初运转,解密被加密的数据,窜改合系音信,还原PE文献的原步骤。三、表壳增添步伐正在PE文献中新筑用于存放表壳个别数据的区块,同时将PE文献的原区块表个别增添到该区块表头;四、PE文献管束步伐将PE文献读入的内存,然后对PE文献内存映像的附加数据、Import Tabel、资源数据举行管束。

  2.按照权柄哀求1所述的基于壳技艺的软件掩护格式,其特点正在于,将所述表壳步伐中的PE文献原步骤举行乱序管束。

  3.按照权柄哀求2所述的基于壳技艺的软件掩护格式,其特点正在于,所述乱序管束包罗如下三步①寻找步骤代码中的跳转指令jmp、秒速赛车信誉平台函数挪用指令call和前提专用指令jcc;②筛选步伐①中的指令地点,倘使跳转16位以下的直接不商酌,倘使等于16位,看偏移是否足够跳转到花指令的VAR,倘使高于16位,直接跳转;③当遭遇偏移的工夫,留存原指令要跳转的地点。然后跳转到花指令空间,然后正在花指令实践完的地方推广一个跳转到原先要跳转的谁人地点。

  4.按照权柄哀求3所述的基于壳技艺的软件掩护格式,其特点正在于,正在所述乱序管束时的同时参预用来防御静态反编译的花指令。

  5.按照权柄哀求1所述的基于壳技艺的软件掩护格式,其特点正在于,正在表壳步骤中利用SHE技艺来反动态跟踪。

  6.按照权柄哀求1所述的基于壳技艺的软件掩护格式,其特点正在于,所述加密步伐的细致管束进程为将要加壳的PE文献从磁盘加载到内存内部,接着对PE文献内存映像每个合系头、区块举行管束,合键是对映像文献区块数据举行加密。

  7.按照权柄哀求1所述的基于壳技艺的软件掩护格式,其特点正在于,所述表壳增添步伐的细致管束进程为算计代码段的CRC32值并写入到PE文献的头内部,奇特数据管束,输入表的修筑,最终把表壳步骤附加到该PE文献的内存映像里构成新的加了壳的PE文献。

  本出现公然了一种基于壳技艺的软件掩护格式,涉及软件加密技艺周围,本出现基于代码乱序的机造,将原步骤与表壳步骤代码举行乱序来来到调和的主意,而且正在代码乱序的同时参预花指令来防御静态反编译;并正在表壳步骤中利用SHE技艺来反动态跟踪。通过本出现掩护的软件,当破解者将表壳脱掉的同时,也除去了个别的原步骤,从而抵达掩护软件的主意。