学习笔记-第六章 恶意代码分析实战
第六章
1.全局变量,局部变量。 全局变量初始化时为正值,局部变量为负值
2.反汇编算术操作
3.识别if语句。 jnz如果不相等跳转,jz相等跳转
4.for循环,while循环
5.函数调用约定。
6.switch语句。俩种形式,一种if语句,第二种跳转表
7.数组,结构体
8.链表遍历
课后作业
本章实验的目标是帮助你通过分析代码结构来理解一个程序的总体功能。每一个实验将指导你发现和分析一个新的代码结构。每一个实验在前一个基础上构建,因此通过四种结构创建了一个复杂的恶意代码片段。一旦你完成了这个实验所需的工作,你应该能够挡在恶意代码中遇到它们时,更容易地识别这些单独的结构。
Lab 6-1
在这个实验中,你将分析在文件Lab06-01.exe中发现的恶意代码。
问题
1.由main函数调用的唯一子过程中发现的主要代码结构是什么?
if判断,判断调用sub_401000,之后局部变量是否变化
2.位于0x40105F的子过程是什么?
打印输入
3.这个程序的目的是什么?
判断当前网络状态
Lab 6-2
在这个实验中,你将分析在文件Lab06-02.exe中发现的恶意代码。
问题
1.main函数调用的第一个子过程执行了什么操作
先判断网络连接状况
2.位于0x40117F的子过程是什么?
打印字符串
3.被main函数调用的第二个子过程做了什么?
打开网页去访问网站
4.在这个子过程中使用了什么类型的代码结构?
switch case
5.在这个程序中有任何基于网络里的指示吗?
访问网站
6.这个恶意代码的目的是什么?
访问恶意网站
Lab 6-3
在这个实验中,我们会分析在文件Lab06-03.exe中发现的恶意代码
问题
1.比较在main函数与实验6-2的main函数的调用,从main中调用的新的函数是什么?
sub_401130
2.这个新的函数使用的是什么?
修改注册表,复制文件,删除文件,
3.这个函数包含的主要代码结构是什么?
switch case
4.这个函数能够做什么?
修改注册表,复制文件,删除文件,
5.在这个恶意代码中有什么本地特征吗?
会在 temp目录下新建一个cc.exe,修改注册表项
6.这个恶意代码的目的是什么?
私自下载程序,并执行,删除,设置自启动。
Lab 6-4
在这个实验中,我们会分析在文件Lab06-04.exe中发现的恶意代码。
问题
1.在实验6-3和6-4的main函数中调用之间的区别是什么?
判断网络特征的的时候压栈0x0C H
2.什么新的代码结构已经被添加到main中?
for循环
3.这个实验的解析HTML的函数和前面实验中那些有什么区别?
有一个全局变量
4.这个程序会运行多久?(假设它已经连接到互联网。)
1440*60s
5.在这个恶意代码中有什么新的基于网络的迹象吗?
动态user agent到网站上下载软件去执行,并修改自启动,删除
6.这个恶意代码的目的是什么?
如果有网络,尝试1440次,直到下载成功,下载软件去执行,并修改自启动,删除