20145233计算机病毒实践十
20145233计算机病毒实践10之动静态分析结合
代码9-3.exe动静分析
这个程序导入了几个DLL
-
首先使用PEiD来查看DLL但是查到的是不完整的DLL
-
再次打开上周所学到IDA的来分析这个程序所含的另外两个DLL,一共6个
-
先打开imports,再打开loadlibrary
-
调用DLL3.dll
三个DLL的基地址都为多少
- 首先还是使用PEiD来打开三个DLL来看,发现这三个的基地址都是一样的
*
-
再次使用OlyDebug调试打开
-
单击上面的M可以看到1和2的基地址(注意这里每台计算机得到的基地址可能不同)
-
在IDA中找到DLL3的位置,在OD中设置断点,可以得到OD中DLL3的基地址
调用DLL1中一个导入函数
-
这个导入函数做了什么事情
- 使用ctrl+x可以看到交叉引用,来分析这个函数干了什么事情
- 打印函数
- 可以确定这个dll1print函数的作用就是获取当前进程的pid并打印出来
- 调用writefile函数,文件名是什么
- 通过IDA我们可以知道,将信息写入到一个名为temp.txt的文件中
- 通过IDA我们可以知道,将信息写入到一个名为temp.txt的文件中
程序调用NetScheduleJobADD
-
本次依旧有使用到msdn,我查找了什么是MSDN(但是找不到视频中的那个分析)?
- 这是微软公司面向软件开发者的一种版本。MSDN 涵盖了所有的可以被开发扩充的平台和应用程序,因此如微软公司的百科全书 Encarta,或者是各种游戏,是不包括在MSDN 之内的,因为这些产品直接面向最终用户,没有进行程序开发的必要
- MSDN版是属于测试版的系统,MSDN的意思是Microsoft Developer Network,也就是微软的软件开发伙伴论坛,一般软件即将发售的时候微软都会提供一个测试版给内部的技术人员、开发人员进行测试,当然并不是所有的人 都能得到这个版本的,只有微软比较信赖的开发者或技术人员才能得到。然后这些版本会通过各种途径泄漏出来,这就是我们常见的MSDN版,MSDN版因为还 是属于测试版,所以一般用户如果只是尝鲜的话可以试试,不建议长期使用
-
这是我在视频中截出来关于分析msdn的图片
-
打开dll2print,发现其于dll1print很相似,也是调用了一个printf函数打印一个mystery data,打印的内容是createfilea的返回值
-
DLL2return一个值到eax
-
写入一个网址
-
查看dll3print,其结构与1、2类似,mystery data中的内容存放在widecharstr中
-
DLL3转换一个字符并ping上面网址
-
查看msdn可以得知该函数的作用是将多字节的形式转化为宽字符的形式,这样dll3print中打印的mystery data的内容其实就是该网址在内存中所存放的位置地址
-
Dll1和2的mystery data在之前已经分析过了,就是打印存贮地址信息
-
首先选择structures,在里面点击ins键(我开始还找了好久)
-
打开后,单击search,输入AT_INFO,并进行配置
如何将DLL2加载到IDA中,并与OD中加载的地址匹配
- 重新导入DLL2的时候,选择下面的一个按钮,将Dll2.dll拖入到IDA中选择manual load手动加载
- 地址都为340000
- 注意IDA中为341000,因为对应OD中dll2代码段的位置。这样地址就得到了匹配
- 最后可以使得两个加载的地址一样