问题
-
- 1.DllMain的地址是什么?
- 2.使用Imports窗口并浏览到gethostbyname, 导入函数定位到什么地址?
- 3.有多少函数调用了gethostbyname?
- 4.将精力集中在位于0x10001757处的对gethostbyname的调用,你能找出那个DNS请求将被触发吗?
- 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处,你发现了什么?
- 参考
1.DllMain的地址是什么?
使用IDA打开后,鼠标所在位置
.text:1000D02E
2.使用Imports窗口并浏览到gethostbyname, 导入函数定位到什么地址?
.idata:100163CC
3.有多少函数调用了gethostbyname?
Jump to xref operand
函数交叉引用,p是引用,r是读取,必须先读取,再引用。引用了9次,被5个函数调用。
4.将精力集中在位于0x10001757处的对gethostbyname的调用,你能找出那个DNS请求将被触发吗?
使用G键定位0x10001757
call函数默认将栈顶的值作为函数的参数传递给函数,这里是eax push进去的,eax对应的off_10019040:
[This is RDO]pics.praticalmalwareanalys
然后点击黄色部分aThisRdoPics
,可以看到完整的字符串
[This is RDO]pics.praticalmalwareanalysis.com
刚才gethostbyname
那段代码
off_1001904
值给了eax
之后(off_10019040
是字符串指针),0Dh
转换成十进制是13,因此最后的结果是指针指向p,所以最后push进栈的值是pics.praticalmalwareanalysis.com
5.IDA Pro识别了在0x10001656处的子过程中的多少个局部变量?
使用G
键跳转地址0x10001656
,
分析sub_10001656
函数,一共有23个局部变量,大部分以var_
为前缀。
6.IDA Pro识别了在0x10001656处的子过程中的多少个参数?
一个参数
在子过程中有arg_0
这个参数 lpThreadParameter
??
7.使用Strings窗口,来在反汇编中定位字符串\cmd.exe /c。 它位于哪?
一直以为我装的这个IDA没有strings(确实是我没找到),结果需要shift+F12
,没有F12
Mac—开启键盘F1 - F12功能键以及F1 - F12功能键的作用
结果还是不知道怎么弄,
找到了,F16都找到了,还是没成功shift+F12