恶意代码分析实战 Lab5-1

逆向病毒分析 1年前 (2023) admin
273 0 0

1.D1lMain的地址是什么?

0x1000D02E

恶意代码分析实战 Lab5-1

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

恶意代码分析实战 Lab5-1ctrl+f 搜索gethostname

得到地址0x100163CC恶意代码分析实战 Lab5-1

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

按x共得到18个

p 开头为函数调用

r 开头为read读取

找p,然后去除重复得到5个函数调用了gethostbyname

恶意代码分析实战 Lab5-1

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

按g跳到指定地址

恶意代码分析实战 Lab5-1

是off_10019040的值影响了eax

恶意代码分析实战 Lab5-1

得到字符串[This is RDO]pics.praticalmalwareanalys 后面是网址

恶意代码分析实战 Lab5-1

[This is RDO]长度为0x0d add eax,0d刚好是网址起始位置

恶意代码分析实战 Lab5-1

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

var 开头为局部变量,23个局部变量

恶意代码分析实战 Lab5-1

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

有一个参数

恶意代码分析实战 Lab5-1

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

shift+f12 跳转到strings窗口,然后搜索cmd即可,跟进去得到0x10095B34

恶意代码分析实战 Lab5-1

8.在引用cmd.exe /c的代码所在的区域发生了什么?

向上查看

恶意代码分析实战 Lab5-1

跟进去查看,远程shell会话

恶意代码分析实战 Lab5-1

向下看,可能为攻击者开启了一个远程会话

恶意代码分析实战 Lab5-1
恶意代码分析实战 Lab5-1

9.在同样的区域,在Ox100101C8处,看起来好像dword_1008E5C4是一个全局变量,它帮助决定走哪条路径。那恶意代码是如何设置dword_1008E5c4的呢?(提示:使用dword_1008E5C4的交叉引用)

g跳转到Ox100101C8

然后交叉引用

w 是write

r 是read

write影响值所以选第一个

恶意代码分析实战 Lab5-1

eax为上一个call的返回值

恶意代码分析实战 Lab5-1

跟进函数sub_10003695查看

查询系统版本

platformid与2比较是判断是否为win32-NT系统

函数返回值为系统版本信息

恶意代码分析实战 Lab5-1

