在计算机犯罪案件中,经常涉及到各类木马程序,能否找到木马程序并确定木马程序的功能,是我们在办理此类案件中必须要重视的。
木马制作者为了使木马通过*毒软件的检测,增加代码阅读难度,经常会对木马程序代码进行代码混淆、加密、压缩等处理。直接对这种经过复杂化处理的木马文件进行分析阅读往往不可行,必须经过缜密细致的逆向处理,将复杂代码简单化,逐步进行解密、调试,才可以将木马的功能分析出来。
对经过混淆处理的复杂木马程序,可以通过以下五个步骤进行逆向分析处理: 代码结构整理、混淆字段替换、关键节点梳理、运行环境搭建、本地复现分析。
1 、代码结构整理。
经过混淆处理的木马程序,其代码格式被打乱。利用代码编辑工具,经过查找替换处理,将结构混乱的代码初步格式化,利于下一步的分析处理。对于经过了加密、压缩处理的代码,需要针对其加密、压缩方法,对其进行解密、解压。
2 、混淆字段替换。
木马制作者常采用代码混淆技术,以通过*毒软件检验。
目前常用的一种代码混淆方法是将代码中关键字段( 如类名、变量名、函数名等) 的英文
字母转换为 ASCII 扩展字符。对这些难以处理的混淆代码进行替换,并以易读易懂的方式重新命名,可以极大地提高代码可读性。
有些木马制作者为了进一步增加代码阅读难度,会在代码中插入大量垃圾注释,可以使用正则表达式去除掉这些不需要的部分。
3 、关键节点梳理。
木马程序中的关键节点,一般是指函数调用、return 返回值、参数传递、输入、输出、循环语句、判断语句等代码位置。在此步骤中,对这些关键节点进行梳理,厘清各函数的调用关系、函数功能、参数含义。
4 、运行环境搭建
为了达到本地调试的目的,需要搭建好木马所需的运行环境。
木马文件为 PHP 格式的,可以使用一些集成化环境配置工具( 例如 php Study、XCMPP、MAMP 等软件) 快捷便利地将运行环境搭建起来。木马文件为 ASP 格式的,需安装配置 IIS 服务。配置过程中需注意使用的服务类型、开启服务的端口等信息。
5 、本地复现分析。
运行环境搭建配置好后,将处理过的木马文件导入环境中,结合步骤“关键节点梳理”
,对木马文件手动调试分析。