恶意代码分析实战Lab6
恶意代码分析实战Lab6
Lab6-1
1.由main函数调用的唯一子过程中发现的主要代码结构是什么?
静态分析
InternetGetConnectedState函数
https://docs.microsoft.com/en-us/windows/win32/api/wininet/nf-wininet-internetgetconnectedstate
获取系统网络链接状态
返回值
有网络链接返回TRUE,否则返回FALSE
调用的唯一子过程
2.位于Ox40105F的子过程是什么?
调用InternetGetConnectedState返回值在eax通过cmp和jz实现if分支
3.这个程序的目的是什么?
目的是判断是否有网络链接
Lab6-2
1.main函数调用的第一个子过程执行了什么操作?
分析
strings查看
peid查看
- InternetOpenUrlA打开一个句柄
- InternetCloseHandle关闭一个句柄
- InternetReadFile通过InternetOpenUrlA打开的句柄中获取数据
- InternetGetconnectedState网络链接状态
- InternetOpen初始化WININET.dll
dns解析网址然后请求
第一个子过程进行的操作
进入sub_401000函数
连接成功和连接失败
2.位于0x40117F的子过程是什么?
看到熟悉的 push offset aSuccessParsedC ; “Success: Parsed command is %c\n"基本可以断定这是一个printf
3.被main函数调用的第二个子过程做了什么?
打开sub_401040
判断读取的前4个字符是否位<!–(html注释)
4.在这个子过程中使用了什么类型的代码结构?
buffer是0x200=512,将buffer转为数组
5.在这个程序中有任何基于网络的指示吗?
第一个 InternetExplorer7.5/pma作为http 的user-agent
第二个是下载了 http://www.practicalmalwareanalysis.com/cc.htm这个网页
6.这个恶意代码的目的是什么?
main的两个函数知道他是先判断是否有可用网络,有就链接网址并下载,下载成功就解析然后返回给mian,mian函数看解析成功了就打印一条信息然后就sleep了
Lab6-3
1.比较在main函数与实验6-2的main函数的调用。从main中调用的新的函数是什么?
静态分析
有注册表自启动
程序会创建目录
前几个函数都在lab2中出现了、新函数sub_401130
2.这个新的函数使用的参数是什么?
进入这个函数发现有两个正数即有两个参数
第一个是之前的得到的字符串var_8如果还记得话
第二个是程序本身名字,看argv知道而且给出了注释
3.这个函数包含的主要代码结构是什么?
switch语句
4.这个函数能够做什么?
根据给的信息做指定的动作,一共六种情况下面五种还有一个是直接打印信息
Temp目录不存在则创建,存在则将cc.exe复制到此目录(IpExistingFileName源文件是当前程序)
将注册表中的Malware项中写入cc.exe每次程序启动都会执行
5.在这个恶意代码中有什么本地特征吗?
本地特征1
本地特征2
6.这个恶意代码的目的是什么?
本机特征下面两个字符串,可以推测可能写了个cc.exe并且还把他写到自启动项里面
.data:00407170 0000002E C Software\Microsoft\Windows\CurrentVersion\Run
.data:004071A0 0000000F C C:\Temp\cc.exe
Lab6-4
1.在实验6-3和6-4的main函数中的调用之间的区别是什么?
静态分析
strings查看
Internet Explorer 7.50、pma%d
动态user-agent,%d为数字
第一个401000还是检查网络,401040是解析HTTP,4012B5是printf,401150是switch
2.什么新的代码结构已经被添加到main中?
蓝色线从低部指向上面(循环)
计数器
循环结束自增操作
3.这个实验的解析HTML的函数和前面实验中的那些有什么区别?
查看sub_401040
比之前多了个正数(参数),将arg_0给eax后push,字符串push,然后调用printf
|
|
esc 查看arg_0来源
即每次循环user_agent都会变化
4.这个程序会运行多久?(假设它已经连接到互联网。)
程序循环1440次
60000毫秒1分钟,所以共运行1440分钟
5.在这个恶意代码中有什么新的基于网络的迹象吗?
动态user_agent
6.这个恶意代码的目的是什么?
首先判断是否有网络连接,无网络连接则退出、否则动态user_agent下载网页