您现在的位置: 首 页 >> SCI论文 >> 一种基于二进制程序的安全加固系统设计和实行

一种基于二进制程序的安全加固系统设计和实行

作者:旅游论文
出处:www.lunrr.com
时间:2019-10-25

1简介

近年来,随着反汇编、反编译和反分析技术的发展,软件破解、篡改和盗版现象层出不穷。为了保证软件的安全,二进制程序安全增强技术的研究已成为软件安全领域的一个重要分支。在实际应用中,软件厂商往往采用多种增强技术来进行软件保护,如pe文件压缩技术、pe文件代码段加密技术等。pe文件代码段反汇编后的代码混淆技术和shellcode多态变形技术。这些技术具有很高的通用性,但其成本也不容忽视。如何以最小的代价换取最安全的保护已成为二进制程序安全增强技术的研究热点。本文通过对各种安全增强技术的分析,提出了一种新的二进制程序安全增强系统。它可以将任何pe文件转换成shellcode并加载pe文件,而不是windows系统。同时保证了pe文件的大小不增加。最后,实验证明,该系统所增强的二进制程序量变化不大,恶意代码能够逃脱主流杀毒软件的检测和杀戮。证明了增强后的二进制程序不仅增加了静态分析的难度,而且有效地阻碍了程序的动态分析。

2通用软件安全增强技术

随着软件反向分析技术的发展,软件安全强化技术也得到了发展。根据攻击者的攻击目的和方法,软件强化技术也具有不同的优先级和目标。应当指出,我们不能将所有强化技术一起应用于软件保护,因为使用不同的安全强化技术通常会带来额外的开销。简要分析常见的六种加固技术。 (1)打包和解包:打包的目的是加密或压缩EXE文件的代码段。程序运行时,由解密或解压缩程序处理代码段,然后程序正常运行。这些加密或压缩功能的机制称为脱壳,相应的解密和解压缩机制称为脱壳。打包的代码段可以有效地防止反汇编,但是攻击者可以通过对脱壳程序进行反向分析来破解软件外壳。 (2)多态变形技术:多态变形是多态和变形两种技术的结合。它主要对解密的代码进行转换,从而使每个生成的解密程序呈现不同的状态特征,并且还可以执行源程序。简单的转换。显然,多态变形也是一种加密技术。根据壳体的定义,多态变形技术应属于壳体的范畴。这种加密技术使变形的解密程序具有不同的特性,因此它是一种特殊的外壳。常用的多态引擎包括BPE32 Clet,ADMmuate,Jempiscodes,Tapion等。 (3)代码混淆技术:指对源程序中的数据,布局和控制流进行转换,以使转换后的程序在功能上与源程序相同或相似,同时保持源程序的语义不变。代码混乱代码的变形除了上述多态变形技术采用的变形方法外,程序的控制流程也发生了变化,使程序更难以理解,从而增加了反向分析的难度。 (4)防篡改技术:软件保护技术的总称,它防止程序被软件或硬件措施非法修改,并且属于软件保护领域的主动防御类别。防篡改技术有两个任务:一是检测软件所采用的安全强化技术是否被破解,二是软件本身是否被修改,通常采用计算验证,检查是否存在一些可变值的方法。更改以确认程序是否正常执行;当发现程序已被篡改或调试时,应制定对策。 (5)虚拟机保护技术:是指将代码转换成机器和人无法识别的一串伪代码字节流,即本地代码虚拟化。在特定执行之后,伪代码将被翻译并逐渐还原为原始代码。代码和执行的技术。当虚拟机用作软件保护时,软件的基础指令(例如汇编指令)将转换为另一个虚拟机指令,并且当执行软件时,部分操作将在虚拟机中执行。因为虚拟机的复杂性可能很高,所以可以自定义指令集,或者可以使用或引用现有的成熟指令集。逆向工程需要先了解虚拟机和虚拟指令集的一般结构,然后才能理解。虚拟化后的代码行为。在复杂虚拟机和软件之间紧密耦合的情况下,逆向工程可能会变得非常困难。 (6)软件水印:软件水印是数字水印技术在软件保护领域的应用和发展,是数字水印技术的一个分支。软件水印可分为静态水印和动态水印。静态水印嵌入在程序代码或数据中,通常放置在模块部分或指令代码和调试信息的符号中。动态水印技术将水印存储在程序的执行状态中,可以用来证明程序是否已经混乱地变形。

3基于二进制程序的加固系统方案

