首页
社区
课程
招聘
[原创]vm虚拟机的初探
发表于: 2024-12-19 17:05 55175

[原创]vm虚拟机的初探

2024-12-19 17:05
55175

声明

本文仅限于技术讨论,不得用于非法途径,后果自负。

前言

这是萌新第一次逆向vmp,主要是分享分析过程,这里借鉴了金罡大佬的文章https://bbs.kanxue.com/thread-282300.htm,vmp的内存布局和context 在我选用的这个版本差别并不大。选用的TT 中libEncryptor.so 中被vm 的jnionload。

vm还原难点

  1. 原本汇编被自写的指令集和解释器所实现,所有反编译器被anti掉了
  2. 指令集逆向非常耗时,开发者只需要调换指令集和解释器的映射关系就可以让逆向工作者喝一壶

开始分析

用ida打开so 定位到AF8 ,看一下cfg
图片描述
下面这一排就是handle的实现了
图片描述
不过handle太多了 我只会还原被执行的指令集。

指令分析

从下面两张图可以看出vm指令集4字节对齐和arm一致 ,在后面的逆向中发现开发者并没有实现指令集或者说指令集就是arm64
图片描述
图片描述
还原指令的第一步就是解析出指令中携带的信息,一般来说,有这几个信息
1.指令类型
2.寄存器信息
3.立即数
可以看到在虚拟机循环的开头就是虚拟机取出指令各个信息的过程
图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// unsigned int code
// Bit_28_State = code & 0x10000000;
// Bit_29_State = code & 0x20000000;
// Bit_30_State = code & 0x40000000;
// v17 = (code >> 11) & 2 | (code >> 31) | (code >> 11) & 4 | (code >> 11) & 8 | (code >> 11) & 0x10;// 提取第31位 提取第12,13,14,15位 组合
//                                           // [15,14,13,12,31]
// sourceREG = (code >> 21) & 0x1F;          // 取第22 =>26的值
//                                           // [26,25,24,23,22]
// destREG = HIWORD(code) & 0x1F;            // 17 > 21
//                                           // [21,20,19,18,17]
// Bit_31_State = code & 0x80000000;
// Bit_30_State_1 = code & 0x4000000;
// Bit_31_State_1 = code & 0x8000000;
var type = code.and(0x3f)
var code = this.vm_handles
var sourceREG = code.shr(21).and(0x1F)
var destREG = code.shr(16).and(0x1F)
 
var Bit_28_State = code.and(0x10000000)
var Bit_29_State = code.and(0x20000000)
var Bit_30_State = code.and(0x40000000)
var Bit_31_State = code.and(0x80000000)
var Bit_30_State_1 = code.and(0x4000000)
var Bit_31_State_1 = code.and(0x8000000)
var intv17 = code.toUInt32()
var v17 = (intv17 >>> 11) & 2 | (intv17 >>> 31) | (intv17 >>> 11) & 4 | (intv17 >>> 11) & 8 | (intv17 >>> 11) & 0x10
let opcode = code.and(0xF000).or(Bit_30_State_1.shr(20)).or(code.shr(6).and(0x3F)).or(Bit_31_State_1.shr(20)).or(Bit_28_State.shr(20)).or(Bit_29_State.shr(20)).or(Bit_30_State.shr(20)).or(Bit_31_State.shr(20))

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 132
支持
分享
最新回复 (80)
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
好东西,感谢分享
2024-12-19 17:14
0
雪    币: 381
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
2024-12-19 17:53
0
雪    币: 223
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
你的帖子非常有用,感谢分享!
2024-12-20 10:33
0
雪    币: 1643
活跃值: (3296)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
666
2024-12-20 10:46
0
雪    币: 375
活跃值: (2411)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
2024-12-20 10:53
0
雪    币: 24
活跃值: (1220)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
来看看
2024-12-20 10:53
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
1
2024-12-20 10:56
0
雪    币: 489
活跃值: (1102)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
学习
2024-12-20 11:40
0
雪    币: 2528
活跃值: (8099)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
Been looking for this
2024-12-20 12:22
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
1
2024-12-20 13:51
0
雪    币: 439
活跃值: (1528)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
12
学习一下
2024-12-20 18:09
0
雪    币: 2691
活跃值: (3767)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
13
感谢分享
2024-12-20 18:16
0
雪    币: 9459
活跃值: (4996)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
感谢分享
2024-12-21 09:30
0
雪    币: 329
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
2024-12-21 09:31
0
雪    币: 13
活跃值: (2067)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
感谢分享
2024-12-21 17:13
0
雪    币: 94
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
学习一下
2024-12-22 00:48
0
雪    币: 118
活跃值: (1106)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
太好了,好好学习一下
2024-12-22 12:00
0
雪    币: 221
活跃值: (2486)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19
学习一下 
2024-12-22 12:58
0
雪    币: 406
活跃值: (730)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
好东西,感谢分享
2024-12-22 14:17
0
雪    币: 191
活跃值: (404)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
好东西
2024-12-22 16:14
0
雪    币: 234
活跃值: (181)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
学习一下
2024-12-22 21:43
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23
nice
2024-12-22 23:13
1
雪    币: 1
活跃值: (360)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
6
2024-12-23 10:18
0
雪    币: 117
活跃值: (1166)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
6
2024-12-23 11:28
0
游客
登录 | 注册 方可回帖
返回