首页
社区
课程
招聘
[原创] 七神VMP真正的分析与还原
发表于: 2026-9-11 14:34 22774

[原创] 七神VMP真正的分析与还原

2026-9-11 14:34
22774
收藏
点赞 ・292
打赏
分享
最新回复 (197)
雪    币: 19
活跃值: (211)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
101 楼
厉害呀
2026-9-21 23:07
0
雪    币: 207
活跃值: (385)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
102 楼
66666666
2026-9-22 09:55
0
雪    币: 723
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
103 楼
666
2026-9-22 14:45
0
雪    币: 2177
活跃值: (1310)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
104 楼
666
2026-9-22 16:47
0
雪    币: 301
活跃值: (1823)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zxc
105 楼
3
2026-9-22 17:16
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
106 楼
666
2026-9-22 18:10
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
107 楼
感谢分享
2026-9-22 20:56
0
雪    币: 592
活跃值: (1105)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
108 楼
666
2026-9-23 03:08
0
雪    币: 22
活跃值: (1318)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
109 楼
11111
2026-9-23 10:09
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
110 楼
6666
2026-9-23 11:12
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
111 楼
666
2026-9-23 20:17
0
雪    币: 0
活跃值: (2204)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
112 楼
牛B克拉斯
2026-9-23 20:37
0
雪    币: 15
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
113 楼
666
2026-9-23 20:57
0
雪    币: 292
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
114 楼
666666666
2026-9-24 17:36
0
雪    币: 1
活跃值: (207)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
115 楼
666
2026-9-24 20:41
0
雪    币: 1688
活跃值: (1633)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
116 楼
666
2026-9-25 16:58
0
雪    币: 411
活跃值: (1041)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
117 楼
t
2026-9-27 00:23
0
雪    币: 411
活跃值: (1041)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
118 楼
对不起
2026-9-27 00:23
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
119 楼
666
2026-9-27 15:27
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
120 楼
666
2026-9-28 22:07
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
121 楼
我看看
2026-9-29 01:43
0
雪    币: 201
活跃值: (500)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
122 楼
太长了,没仔细看。只说下他的函数调用。基本有2种形式的子函数调用
1. 子函数是外部函数,那么他会在子函数的stub函数中,把vreg_table中对应的寄存器值放到x0, x1等寄存器,然后bl调用子函数,返回后,把x0返回到vreg_table中对应的位置。这个和vmprotect的区别在于,vmprotect还原所有寄存器值(等于出了虚拟机),而这个只还原参数所用到的寄存器,这个实现的区别本质在于vmprotect无法知道子函数有几个参数,从什么寄存器传。
2. 如果子函数也在虚拟机里,那么有2种情况,第一种,如果被调用者和调用者的vreg_table轮转是一致的,那么好像是直接bl过去。如果2个函数的vreg_table轮转不一致,那么在pcode级别会有轮转切换的指令集,切换完再bl过去,调用完,会轮转回来。
2026-9-29 11:57
1
雪    币: 209
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
123 楼
666
2026-9-29 13:29
0
雪    币: 41
活跃值: (778)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
124 楼
666
2026-9-29 14:52
0
雪    币: 228
活跃值: (275)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
125 楼
看看 666
2026-9-29 15:07
0
游客
登录 | 注册 方可回帖
返回