3.1增强原理PE文件是Microsoft Portable Executable File Format的缩写,可用于移植可执行文件格式。它是Windows系统下最常用的文件组织。 Windows下的可执行EXE和动态链接库文件dll属于PE文件。 Windows系统正常加载PE文件后,很容易通过反汇编代码反向分析PE文件的行为。如果遵循Windows加载程序,则将源文件直接转换为内存中的机器代码会增加反向分析的难度。为确保加固后源文件的容量不会有太大变化,必须压缩源文件。压缩的PE文件在加载时首先被解压缩。压缩的PE文件和PE文件加载功能被封装到Shellcode中。然后,shellcode是多态的,确保每个生成的解密函数具有不同的特征,最后生成一个新的PE文件。 3.2框架组成根据二进制程序增强系统的工作原理,我们将系统的整体结构分为两部分。系统组成结构如图1所示。第一部分执行PE文件的加载功能,即PE文件执行模块,该模块主要负责解压缩PE文件并动态加载PE文件。它是新PE文件的主要组件。第二部分执行PE文件的压缩,多态和汇编功能,并生成新的PE文件以实现PE文件的增强。它主要包括压缩模块,shellcode汇编模块,shellcode多态模块和PE文件生成模块。压缩模块压缩PE文件; Shellcode组装模块将压缩后的PE文件,PE文件执行模块和标识字符串组装成shellcode;多态变形模块对shellcode进行变形和加密,然后对代码进行解密。集成到shellcode中,设置入口点;最终,PE文件生成模块基于变形的shellcode生成新的PE文件。第一部分在加固的PE文件运行时执行,而与第二部分无关。第二部分将第一部分封装为数据并加固PE文件。该系统由压缩模块,多态模块,shellcode汇编模块,PE文件生成模块和PE文件执行模块组成。目的是压缩和变形源PE文件,并将其构造为新的PE文件。流程分类步骤:(1)压缩模块负责压缩原始PE文件,以减少原始PE文件的体积,并起到一定的作用。混乱效果;压缩源PE文件和PE文件执行模块(例如API初始化模块,解压缩模块等)通过Shellcode组合成Shellcode代码,可以直接在内存中执行; (2)多态变形模块主要是生成的shellcode是多态的。系统的多态模块主要采用Tapion多态引擎。 (3)PE文件生成模块的主要功能是封装变形的shellcode和解密代码以生成新的PE。文件。 3.3模块功能系统共五个模块,PE文件压缩模块,Shellcode汇编模块,多态变形模块,PE文件生成模块和PE文件执行模块。系统每个模块的数据流程图如图3所示。(1)PE文件压缩模块:EXE文件由Microsoft的FCI/FDI库压缩。 FCI(文件压缩接口)和FDI(文件解压缩接口)是Microsoft提供的用于压缩和解压缩文件的通用库和接口。它们基于Windows 7,WinNT,Win2000,WinXP和其他Windows版本的操作系统。两者都提供界面,多功能性和性能,以满足我们对文件压缩的要求。 (2)Shellcode汇编模块:压缩后的源PE文件(.cab文件),PE文件执行模块代码以及每个标识符(主要用于装载PE时的功能定位)是根据某些规则进行汇编的。形成一个shellcode。 (3)多态变形模块:Tapion用作多态变形引擎,可对Shellcode执行多态。多态引擎变形后,每次生成的解密程序具有不同的特性。首先,原始Shellcode被加密。加密使用多态XOR方法,即,每次生成不同的随机数时,都会对Shell代码的XOR进行XOR。其次,解密码是多态的并且受到保护,使得每个生成的解密码具有不同的特性。最后,将解密的代码与加密的shellcode集成在一起,并设置入口点以生成新的shellcode。 (4)PE文件生成模块:系统目标是安全地增强PE文件,因此最终将转换Transformed Shellcode。它与编译器组装在一起,shellcode被写入C或C ++源文件中的字符串变量,然后C或C ++源文件被单独的编译器编译和链接,并生成一个新的PE文件。 (5)PE文件执行模块:可以直接在内存中执行,主要负责PE文件的解压缩和动态加载。它由三个子模块,API初始化模块,PE文件解压缩模块和PE文件加载模块组成。 API初始化模块:为了编写通用的Shellcode,Shellcode在其进程空间中调用某些API函数,因此您需要动态定位这些Windows系统随附的API函数。 API函数存储在一些动态链接库中,而定位API函数主要使用GetProcAddress和LoadLibraryA函数。 LoadLibrary函数用于动态加载dll文件,而GetProcAddress函数用于从加载的dll文件获取API函数的地址。 GetProcAddress和LoadLibraryA函数的地址存储在kernel32.dll模块的导出表中。因此,在查找这两个函数的地址之前,必须首先找到kernel32.dll的地址。定位kernel32.dll,并获取GetProcAddress和LoadLibraryA地址。PE文件解压缩模块:在运行EXE Shell之后,首先对压缩的PE文件进行解压缩。解压程序必须在PE文件的动态加载模块之前获得控制权。解压缩完成后,控件将返回到PE文件加载模块。模块中的加载器加载解压缩的源PE文件。使用Windows提供的FDI接口解压缩EXE文件。图2加固PE文件加载模块后的PE文件结构图:压缩源PE文件后,将其存储为Shellcode的一部分。多态转换后,shellcode存储在新的PE文件中,即新PE文件的代码。源PE文件嵌套在该段内。为了在代码段中加载源PE文件,您需要将PE文件加载模块添加到shellcode中,而不是动态加载源PE文件。

