20145326蔡馨熤《计算机病毒》——高级静态分析

20145326蔡馨熤《计算机病毒》——高级静态分析

尝试使用IDA PRO分析文件lab05-01.dll,回答如下问题:

1.PSLIST导出函数做了什么?

  • 首先在view中选择exports窗口,然后找到PSLIST导出函数。

  • 双击PSLIST,然后按空格键,转换为图形模式,这样的话,观察更直观。

  • 双击第一个call语句。看看有什么发现。如图所示。

  • dwplatformid与2进行比较,看现在是不是处于WIN32-NT的这个平台。
  • majorversion与5进行比较, majorversion的值如果大于5的话,那说明它是Vista及以上的操作系统。 majorversion的值如果小于等于5的话,那说明它是Vista以下的操作系统。(根据MSDN得知)
  • 《Microsoft Developer Network》(简称MSDN),是微软的一个期刊产品,专门介绍各种编程技巧。同时它也是独立于Microsoft Visual Studio制作的唯一帮助。目前大部分文章存放在MSDN的网站上,任何人可以免费参阅。
  • 再往下看,点击左边那个call语句。

  • 发现里面有个叫CreateToolhelp32Snapshot的API函数。这个API函数可以获取我们系统中的进程列表。它一般是与Process32First和Process32Next这样不断的循环,从而获取我们系统中的进程信息。
  • 再看看右边的call,我们同样也发现了这样一个API函数,用于获取我们系统中的进程信息。

  • 分析到这里呢,我们可以得知这个PSLIST导出函数,可能会通过网络,发送我们的进程列表,或者寻找我们这个列表中某一个特定的进程名,然后进行下一步操作。

2.使用图模式绘制出sub_10004E79的交叉引用图。当进入这个函数时,哪个API可能被调用?仅仅基于这些api函数,你可以如何重命名这个函数?

  • 在Function name栏中找到sub_10004E79。

  • 然后进行如下操作:

  • 得到sub_10004E79的交叉引用图。

  • 我觉得获得系统默认语言的这个函数很重要吧。
  • send这个函数也很重要吧。像打印等的函数就不那么重要了。
  • 于是进行如下修改:

  • 修改后,我们可以非常直观的了解到这个函数的功能是什么。

3.DLLMAIN直接调用了多少个WINDOWS API?多少个深度为2时被调用?

  • 先找到DLLMAIN。然后进行如下操作,将深度设为2。

  • 它的交叉引用图很复杂啊。DllMain直接调用了4个API,有31个深度为2时被调用。

4.尝试使用MSDN页面的socket和IDA中的命名符号常量,使得0x10001701处对socket调用的参数更有意义。

  • 先按下“G”键,跳到这个位置去。
  • 可以发现调用socket函数之前,压栈了3个参数,这里要注意,2是第一个参数,1是第二个参数,6是第三个参数。

  • 通过MSDN页面,找到每个参数代表的具体含义。

  • 然后进行如下操作,将参数转换。

5.搜索in指令(OxED)的使用。这个指令和一个魔术字符串VMXh用来进行Vmware检测。这在这个恶意代码中被使用了吗?使用对执行in指令函数的交叉引用,能发现进一步检测vmware的证据吗?

  • 先查找“0xED”。

  • 找到in语句。然后双击。

  • 在这里我们可以发现一个字符串,564D5868h。这代表什么意思呢?我们可以用右键将它转换为一个字符。于是VMXh出现了。

  • 按一下空格,切换到图形界面。
  • 在开头可以看到一个sub_10006196,交叉引用一下。

  • 可以发现有三处交叉引用调用了这个函数。看看第一个。

  • 下面又看见了一个字符串:Found virtual machine,install cancel。

  • 于是可以说这个函数就是判断目前我们是否在VMware虚拟机中进行操作。

在这次实践的过程中,我一直在想一个问题。就是如何在没有这些问题的提示下,使用IDAPro对一个恶意代码进行高级静态分析。必须得加强练习啊,毕竟熟能生巧,只有实践多了,思维能力和分析能力才会提高。除了这些,我认为汇编和反汇编也是很重要的,工具交互使用的能力也需要提高。在接下来的学习中,我需要查漏补缺,以此来不断提高。

时间: 2024-10-01 04:35:45

20145326蔡馨熤《计算机病毒》——高级静态分析的相关文章

20145326蔡馨熤《计算机病毒》——代码的动静态分析结合

20145326蔡馨熤<计算机病毒>--代码的动静态分析结合 尝试使用各种动静态工具,对代码9-3.exe进行分析,回答如下问题: 该程序导入了哪些DLL? 先打开PEiD工具查看样例代码.这里发现了4个dll被调用. 另外还有一些dll文件呢,它是在程序运行的时候加载的.我们打开IDA Pro来载入程序进行分析.一般来说,在程序的运行中静态加载的话,会用到LoadLibrary这个函数.我们找找看. 在imports中找到后,双击,然后选中地址交叉引用.type对应的是p的话,说明是函数调用

