恶意代码分析实战Lab1401

401000是典型的BASE64

4010BB:

发现这个函数就是调用了BASE64对字符串进行加密隐藏

4011A3:

然后根据v3的值是否为0:

根据msdn:

Downloads data into the Internet cache and returns the file name of the cache location for retrieving the bits.

HRESULT的返回有三种可能:
E_FAIL
The operation failed.
E_OUTOFMEMORY
The buffer length is invalid or there was insufficient memory to complete the operation.
S_OK
The operation succeeded.

下载失败时返回E_FAIL,当缓冲区长度不够时返回E_OUTOFMEMORY,成功返回S_OK

main:

这里给了我们动态调试,得到字符串名称的机会~

GetCurrentHwProfile:得到当前硬件设备环境的结构体指针

BOOL WINAPI GetCurrentHwProfile(
  _Out_ LPHW_PROFILE_INFO lpHwProfileInfo
);

看到了这个:


GetUserName:取得当前用户的名字

来单步调试一下看这些API返回了什么

最终的数据块都在堆栈里,这个样子

4011A3下断点分析:



一般都是F8到call的前后,注意函数参数,以及堆栈里的返回值


代码分析完了,问题一个都回答不来。。。直接看书后的题解了

问题1:代码使用了哪些网络库?它们的优势是什么?

程序中包含URLDownloadToCacheFile函数,其使用的是COM接口。当恶意代码使用COM接口时,HTTP请求中的大部分内容都来自Windows内部,因此无法有效地使用网络特征进行针对性检测。

问题2:用于构建网络信令的信息源元素是什么,什么样的条件会引起信令的改变

信息源元素是主机GUID与用户名的一部分。GUID对于任何主机操作系统都是唯一的,用户名会根据登陆系统的用户而改变。


问题3:为什么攻击者可能对嵌入在网络信令中的信息感兴趣

跟踪运行下载器的特定主机以及特定用户

问题4:是否使用了标准的Base64编码?

不是标准的~

填充的时候不是 “=”而是 “a”

问题5:恶意代码的主要目的是什么?

作为控手的框架,可以用来下载并且运行其他的代码

问题6:使用网络特征可能有效探测到恶意代码通信中的什么元素?

域名字符串、base64、PNG文件名为单个字符

字符串在连接的时候有冒号和减号作为分隔符

从BASE64的原理可知:3个字符转换为4个,正好原字符串中冒号":"都出现在3的倍数的位置

所以,4的倍数的位置前几个都是6!

问题7:分析者尝试为这个恶意代码开发这个特征时,可能会犯什么错误


问题8:哪些特征集可能检测到这个恶意代码(以及新的变种)?

文中分析的细节都是对的~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值