当前位置:网站首页>恶意代码实战分析Lab05-01

恶意代码实战分析Lab05-01

2022-06-13 10:40:00 王陈锋

Lab05-01

只用IDA Pro分析在文件Lab05-01.dll中发现的恶意代码。这个实验的目标是给你一个用IDA Pro动手的经验。如果你已经用IDA Pro工作过,你可以选择忽略这些问题,而将精力集中在逆向工程恶意代码上。

内容比较多,后面再更
 

1.DllMain的地址是什么?

使用IDA打开后,鼠标所在位置

或者点击图中红色区域

 然后会出现viewB

然后可以右键点击

 便到了dllmain的开头地址。


2.使用Imports窗口并浏览到gethostbyname, 导入函数定位到什么地址?

直接搜索函数名

 直接对着函数双击,到原文中查找定位地址。是在.idata节的0x100163CC处。

其实上图就已经给出了地址。


3.有多少函数调用了gethostbyname?

在这个viewB窗口中,ctrl+x。Jump to xref to oprand。

 或者右键

 

 函数交叉引用,p是引用,r是读取,要先读取,再引用。引用了9次,被5个函数调用。

这里显示了18行,但是并不是18个函数调用了这个gethostbyname。

+后面的是偏移地址。


4.将精力集中在位于0x10001757处的对gethostbyname的调用,你能找出那个DNS请求将被触发吗?

将外部引用窗口关闭,然后按G,直接定位0x10001757跳转过去


5.IDA Pro识别了在0x10001656处的子过程中的多少个局部变量?


6.IDA Pro识别了在0x10001656处的子过程中的多少个参数?


7.使用Strings窗口,来在反汇编中定位字符串\cmd.exe /c。 它位于哪?


8.在引用\cmd.exe /c的代码所在的区域发生了什么?
9.在同样的区域,在0x100101C8处,看起来好像dword_1008E5C4是一个全局变量,它帮助决定走哪条路径。那恶意代码是如何设置dword_1008E5C4的呢?(提示:使用dword_1008E5C4的交叉引用。)
10.在位于0x1000FF58处的子过程中的几百行指令中,一系列使用memecmp来比较字符串的比较。如果对robotwork的字符串比较是成功的(当memcmp返回0),会发生什么?
11.PSLIST导出函数做了什么?
12.使用图模式来绘制出对sub_10004E79的交叉引用图。当进入这个函数时,那个API函数可能被调用?仅仅基于这些API函数,你会如何重命名这个函数?
13.DLLMain直接调用了多少个Windows API? 多少个在深度为2时被调用?
14.在0x10001358处,有一个对Sleep(一个使用一个包含要睡眠的毫秒数的参数的API函数)的调用。顺着代码向后看,如果这段代码执行,这个程序会睡眠多久?
15.在0x10001701处是一个对socket的调用。它的3个参数是什么?
16.使用MSDN页面的socket和IDA Pro中的命名符号常量,你能使参数更加有意义吗?在你应用了修改以后,参数是什么?
17.搜索in指令(opcode 0xED)的使用。这个指令和一个魔术字符串VMXh用来进行VMware检测。这在这个恶意代码中被使用了吗?使用对执行in指令函数的交叉引用,能发现进一步检测VMware的证据吗?
18.将你的光标跳转到0x1001D988处,你发现了什么?
 

原网站

版权声明
本文为[王陈锋]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m0_58138734/article/details/124158233