基于逆向工程的计算机取证方案讨论基于逆向工程的计算机取证方案讨论 摘 要:自从互联网问世的几十年来,带动了计算机普及的同时,同时也导致了计算机犯罪案件的大幅上升。计算机中的电子证据由于其虚拟性,易修改、易丢失等特性,加之操作系统、程序本身的封装限制,因此造成了计算机犯罪中取证的困难。近几年来,由于逆向工程方案的问世,一种崭新的程序测试方法也随之诞生。本文利用逆向工程方面的知识,探讨该项技术方案在计算机取证中的应用,以求能降低计算机犯罪中取证的困难度。 关键词:逆向工程;计算机取证;网络犯罪 中图分类号:TP391.7 当前,网络空间如今在以高速的节奏进展壮大,几乎每天都有计算机被用于从事犯罪活动。随着计算机网络、硬件和软件的构成越来越复杂,加之其与传统证据的勘验、检查方法以及取证对象等的不同,也增加了将其用于犯罪活动的可能性与取证的难度。由于在软件测试中,黑盒测试方法无法获知源程序是否被篡改,犯罪分子有可能利用程序的封装性所造成的取证难度加大而隐藏了犯罪证据。逆向工程可从本质上分析程序代码结构以及程序的运行流程,从而得到犯罪分子的犯罪证据。 1 逆向工程简介 计算机程序一般是用 C、C++等高级语言编写后,由编译器编译成机器语言形式的目标文件后,再经过链接过程最终生成可执行的程序。逆向工程(Reverse Engineering)是将某封装好的可执行程序还原成高级语言、汇编语言或是二进制代码的一种技术。一般源程序与逆向分析后的结果存在不同,运行的结果虽然相同,可是代码会发生很大变化,这就需要分析侦查人员对软件测试、计算机低级语言甚至程序运行原理有着深刻的认识和理解。 当前逆向工程常见的分析软件分为两大类:动态反汇编分析以及静态反汇编分析软件。在“动态分析”过程中,调试器加载程序,并以调试模式运行,分析者能够在程序的执行过程中获知程序运行的流程以及最终的结果。可是实际的分析中,很多情况并不能实际的运行目标程序,比如某一个无法单独运行的模块、恶意代码、硬件环境与程序不兼容而导致无法运行……而所谓的“静态分析”,是相对于“动态分析”而言的。调试工具 Ollydbg 具有动态分析的功能,可是其反汇编辅助分析功能有限,因此一般使用功能极为强大的反汇编静态分析工具 IDA Pro。 2 利用逆向技术分析计算机物证实例 本文以某个已经捆绑了一个隐藏的未知程序的可执行程序为例,此已知的可执行程序为一个常见的应用程序,并无...