10.在位于0x1000FF58处的子过程中的几百行指令中,一系列使用memcmp 来比较字符串的比较。如果对robotwork的字符串比较是成功的`((当memcmp返回0),会发生什么?

g定位到0x1000FF58

恶意代码分析实战 Lab5-1

memcmp比较相等为0

恶意代码分析实战 Lab5-1

jnz不是0则跳转

题目设memcmp返回0则不跳转,调用sub_100052A2函数

恶意代码分析实战 Lab5-1‍ 函数会打开注册表的这个位置

恶意代码分析实战 Lab5-1

访问注册表的值

恶意代码分析实战 Lab5-1‍ 跟进函数发现通过send发送

恶意代码分析实战 Lab5-1
恶意代码分析实战 Lab5-1

11.PSLIST导出函数做了什么?

view里查看

恶意代码分析实战 Lab5-1

点进去

恶意代码分析实战 Lab5-1
恶意代码分析实战 Lab5-1

查看第一个call

空格

MajorVersion是判断是否为Vista以上还是Vista以下

恶意代码分析实战 Lab5-1

esc返回,先看左边的call

恶意代码分析实战 Lab5-1

CreateToolhelp32Snapshot:获取系统中进程或线程信息

恶意代码分析实战 Lab5-1

esc返回查看右边的call

恶意代码分析实战 Lab5-1

这个函数里也有CreateToolhelp32Snapshot

恶意代码分析实战 Lab5-1

PSLIST函数的作用可能是将系统进程信息发送远程

12.使用图模式来绘制出对sub_10004E79的交叉引用图。当进入这个函数时,哪个API函数可能被调用?仅仅基于这些API函数,你会如何重命名这个函数?

首先找到这个函数

恶意代码分析实战 Lab5-1

找到user xrefs chart

恶意代码分析实战 Lab5-1

点ok

恶意代码分析实战 Lab5-1

弹出图片,箭头所指的都是有有可能调用的api函数

GetSystemDefaultLangId获取系统默认语言

sub_1000eE79函数主要是获取系统默认语言

恶意代码分析实战 Lab5-1‍ 将函数重命名为GetSystemLanAndSend

恶意代码分析实战 Lab5-1

13.D1lMain直接调用了多少个Windows API?多少个在深度为2时被调用?

找到这个函数使用同样的方法

恶意代码分析实战 Lab5-1
恶意代码分析实战 Lab5-1

第一层调用,strncpy、CreateThread等

恶意代码分析实战 Lab5-1

第二层调用,sleep,winexec、memcpy等

恶意代码分析实战 Lab5-1

14.在Ox10001358处,有一个对Sleep(一个使用一个包含要睡眠的毫秒数的参数的API函数)的调用。顺着代码向后看,如果这段代码执行,这个程序会睡眠多久?

g跳到这个函数

恶意代码分析实战 Lab5-1

eax受off_10019020影响,查看off_10019020

内容为 [This is CTI]30

恶意代码分析实战 Lab5-1

add eax,0dh 即获取到30

恶意代码分析实战 Lab5-1

将30转换为数值

恶意代码分析实战 Lab5-1

30*3e8h = 30000

恶意代码分析实战 Lab5-1
恶意代码分析实战 Lab5-1

休眠时间为30000毫秒即30秒

15.在Ox10001701处是一个对socket的调用。它的3个参数是什么?

g定位

恶意代码分析实战 Lab5-1

得到2、1、6

2是第一个参数

16.使用MSDN页面的socket和IDAPro中的命名符号常量,你能使参数更加有意义吗?在你应用了修改以后,参数是什么?

msdn找到af

恶意代码分析实战 Lab5-1

2代表AF_INET,这道题让我们将2转换为AF_INET

恶意代码分析实战 Lab5-1

2右击

恶意代码分析实战 Lab5-1

找到AF_INET确定

恶意代码分析实战 Lab5-1

转为字符方便查看

恶意代码分析实战 Lab5-1

6代表IPPROTO_TCP

恶意代码分析实战 Lab5-1

相同方式转换

恶意代码分析实战 Lab5-1
恶意代码分析实战 Lab5-1
恶意代码分析实战 Lab5-1

17.搜索in指令(opcode &xED)的使用。这个指令和一个魔术字符串 VMXh用来进行VMware检测。这在这个恶意代码中被使用了吗?使用对执行 in 指令函数的交叉引用,能发现进一步检测VMware的证据吗?

search ,sequence of bytes

恶意代码分析实战 Lab5-1
恶意代码分析实战 Lab5-1

找到in语句

恶意代码分析实战 Lab5-1

进入后将564D5868h转换为字符

恶意代码分析实战 Lab5-1

这块可能是判断是否为vmware虚拟机

恶意代码分析实战 Lab5-1

空格,找到函数头,交叉引用

恶意代码分析实战 Lab5-1

查看第一个

Found Virtual Machine,Install Cancel即发现虚拟机,安装取消

恶意代码分析实战 Lab5-1

18.将你的光标跳转到0x1001D988处,你发现了什么?

恶意代码分析实战 Lab5-1

19.如果你安装了IDA Python插件(包括IDA Pro的商业版本的插件),运行Lab05-01.py,一个本书中随恶意代码提供的IDA Pro Python脚本,(确定光标是在Ox1001D988处。)在你运行这个脚本后发生了什么?

Lab05-01.py

sea = ScreenEA() # 获取鼠标位置

for i in range(0x00,0x50):
        b = Byte(sea+i) #获取每一行的字符
        decoded_byte = b ^ 0x55 #将每一行字符 ^ 0x55
        PatchByte(sea+i,decoded_byte) # 修复后加载出来

Lab05-01.idc

#include <idc.idc>
static main(){
    auto sea = ScreenEA(),b,i,decoded_byte;
    for(i=0x0; i<0x50; i++){
        b = Byte(sea+i);
        decoded_byte = b ^ 0x55;
        PatchByte(sea+i,decoded_byte);
    }
}

鼠标放在第一个字符上script file选择脚本

恶意代码分析实战 Lab5-1

打开脚本后解密成功

恶意代码分析实战 Lab5-1

按a

恶意代码分析实战 Lab5-1

加下方wx,拉你一起进群学习


恶意代码分析实战 Lab5-1

原文始发于微信公众号(红队蓝军):恶意代码分析实战 Lab5-1

版权声明:admin 发表于 2023年6月7日 下午3:01。
转载请注明:恶意代码分析实战 Lab5-1 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...