恶意代码分析-1

前言

在windows上逆向分析dll链接库,也算是对ida功能的重新复习,以及逆向的初步学习吧。文中所用的1.dll网上应该很容易找到。

题目

  1. DllMain 的地址是什么?
    0x1000D02E
    在这里插入图片描述
    2.gethostbyname 函数定位到什么地址?
    因为gethostbyname是从外部导入,因此在imports窗口搜索
    0x100163CC
    在这里插入图片描述

3.有多少个函数调用了函数 gethostbyname (格式数字 如:1)
熟悉对与函数交叉引用的理解。因为是有多少个函数调用了gethostbyname,所以有5个函数。在交叉引用的窗口中,p是调用,r是read读取。
5
在这里插入图片描述

4.详细分析位于 0x10001757 处的 gethostbyname 调用,DNS 请求将被触发的域名是?
很明显的数组寻址,在字符串首地址加0xd。
pics.praticalmalwareanalys.com
在这里插入图片描述

5.通过对 1.dll 恶意程序分析,IDA Pro 识别了在 0x10001656 处的子函数中的多少个局部变量?(格式:填写数字 如:1)
熟悉32位程序函数调用的,就可以理解为什么是23个局部变量。
23
在这里插入图片描述
6.在 0x10001656 处的子函数有多少个参数?
接上面,很显然。
1
7.通过分析,字符串“\cmd.exe /c”在哪个地址处。
0x10095B20
在strings中搜索"\cmd.exe"关键字,双击找到字符串的位置。
在这里插入图片描述
8.接上题,在引用“\cmd.exe /c” 的代码所在的区域发生了什么?
A:开启一个 shell 会话 ; B:远程发送数据包 ; C:注入恶意程序; D:扫描漏洞端口;
A
查看字符串的交叉引用,F5反编译后可以看到红框处的字符串,说明此区域的代码功能是开启shell会话。
在这里插入图片描述
9.0x1000FF58 处子函数中若对 ”robotwork” 字符串的 memcmp比较是成功的,会发生什么?
会通过注册表中取出机器工作时间的值,然后组成一个字符串,最后通过套字接发送出去。
比较成功会进入sub_100052a2函数。双击查看。
在这里插入图片描述
一眼顶针,通过socket发送robot的工作时间。
在这里插入图片描述
10.PSLIST 函数最后导出了什么文件
xinstall.dll
这个逆向分析起来,对我来说稍微有点困难。首先找到PSLIST函数。
在这里插入图片描述
可以进入查看第一个sub_100036c3函数。GetVersionExA的API函数可以搜索查看用法,此处就是对机器的version进行一个判断,需要让version>=5且platformid为2,当然这个不是重点。
在这里插入图片描述
成功获取到机器信息后,才会进入socket通讯的函数中。下面的sub_10000664c和sub_10006518的功能基本差不多。选择上面一个进行分析。
在这里插入图片描述
从后向前分析,函数最后会向socket中发送信息。那么前面的如果没有出错时,程序会判断dword_1008E5BC处的值,并调用sub_1000620C函数。继续进入。
在这里插入图片描述
可以看到很关键的file类型指针,以及对于file的操作,基本上可以确定,最后会输出的文件名称就是aXinstallDll处的字符串了。
在这里插入图片描述

11.DllMain 直接调用了多少个 API
3
查看交叉引用图,选择深度为1
在这里插入图片描述
粉红色的是程序直接调用的API函数
在这里插入图片描述
12.DllMain 函数有几个参数
3
13.程序在 0x10001358 处对 sleep 的调用会睡眠多少秒
30
301000ms即为30s*
14.在 0x10001701 处是一个对 Socket 的第 2 个参数是什么
1
跳转到相应位置查看即可。

15.搜索 in 指令(0xED)的使用。使用这个指令目的什么?
==验证程序是否在虚拟机下运行 ; ==
ALT+B,选择find all occurrences,找到in指令,并查看交叉引用。
在这里插入图片描述
可以看到in指令处的eax和dx分别是“vmx”和“vx”字符串。再查看哪里调用了这个检查函数。
在这里插入图片描述
可以看到InstallRT函数调用了上面的检查函数,同时InstallRT函数中还有“Found Virtual Machine,Install Cancel.”字符串,说明是检测是否在虚拟机状态下安装。
在这里插入图片描述# 结尾
借鉴文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值