免费论文查重: 大雅 万方 维普 turnitin paperpass

谈基于逆向工程计算机取证方案

最后更新时间:2024-01-30 作者:用户投稿原创标记本站原创 点赞:5361 浏览:17733
论文导读:。计算机中的电子证据由于其虚拟性,易修改、易丢失等特性,加之操作系统、程序本身的封装限制,所以造成了计算机犯罪中取证的困难。近几年来,由于逆向工程方案的问世,一种崭新的基于逆向工程的计算机取证方案相关论文由www.7ctime.com收集,如需论文.程序测试策略也随之诞生。本文利用逆向工程方面的知
摘 要:自从互联网问世的几十年来,带动了计算机普及的同时,同时也导致了计算机犯罪案件的大幅上升。计算机中的电子证据由于其虚拟性,易修改、易丢失等特性,加之操作系统、程序本身的封装限制,所以造成了计算机犯罪中取证的困难。近几年来,由于逆向工程方案的问世,一种崭新的基于逆向工程的计算机取证方案相关论文由www.7ctime.com收集,如需论文.程序测试策略也随之诞生。本文利用逆向工程方面的知识,探讨该项技术方案在计算机取证中的应用,以求能降低计算机犯罪中取证的困难度。
关键词:逆向工程;计算机取证;网络犯罪
中图分类号:TP391.7
当前,网络空间如今在以高速的节奏发展壮大,几乎每天都有计算机被用于从事犯罪活动。随着计算机网络、硬件和软件的构成越来越复杂,加之其与传统证据的勘验、检查策略以及取证对象等的不同,也增加了将其用于犯罪活动的可能性与取证的难度。由于在软件测试中,黑盒测试策略无法获知源程序是否被篡改,犯罪分子有可能利用程序的封装性所造成的取证难度加大而隐藏了犯罪证据。逆向工程可从本质上分析程序代码结构以及程序的运转流程,从而得到犯罪分子的犯罪证据。
1 逆向工程简介
计算机程序一般是用C、C++等高级语言编写后,由编译器编译成机器语言形式的目标文件后,再通过链接过程最终生成可执行的程序。逆向工程(Reverse Engineering)是将某封装好的可执行程序还原成高级语言、汇编语言或是二进制代码的一种技术。通常源程序与逆向分析后的结果存在不同,运转的结果虽然相同,但是代码会发生很大变化,这就需要分析侦查人员对软件测试、计算机低级语言甚至程序运转原理有着深刻的认识和理解。
目前逆向工程常用的分析软件分为两大类:动态反汇编分析以及静态反汇编分析软件。在“动态分析”过程中,调试器加载程序,并以调试模式运转,分析者可以在程序的执行过程中获知程序运转的流程以及最终的结果。但是实际的分析中,很多情况并不能实际的运转目标程序,比如某一个无法单独运转的模块、恶意代码、硬件环境与程序不兼容而导致无法运转……而所谓的“静态分析”,是相对于“动态分析”而言的。调试工具Ollydbg具有动态分析的功能,但是其反汇编辅助分析功能有限,所以一般使用功能极为强大的反汇编静态分析工具IDA Pro。
2 利用逆向技术分析计算机物证实例
本文以某个已经捆绑了一个隐藏的未知程序的可执行程序为例,此已知的可执行程序为一个常见的应用程序,并无危害,但是其内部捆绑了一个未知的程序,普通的黑盒测试中是无法判断其危害性,进而也无法取得这种情况下的电子物证。下面通过逆向技术的分析,来判定这个未知程序的作用以及取得该电子物证。
实验环境为Windows 8.1下的VMWare虚拟机配置的Windows XP SP3的操作系统环境。某未知程序,其运转后效果为系统提供的cmd.exe程序,但是由于其被附加了另一个未知程序,不能判定该程序类型、功能,所以我们利用互式反编译工具IDA Pro来进行分析。图1为使用IDA Pro打开该程序后的界面。
图1 使用IDA Pro打开该程序后的界面
从图1可以得出该文件是一个Win32 PE文件。Win32 PE(Protable Execute)文件名称为可移植执行文件,日常所用的exe、com、sys等后缀名的文件都属于PE文件类型,该文件是windows系统上的程序文件,其有可能直接执行,也有可能以动态链接库(dll)的形式间接运转。我们在调试VC++开发的程序时,总是从main(或是WinMain)函数开始,实际上,在这两个函数被调用运转之前,已经有真正的入口函数被调用,通常入口函数是mainCRTStartup、wmainCRTStartup、WinMainCRTStartup以及wWinMainCRTStartup,具体情况和编译器的选项有关。用IDA Pro的程序树视图(图2)可以看到,IDA Pro已经把真正的入口函数部分隐藏,它会直接分析出WinMain函数所在位置并且直接显示出来,这对于分析人员进行逆向分析降低了一定的难度。
图2 IDA Pro的程序树视图
在windows绝大部分的程序调用中,实际上程序调用时会释放到临时变量中,载入内存,然后再运转程序。本文所用的程序也属于这种情况,所以分析时从CreateFile和WriteFile两个函数入手,详细分析出该程序具体实现的功能。
在IDA Pro的导入信息函数窗口(Imports)中,找到CreateFileA与WriteFileA函数,由于这两个函数总是成对出现,所以分析时只观察一个即可。列出所有CreateFileA被用引用过的窗口(图3)发现本程序共调用了4次CreateFile函数,说明其共创建了4份临时文件。
图3 列出所有CreateFileA被用引用过的窗口
查看用户变量文件夹,在运转q.exe之后,变量文件夹内产生了3个临时文件(图4)。
图4 运转q.exe之后,变量文件夹内产生了3个临时文件
也证明了该程序确实调用了4个CreateFile函数,第一个CreateFile函数创建了程序本身,后三个函数分别创建了q.exe,iexpoler.exe,svchsot.exe三个应用程序。现通过十六进制文本编辑器来分离其中的一部分程序。利用010edit编辑器打开q.exe文件,在识别的ASCII字符串中可发现MZ文件头,MZ文件头是PE文件类型的标志之一,这使得PE文件成为一个合法的DOS可执行文件。通过筛选几处MZ字符串,发现此程序是由两部分组合而成,将最后的MZ标识之后的所有数据都复制到记事本中,修改后缀名为exe,运转结果如图5所示:
图5 修改后缀名为exe后的运转结果结束,原程序是由cmd制约台程序与上述MessageBox程序捆绑组合而成。这里我们利用了IDA Pro分析了程序构造,以及利用了十六进制文本编辑器进行了程序的分离操作,论文导读:
同理也可引用到计算机取证分析中去。
3 结束语
计算机程序由于其具有封装的性质,一般在程序测试中,所用黑盒测试占了绝大部分。但是黑盒测试有其无法避开的缺点:黑盒测试一般只能用来测试程序的功能性、可用性是否完好,而无法判定一个程序的内部构造。若某程序封装了一个在表面看不出运转结果的程序段,那么在运转时,利用进程隐藏等技术,是可以静默地运转某段未知程序代码的,这就势必造成了一定的安全理由,同时在计算机犯罪事后取证中也造成了一定影响。利用逆向工程方面的知识,可以将一个程序完全“解剖”开来,与白盒测试相类似,这就解决了上述难题,相信随着逆向工程理论与技术的发展,一定会有更广阔的前景与用途。
参考文献:
[1]Frederic Lemieux.Investigating Cyber Security Threats:Exploring National Security and Law Enforcement Perspectives. Report GW-CSPRI-2011-2, April 7,2011.
[2]Markson Aigbodi,Karim Ouazzane, Daniel Mitchell.Defence in-depth for Cyber Security With Custom Anti-Virus Signature Definition.ISBN:978-0-9853484-3-5,201

3.SDIWC.

[3]Chris Eagle.The IDA Pro Book: The Unofficial Guide to the World’s Most Popular Disassembler[M].ISBN:978-1-59327-178-7,published by No Starch Press,2008.
作者简介:刘天悦(1989-),男,蒙古族,辽宁沈阳人,现为网络安全保卫学院硕士研究生,研究方向:信息安全及计算机犯罪侦查。
作者单位:中国人民大学,北京 10003基于逆向工程的计算机取证方案由专注毕业论文与职称论文的www.7ctime.com提供,转载请保留.8