-
-
[原创]恶意代码分析实战-小结实验IDA部分
-
发表于: 2024-8-15 18:51 2213
-
本人初学,要是有错误的地方望大家帮助指正
1.dllmain地址
考察定位main地址
这里其实是看左边的dllmain函数,然后就能定位到这里
1000D02E
https://blog.csdn.net/weixin_51111267/article/details/131985992
2.关键函数地址
考查导入表里面找关键函数
100163CC 52 gethostbyname WS2_32
3.多少地方引用了这个函数
考查引用
p是函数调用
r是读取
5个
https://hansimov.gitbook.io/malware-analysis/part2-advanced-static-analysis/ch05-ida-pro
4.将精力集中在位于 0x10001757 处的对 gethostbyname 的调用,你能找出哪个 DNS 请求将被触发吗?
考查入参,会入参汇编等计算
数据段然后又偏移13个,那就是这样
从微软里面查文档,不知道可以输入域名,看下面的csdn就知道可以输入域名了
https://learn.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-gethostbyname
https://blog.csdn.net/daiyudong2020/article/details/51946080
1
2
3
4
5
6
7
|
[This is RDO]pics.praticalmalwareanalys
根据下面的汇编代码,偏移 13 个,就得到一个域名了pics.praticalmalwareanalys
.text: 1000174E mov eax, off_10019040 ; "[This is RDO]pics.praticalmalwareanalys" ...
.text: 10001753 add eax, 0Dh
.text: 10001756 push eax ; name
.text: 10001757 call ds:gethostbyname
|
5.IDA Pro 识别了在 0x10001656 处的子过程中的多少个局部变量?
考查局部变量是负偏移
入参是正偏移
1
2
3
4
5
|
根据lpThreadParameter这个可以看到是入参,不算是局部变量 函数就是这个sub_10001656 这个子过程那就是所有的 0x10001656
.text: 10001656 ; DWORD __stdcall sub_10001656(LPVOID lpThreadParameter)
|
不算最后一个就是算是23个局部变量,绿色的就算是IDA自动识别的局部变量
6.IDA Pro 识别了在 0x10001656 处的子过程中的多少个参数
1个参数
只有这一个正偏移
7.使用 Strings 窗口,来在反汇编中定位字符串 \cmd.exe /c。它位于哪?
考查字符串搜索
shift+f12 然后再搜 \cmd.exe /c
xdoors_d:10095B34 0000000D C \cmd.exe /c
8.在引用 \cmd.exe /c 的代码所在的区域发生了什么?
考察搜字符串
不知道咋分析,但是看附近字符串,像是通过cmd远程执行shell
sub函数+那就是入参aCmdExeC
然后就看对应的函数干嘛的,这个参数主要又负责什么
这里就涉及到创建管道执行cmd命令
上一层函数是传socket对象
那就可能是远程执行命令
插件设置显示常量原始名字
https://blog.csdn.net/zhjmyx/article/details/134883979
9、在同样的区域,在 0x100101C8 处,看起来好像 dword_1008E5C4 是一个全局变量,它帮助决定走哪条路径。那恶意代码是如何设置 dword_1008E5C4 的呢?(提示:使用 dword_1008E5C4 的交叉引用。)
考察引用,看写入和读取常量
g搜索0x100101C8
帮助决定是否走loc_100101D7
双击dword_1008E5C4看定义未知
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
- 1.dllmain地址
- 2.关键函数地址
- 3.多少地方引用了这个函数
- 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 的交叉引用。)