20145326蔡馨熤《计算机病毒》——静态分析(2)

20145326蔡馨熤<计算机病毒>--静态分析(2) 基于样例代码lab01-02.exe. 相比于VirusTotal,我更喜欢用VirScan,因为前者太慢了.我们可以从报告中获得一些常用的杀毒软件病毒库对于这个文件的比对结果,从而判断是否是病毒文件. lab01-02.exe的扫描报告如下,点击"行为分析"看看. 利用PEiD查壳.结果显示的是"什么都没有",这个时候有两个办法解决.一是选择"深度扫描",二是点击"S

20145326蔡馨熤《计算机病毒》——静态分析(1)

20145326蔡馨熤<计算机病毒>--静态分析(1) 基于样例代码lab01-01.exe和lab01-01.dll. 相比于VirusTotal,我更喜欢用VirScan,因为前者太慢了.我们可以从报告中获得一些常用的杀毒软件病毒库对于这个文件的比对结果,从而判断是否是病毒文件. lab01-01.exe的扫描报告如下,点击"行为分析"看看. lab01-01.dll的扫描报告如下.点击"行为分析"看看. lab01-01.exe和lab01-01.

20145326蔡馨熤《计算机病毒》——静态分析(3)

20145326蔡馨熤<计算机病毒>--静态分析(3) 基于样例代码lab01-03.exe与lab01-04.exe 相比于VirusTotal,我更喜欢用VirScan,因为前者太慢了.我们可以从报告中获得一些常用的杀毒软件病毒库对于这个文件的比对结果,从而判断是否是病毒文件. lab01-03.exe的扫描报告如下,点击"行为分析"看看. lab01-04.exe的扫描报告如下,点击"行为分析"看看. 利用PEiD进行查壳. lab01-03.ex

20145326蔡馨熤《计算机病毒》——动态分析(1)

20145326蔡馨熤<计算机病毒>--动态分析(1) 基于样例代码lab03-01.exe 找出这个恶意代码的导入函数和字符串列表. 说到导入函数,当然先想到静态分析里面的Dependency Walker工具. 不过,把恶意代码导入Dependency Walker工具的时候,感觉应该加了壳.所以用PEiD进行查壳. 再用脱壳工具进行脱壳,发现竟然脱壳失败. 再利用PEview查看,发现最开始都是乱码,看来的确加了壳.不过我们依旧可以看到有一些路径信息.还有一个网址.一个exe程序名(可能

20145326蔡馨熤《网络对抗》——恶意代码伪装技术实践

20145326蔡馨熤<网络对抗>--恶意代码伪装技术实践 一.木马化正常软件 基于之前的后门程序,做一些修改.再将修改后的程序的名字改成一个正常软件的名字,蒙蔽用户的眼睛.哈哈哈,瞬间觉得自己好阴险.因为之前安装过Systracer这个工具,这次就把后门程序的名字改为"Systracer安装程序". 然后双击运行"Systracer安装程序.exe".并且成功回连到Kali. 但是有个不足之处,就是程序运行后,会弹出一个类似命令行的"黑框&q

20145326蔡馨熤《网络对抗》——MSF基础应用

20145326蔡馨熤<网络对抗>--MSF基础应用 实验后回答问题 用自己的话解释什么是exploit,payload,encode. exploit:起运输的作用,将数据传输到对方主机. payload:其实就是指装载的"具体内容".就相当于shellcode一样. encode:对需要传输的文件进行编码,使其达到免杀效果. 实验总结与体会 通过这次MSF基础应用的实验.我对MSF里面包括的6个模块都有了一定的认识,先是exploit模块,也就是我们说的渗透模块,包括主

20145326蔡馨熤《信息安全系统设计基础》第1周学习总结

20145326蔡馨熤<信息安全系统设计基础>第1周学习总结 教材学习内容总结: 一.Linux基础1.环境登录无需密码自动登录,系统用户名shiyanlou2.环境介绍本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面上的程序:LX终端(LXTerminal): Linux命令行终端,打开后会进入Bash环境,可以使用Linux命令GVim:非常好用的编辑器,最简单的用法可以参考课程Vim编辑器3.环境使用使用GVim编辑器输入实验所需的代码及文件,使用LX终端(LXTer

20145326蔡馨熤《信息安全系统设计基础》第14周学习总结

20145326蔡馨熤<信息安全系统设计基础>第14周学习总结 教材内容总结(过多内容不赘述) 1.虚拟存储器的三个重要能力: 它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,高效的使用了主存. 它为每个进程提供了一致的地址空间,从而简化了存储器管理. 它保护了每个进程的地址空间不被其他进程破坏. 2.虚拟存储器是对主存的一个抽象. 3.支持虚拟存储器的处理器通过使用一种叫做虚拟寻址的间接形式来引用主存,处理器产