首页
论坛
课程
招聘
[分享]VMP壳原理
2014-7-22 08:38 28209

[分享]VMP壳原理

2014-7-22 08:38
28209
总结vmp壳基础原理,大牛不要喷啊!

1.与传统的加壳工具不同,不是简单的把目标进行压缩、内存解压运行,而是修改目标源码,让目标的部分指令在vmp创建的虚拟环境下运行,虚拟环境中无操作数比较指令、条件跳转和无条件跳转指令;
2.被修改替换的目标指令最终形成的字节码有前后相关性,即你改变其他任意一个字节会影响到所有被vm虚拟化的指令
3.vmp的虚拟机其实是一个字节码解释器,循环的读取指令并执行,并且只有一个入口和一个出口
4.虚假跳转和垃圾指令, vmp会使用大量的虚拟跳转和垃圾指令将原有简单的代码变得复杂
5.vmp是基于堆栈的虚拟机,虚拟机指令不是显示的读取参数,而是把要使用的参数压入堆栈,而后直接从堆栈中读取
6.vmp指令
  1)算数运算和移位运算
  2)堆栈操作
  3)系统相关
  4)逻辑运算,这个最复杂,vmp中只有一个逻辑运算指令nor, 它可以模拟not and or xor 四个逻辑运算指令
6.vmp寄存器轮转
  mvp将所有的寄存器都放在一个堆栈的结构vm_context中, 结构中的每一项代码一个寄存器或临时变量
  在程序运行过程中, vm_context结构中保存的寄存器不是固定的,每当执行完一个操作或一个指令结构中的项与真实寄存器之间的映射关系会发生变化,就像一个齿轮随机的转动了一下, 转动过后原有的映射关系全部改变了
7.字节码加密和随机效验
  随机效验比较牛B, vmp会在编译好的字节码中加入自己的一些指令(专属于vmp自动的指令), 每一次执行都会对一段代码随机生成hash值, 然后与另一个随机数相加, vmp要求相加的结果必须为0, 否则会出错.

[看雪官方]《安卓高级研修班》线下班,网课(12月)班开始同步招生!!

收藏
点赞0
打赏
分享
最新回复 (23)
雪    币: 228
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
korall 活跃值 2014-7-22 09:40
2
0
呵呵 楼主有详细分析的计划么
雪    币: 1
活跃值: 活跃值 (93)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
lookzo 活跃值 2014-7-22 10:08
3
0
呵呵,支持一下
雪    币: 222
活跃值: 活跃值 (67)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
云才哥 活跃值 2014-7-22 10:20
4
0
很厉害啊
雪    币: 397
活跃值: 活跃值 (160)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
pxhb 活跃值 2 2014-7-22 10:46
5
0
希望这是楼主以后某篇精华里面的目录
雪    币: 52
活跃值: 活跃值 (99)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
zhenwo 活跃值 1 2014-7-22 11:52
6
0
楼主 出些教程吧 嘎嘎
雪    币: 185
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
第七城市 活跃值 2014-7-22 21:28
7
0
来了就支持下!!!!!!!!!!!
雪    币: 1834
活跃值: 活跃值 (15)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
yingyue 活跃值 2014-7-22 21:39
8
0
整理的不错 。。。。思路也清晰 。。。。。。
雪    币: 141
活跃值: 活跃值 (15)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
gotmilk 活跃值 2 2014-7-22 22:01
9
0
很不错 但是里面有几个错别字啊
雪    币: 3443
活跃值: 活跃值 (74)
能力值: ( LV7,RANK:140 )
在线值:
发帖
回帖
粉丝
二当家a 活跃值 2 2014-7-22 22:23
10
0
求小白鼠~
雪    币: 580
活跃值: 活跃值 (72)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
hkfans 活跃值 3 2014-7-23 17:34
11
0
VMP的技术都概括出来了
雪    币: 1239
活跃值: 活跃值 (22)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
xinxinqing 活跃值 2014-7-23 17:36
12
0
路过学习
雪    币: 52
活跃值: 活跃值 (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
樊辉 活跃值 2014-8-7 15:29
13
0
MARK
雪    币: 306
活跃值: 活跃值 (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
keheng 活跃值 1 2014-9-3 20:08
14
0
如果楼主能够配合上面讲的出一些实例方面的介绍就更完美了,期待楼主的详细部分!
雪    币: 36
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
guxing罗 活跃值 2014-9-9 16:41
15
0
能不能详细点啊。。。。。
雪    币: 57
活跃值: 活跃值 (85)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wonderzdh 活跃值 1 2014-9-9 18:03
16
0
总结的不错,大部分是已经印证的。
雪    币: 5
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
rqqeq 活跃值 2014-9-9 18:27
17
0
该不会是从某人的ppt里copy的吧……
雪    币: 235
活跃值: 活跃值 (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
yulinxie 活跃值 2015-4-16 15:35
18
0
学习了。
雪    币: 31
活跃值: 活跃值 (71)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yuss 活跃值 2018-8-4 06:35
19
0
不错,学到了,谢谢楼主。
雪    币: 2381
活跃值: 活跃值 (13)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
菜鸟级X 活跃值 2 2018-9-26 16:09
20
0
mark
雪    币: 85
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
andrOday 活跃值 2018-10-11 16:20
21
0
mark
雪    币: 1462
活跃值: 活跃值 (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
木志本柯 活跃值 2018-11-8 23:27
22
0
标记了,感谢楼主的经验分享。
雪    币: 3136
活跃值: 活跃值 (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
scihkimo 活跃值 2018-11-14 02:53
23
0
謝謝分享
雪    币: 89
活跃值: 活跃值 (90)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
秋落 活跃值 2018-11-14 08:41
24
0
百度的吧
游客
登录 | 注册 方可回帖
返回