恶意代码分析实战 Lab 1-3 习题笔记

Lab 1-3

问题

1.将Lab01-03.exe文件上传….(略)

解答: 略


2.是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果改文件被加壳,请就行脱壳,如果可能的话。

解答: 这个还是要用老方法看看

PEiD

这里没显示C++或者C什么的,虽然结果也没显示常见的UPX壳,但是无疑这个加壳了的,壳的名称叫做FSG

然后我们用Dependency Walker确认一下

DW

可以看到很少的导入函数,可以确认这是加壳了的了

然后我们开始尝试脱壳,因为这不是UPX的壳,所以我们就不能用UPX的工具来做了

我这里用了一个万能脱壳的工具,不知道哪个大神写的,这个可以脱壳(书中是说等学到手动脱壳的时候,再来脱壳,我们现在能脱先脱了再说)

脱壳

脱壳后

我们已经用这个工具脱壳完毕

有没有任何导入函数能够按时出这个程序的功能?如果是,是哪些导入函数,他们会告诉你什么?

解答: 这个我们还是按照老方法来

(因为书中并未脱壳,所以下面分析只是作者本人分析,有不正之处望指出)

脱壳后

第一个导入的库是MSVCRT.DLL,这是一个提供基础函数的库

msvcrt.dll是微软在windows操作系统中提供的C语言运行库执行文件(MicrosoftCRuntimeLibrary),其中提供了printf、malloc、strcpy等C语言库函数的具体运行实现,并且为使用C/C++(Vc)编绎的程序提供了初始化(如获取命令行参数)以及退出等功能

放大

放大之后,我们可以发现这些function基本都有点难懂的样子

__getmainargs 这个如果你有C语言的编程经验就好理解了,这是从stdin获取程序参数的函数,说明这个程序会从用户输入获得运行所必须的参数

_controlfp 这个函数从MSDN上的解释来说,是Get and set the floating-point control word.,翻译过来就是获取并设置浮点控制字,这个函数在MSDN中的定义是这样unsigned int _controlfp( unsigned int new , unsigned int mask );,对这个函数具体做什么感兴趣的同学可以点这里 -> _controlfp

_except_handler3 同样引用MSDN的说法,内部 CRT 函数。 由框架用于查找相应的异常处理程序,以处理当前异常,说明这个程序有一个自己的错误处理机制

__set_app_type 设置当前应用类型。,有这么几种方式,_UNKNOWN_APP 未知应用程序类型;_CONSOLE_APP 控制台 (命令行) 应用程序;_GUI_APP (GUI) Windows 应用程序。

__p_fmode 指向_fmode 全局变量的指针,它为文件 I/O 操作指定默认 文件提交模式。,这个函数只供内部调用。

__p_commande 这个函数MSDN里面没用文档化,根据上面那个的解释推理,这是指向commande全局变量的指针,也是只供内部调用(因为前面两个下划线)

_exit 这个就好理解了,是程序的退出函数的

_XcpFliter 这也是MSDN里面未文档化的函数,暂时用途不明

__p_initenv 这也是MSDN未文档化的函数,不过我们知道initenv函数是初始化环境变量的函数,那同理可得__p_initenv是指向initenv变量的指针,也是只供内部调用

_initterm 调用所有的静态构造的模块中是通过函数指针阵列枚举,依次调用每一个指针的一个简单的事情,按照文档的解释,这个编译器会帮你完成

__setusermatherr 指定用户提供的事务来处理算术错误,而不是_matherr事务。

_adjust_fdiv 这个也是未文档化的函数

上面的分析其实都是一些很少会用到的函数,这些带下划线的函数都是编译器自动生成的,但是在没有更多信息的时候,我们只能分析这些函数来了解程序想做什么

下面一个函数库是OLEAUT32.DLL

OLEAUT32.DLL

oleaut32.dll是对象链接与嵌入OLE相关文件,但是我们发现这个导入函数表函数名都是不明,然后这个就不分析了

下一个函数库是OLE32.DLL

ole.dll文件是链接和嵌入在应用程序中的对象的过程文件。它是用于编写和整合来自不同应用程序的数据在Windows作业系统的骨干部分。

OLE32.DLL

这个函数不太懂,不分析了

4.哪些基于主机或基于网络的迹象可以被用来确定这个恶意代码所感染的机器?

解答: 先去看看String里面有什么内容

String

发现并无什么值得注意的信息,而且字符串都显示乱码,说明可能这个程序不止一次加壳,但是我们用PEiD看的话会发现这个程序已经显示是C++

PEiD

所以现在我们可以看到的也就这些信息

本文完

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值