4性能分析该安全加固系统应具有以下功能:

(1)可以对二进制可执行程序进行安全加固,安全加固后的二进制可执行程序可以在每个操作系统下正常运行,体积变化不大,增加了反向分析的难度; (2)可以实现二进制可执行程序的压缩和解压,压缩解压后程序可以正常运行; (3)PE文件加载模块可以动态加载PE文件,并且PE文件加载模块可以位于不同的主机中。程序中宿主程序的加载应具有良好的通用性; (4)使用的多态模块可以使shellcode多态化,以便重新生成的PE文件具有许多不同的形式。 4.1测试过程为了验证该安全加固系统的性能,实验环境如表1所示。系统操作步骤:(1)选择需要代表性的软件(包括通用软件和恶意软件),记录其大小。该软件; (2)使用此安全加固系统变形软件,变形后记录体积Size,并检查变形软件是否正常运行。选择morph配置,其中garage_size表示垃圾指令系数,取值范围为05或R。05表示插入的垃圾指令的大小,0表示不插入垃圾指令,R表示随机生成垃圾指令系数。 do_jumps选项指示在插入垃圾指令时是否插入指令跳转。选择需要进行安全加固的PE文件,并生成新的PE文件名;单击开始按钮,变形完成后将弹出一个消息框,您可以在当前目录中看到它。生成的shellcode文件和.c文件;编译由vs2010附带的编译器编译的.c文件,最后生成一个新的PE文件。 (3)使用系统中安装的防病毒软件主动检测并杀死变形的恶意软件,并记录检测结果。4.2测试结果该安全加固系统的测试主要分为两部分。第一个主要用于验证系统性能,主要包括比较增强前后程序的音量变化,以及增强后程序在每个操作系统下能否正常运行。测试结果如表2所示。通常,防病毒软件使用静态和动态分析的组合来分析恶意软件。为了验证此加固系统的有效性,对一些易于被防病毒软件检测到的恶意代码进行了加固。如果已加固,则不再使用防病毒软件。提示为恶意软件,即防病毒软件无法分析恶意软件的行为,表示加固有效。测试结果如表3所示。表2表明,经过系统加固的软件可以在操作系统下正常运行,并且其体积没有太大变化,表明该安全加固系统具有良好的通用性和稳定性。表3显示,经过强化后,恶意代码可以逃脱主流杀毒软件的杀戮。强化的二进制程序不仅增加了静态分析的难度。

5结论

基于人脸识别和移动数字证书认证系统的异地身份认证解决方案是将生物特征认证,数字证书认证,移动身份认证和其他身份认证方法相结合,以创新移动互联网个人身份认证服务。模式,管理模式和业务模型是面向公众的移动应用程序的大胆尝试和突破。目前,该解决方案已被最初用于个人查询信用报告中。将来,面对大量的移动应用程序应用程序时,公众不必登录一次即可进行身份验证,并且可以通过带有摄像头的智能移动终端来利用个人生物特征和移动数字证书。该技术可以实现统一的身份认证,并实现一次完整的网络登录一次认证,大大简化了移动网络身份认证的过程,降低了公共移动网络身份认证的成本,并有助于减少在线欺诈,身份盗窃,个人隐私泄漏和信息。滥用行为会发生,并提供公共安全服务以构建安全,可信任且方便的移动网络环境

下一篇:计算机应用本科专业“网络编程”课程教学改革的探索

最新论文
以微课建设和应用促进中等职业学校教与学方式的变革研究
“互联网+”时代中基于自主模块选修的高职计算机基础课教学研究
关于现代汽车维修技术的现状及发展探讨
关于神经内科疾病并发急性呼吸衰竭的治疗分析
从空难事件探析影响管制安全的因素
探讨多媒体技术在高职有机化学教学中的实际应用
“互联网+”时代中基于自主模块选修的高职计算机基础课教学研究
中华传统文化在思想道德修养与法律基础中的效果评析
关于大学廉政文化的内涵界定及理论溯源
中华传统文化在思想道德修养与法律基础中的效果评析
探讨多媒体技术在高职有机化学教学中的实际应用
从《上海滩》读解上海音乐剧的创作与市场
热门论文
从水利建设的角度思考土地沙漠化的治理
分析小学二年级数学教学中的核心素养及其培养路径
进行小学五年级语文阅读教学的策略探究
小组合作学习模式在小学数学课中的运用
关于机械工程设计及其自动化发展趋势探讨
小学三年级教育中数学教学方法探讨
以马鞍山市服务平台建设为例解析支持中小企业发展的公共服务平台
交通碳税对我国碳排放、社会福利及税收收入的影响研究
关于优化建筑施工技术的措施分析
交通碳税对我国碳排放、社会福利及税收收入的影响研究
关于中职学校计算机基础课的分层教学探究
教育学毕业论文题目(写作参考148个)
关于医患纠纷中患方的社会心理透视与制度调适
热门标签
日期归档
2019年10月
2019年09月