首页
社区
课程
招聘
[原创]我与VM的三类接触
2009-3-23 23:09 14065

[原创]我与VM的三类接触

2009-3-23 23:09
14065
看到置顶帖的《虚拟机:系统与进程的通用平台》活动时,就很有写点东西的冲动,然而,真提笔的时候,才发觉要写VM,真不知从何谈起

我和VM,其实有三类接触

还是由头说起。VM,第一印象应该是VWARE了,记得那时正沉迷于网络安全技术,又没有刺刀见红的胆量,于是就有人推荐了,用VM自己搭一个环境来YY,当时马上就被VM这个神奇的名字唬住了,一个人不生不熟地捣鼓了很久,终于,VMARE的界面亮了起来——不知道大家还是否记得第一次看到VM里面亮出windows徽标的感觉,那时我只有一个很梦幻的念头,这个VM,难道就是《黑客帝国》里的MATRIX?

然而这个VM没让我梦幻太久,256M的内存,跑两个XP,后果可想而知,一词以蔽之,就是,卡吧死机,加上寸土寸金的40G的硬盘,于是,在又一次卡吧死机之后,我终于恼羞成怒,给VWARE下了逐客令,于是,我与VM的第一类接触就到此结束了

重回VM怀抱,是凭着JAVA的机缘。相信说到java,大家都应该猜到是怎么回事了,当书上写道java程序都是在jvm上跑时,我心里又隐隐浮起那种梦幻的感觉,一次编译到处运行的口号,让我对这个卡吧死机的代言词VM,又有了新一层的崇敬,而且那时又正被C由于与硬件密切相关导致很多不确定弄得焦头烂额,jvm很让我感觉到一种秦始皇统一度量衡的气魄

如果这算是第二类接触的话,那么,我与VM的第二类接触,其实还早于第一类接触,没错,VB6,这个让编程初学者爱不释手又让破解初学者痛不欲生的语言,七拐八绕,也算是半个VM吧

最后一类接触,无它,就是VMP了。第一次接触VMP,是TMD,当我第一次看到一个怪异的jmp替代了熟悉的push时,无论如何也无法与论坛上正讨论得热火朝天的VMP联系在一起,后来前辈轻描淡写地说,这不就是TMD嘛,你最近没上看雪吗?于是面红耳赤地告辞出来,想起刚入手的《加密解密》好像正有VM设计一章,一顿狂翻,哦,这就是VMP,原来如此!感谢看雪,感谢bughoho,感谢所有TV!

不过,对于VMP的破解,仍旧空白一片,邂逅TMD之后,我迷上的,是VM的设计。VMP走的是用最少的指令模拟其它指令的路线,这条路,只可膜拜,不可亵玩,于是,我只是想模拟CPU工作而已。第一个抉择就是,获取指令的结构。bughoho给出的是call handle这种样式,而其它资料却一致推荐swtich,其实我对swtich没有半点好感,关于swtich效率底下的传言一直不绝于耳,而且call handle看起来显得更酷些,然而,一份资料最终为这个抉择落定尘埃;超过一百条case后,swatch会变编译为jmp列的形式

随后开始了不温不火的handle设计。遵循UNIX一个程序完成一个功能的思想,我开始摸索着把一个个熟悉的指令拆得更细些。然而第二个值得困扰的问题出来了,数据的传输。寄存器还好说,但一旦涉及内存,就总会让我有一种需要凭空变出另一片内存的恐惧。一份建议使用writeProcessMemory来模拟内存的资料更令我陷入绝望中。后来我突然发觉,既然只是VM,何必老老实实地一定要真的涉及内存操作呢,用BTYE[]不也很好吗?

往下,我不知道还会遇到什么问题,又会钻入哪些牛角尖出不来,对VM学习的路才刚刚开始,而能收集到的VM资料往往零散而缺乏论证,我想,很多VM的初学者应该和我一样,盼望有那么一本书,一本系统而权威的书,那本书,值得我们望穿秋水。

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

收藏
点赞0
打赏
分享
最新回复 (13)
雪    币: 11
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
woosheep 2009-3-23 23:14
2
0
我在看雪学到不少,但很清楚自己还是很菜,不过真的很希望能得到一本《虚拟机:系统与进程的通用平台》,最近正在努力收集这方面的资料,穷学生,没办法,只好鼓起勇气发一篇感想,还请别笑
雪    币: 11
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
woosheep 2009-3-27 12:28
3
0
有个问题想请教一下

我用过vware和Bochs模拟器,后者比前者慢很多,有人说后者是软件模拟,前者直接使用物理机器的资源,跟物理机器的机能有直接关系

软件模拟我理解,但直接使用物理机器资源要怎么实现呢?虚拟机不都是需要重新解释opcode的吗?

还请前辈指点一下
雪    币: 7300
活跃值: (3758)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
海风月影 22 2009-3-27 15:42
4
0
Virtual Machine Extensions (Vanderpool)
雪    币: 11
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
woosheep 2009-3-27 17:32
5
0
谢谢海大

搜了一下,Vanderpool做的工作好像主要是资源分配,支持提供的新指令作为支持

(没理解错的话)这种技术目的是提高硬件利用率,对于跨平台有好处吗?
雪    币: 11
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
woosheep 2009-3-27 17:33
6
0
想起一个词

负载均衡
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
iamocean 2009-4-15 20:11
7
0
呵呵,太深奥了。
雪    币: 11
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
woosheep 2009-4-19 15:48
8
0
是啊,看雪很多高手

我也是刚开始研究VM,很多问题都不懂,想找本全面点的书看看呢

19号了,活动不知道结果如何呢,要是能得到那本书就好了
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zhengbindu 2009-5-24 20:15
9
0
感觉不错呀!
雪    币: 1450
活跃值: (35)
能力值: (RANK:680 )
在线值:
发帖
回帖
粉丝
jackozoo 14 2009-5-31 19:58
10
0
几十快钱而已, 真的非常希望得到的话, 就买一本吧. 每顿饭吃差点就OK.

真心希望你能得到那本书  
雪    币: 11
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
woosheep 2009-6-8 22:55
11
0
谢谢~

请问Z版,这个活动还搞吗?好像过了蛮久了也..

最近好书不断,已经不是吃少两顿饭的问题了,我已经在考虑要不要卖血来着
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
vster 2009-7-5 05:30
12
0
英文电子版网上可以找到
雪    币: 325
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
哭泣的泪 2009-7-5 15:05
13
0
呵呵 顶顶~~
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
风吹雪 2009-7-8 22:08
14
0
真的,假的。。。
游客
登录 | 注册 方可回帖
返回