Lab 7-2
问题
1.这个程序如何完成持久化驻留?
解答: 我们可以先从静态分析开始,然后这里估计会用一下动态分析看看
我们会发现这个导入库OLE32.DLL
,然后导入了CoCreateInstance
, OleInitialize
, OleUninitialize
这三个函数,这三个函数不是很常见的样子,但是导入了肯定有他的作用,我们查查看
第一个函数CoCreateInstance
这个函数是这样的
看不懂,什么鬼,剩下两个函数看字面意思,一个是OleInitialize
也就是ole
初始话的,然后OleUninitialize
这个函数,是反初始话ole
的
然后剩下的两个DLL
并没有什么有价值的导入函数,第二DLL
甚至没有导入函数
然后还有这么几个导入DLL
没有识别出来
往后我们分析一下字符串看看,还是这个老套路
也没有什么有价值的字符串出现,然后书中那些个出现的函数,我是没发现,是不是因为在这个两个DLL
中没被识别出来
我试试用winxp
去运行看看,然后还是这个样子的
依旧找不到这个DLL
无法了,我们只好开始动态分析
直接点运行之后,就会跳出一个窗口,然后就开始连接这个网址
我们会发现这里,删除了一个键
已删除键 (1) 快照 A
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\MSHist012017090520170906]
然后新建了这么几个键
新添加键 (5) 快照 B
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Default HTML Editor]
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\WebBrowser]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Favorites]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\MSHist012017092620170927]
这个看样子的话,是将这个Default HTML Editor
设置成了Internet Explorer
,然后便是增加了一个\Toolbar\WebBrowser
,这个应该是浏览器的工具栏这里的位置,然后MenuOrder\Favorites
应该就是收藏夹
然后看这个得不出什么重要的结论,我们开始IDA
分析吧
这里的main
函数,一开始是先调用了OleInitialize
这个函数,然后这个函数的作用根据书中的介绍就是初始化COM
,然后便是一个判断jl
跳转,具体不懂的可以看看我的Lab 4
的博客
这里使用了test
之后然后再使用这个jl
跳转,这个其实就是判断两种情况的,具体的汇编原理分析我在Lab 4
里面写了,就是这么两种情况
eax >= 0 和 eax < 0
如果eax
>=0
的话,jl
不会跳转
然后如果eax
<0
的话,jl
就会跳转了
然后我们看看这个函数OleInitialize
返回值在MSDN
中的定义是这样的
如果调用成功,返回S_OK
,S_OK
=0
如果调用失败,返回S_FALSE
,S_FALSE=
=1
其他错误返回特定的错误类型,一般这些错误都是小于0
的
所以这个jl
语句的意思就是,如果返回的是除了S_OK
和S_FALSE
之外的错误,那就直接跳转退出程序
然后如果没有跳转结束,便是这样的一个代码片段
这里IDA
将这个CoCreateInstance
这个函数的返回COM
对象标记为了ppv
,然后按照书中的做法,我们为了确定这个程序是调用了那个COM
对象,所以我们要去查看riid
和rclsid
是对应了那个功能
我们双击就可以查看这两个变量真正的值是多少了
riid
的值是这样的
然后rclsid
是这样的
所以我们就开始查呗,书中是提到这个东西在的位置的,我们通过打开注册表编辑器可以看到,CLSID
在注册表中的具体位置是在这里
HKLM\SOFTWARE\Classes\CLSID\
还有
HKCU\SOFTWARE\Classes\CLSID
我们可以先看第一个位置HKLM\SOFTWARE\Classes\CLSID\
的地方
这里有很多的CLSID
,我们来找我们IDA
中发现的值
第一个数是2DF01h
我们最后可以找到这个值的位置
点LocalServer32
就会发现这个CLSID
会调用什么函数
这里的数据显示的是"C:\Program Files\Internet Explorer\iexplore.exe"
也就是IE
浏览器的可执行文件在的地方
然后我们再去找找这个位置有什么HKCU\SOFTWARE\Classes\CLSID
不过我们并没有在这个地方发现这个CLSID
然后我们就查明,这个函数调用了什么程序
然后如果创建那个COM
对象没失败,便开始调用这一串代码
这里就是通过调用这个COM
对象,来将参数也就是那个网址传进去,然后便是打开一直到http://www.malwareanalysisbook.com/ad.html
的IE
窗口
2.这个程序的目的是什么?
解答: 打开一个导向http://www.malwareanalysisbook.com/ad.html
网页的IE
浏览器
3.这个程序什么时候完成执行?
解答: 打开完IE
导向那个网址之后就结束了
本文完