首页
社区
课程
招聘
[求助]关于虚拟机技术!?
发表于: 2007-3-3 19:12 5186

[求助]关于虚拟机技术!?

2007-3-3 19:12
5186
论坛上多处提到了虚拟机技术,但没有文章给我们讲讲到底什么是虚拟机技术啊?虚拟机技术到底是什么呢?

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

收藏
免费 0
支持
分享
最新回复 (13)
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
2
这个问题太大了。如果你有足够的时间精力,可以看看这本书
虚拟机--系统与进程的通用平台(英文影印版)

http://www.dearbook.com.cn/book/viewbook.aspx?pno=TS00110549
2007-3-3 20:57
0
雪    币: 235
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
我只想了解一下壳里面的虚拟机技术到底指什么呢?可不可以详细解释一下啊?最好打个具体的比方!谢谢!
2007-3-3 21:23
0
雪    币: 235
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
4
打个比方,虚拟机把MOV EAX,0都翻译成10行代码(复杂化),但效果一样,以后每次遇到MOV EAX,0这个指令都翻译成那10行,虚拟机技术是这个意思吗?
2007-3-3 21:41
0
雪    币: 494
活跃值: (629)
能力值: ( LV9,RANK:1210 )
在线值:
发帖
回帖
粉丝
5
最初由 iamcrackin 发布
打个比方,虚拟机把MOV EAX,0都翻译成10行代码(复杂化),但效果一样,以后每次遇到MOV EAX,0这个指令都翻译成那10行,虚拟机技术是这个意思吗?


不是,你所说的复杂化大概是指代码变形或混淆。VM有自己的指令集,你可以假设那是个执行不同指令集的CPU。我也不大懂,最好看看专门的介绍文章。就壳而言可以看看VMProtect或Themida,Execryptor
2007-3-3 22:01
0
雪    币: 235
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
6
你也不太懂?不会吧!据说Themida的VM已经被你完全搞定了!
2007-3-3 22:07
0
雪    币: 184
活跃值: (108)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
7
虚拟机就是虚拟出一个CPU,它有它自己的REG,有它自己的指令集。
而大家迷惑的是它自己的指令集和我们常用的8X86指令不同。但又运行在8x86上。

比如:
mov  eax,1 是8x86指令
在虚拟机上
vom xae,1   是虚拟机的指令 (胡诌的vom和寄存器xae)

编译后,vom xae,1是完全不同于8x86的指令了,可能变成了8x86上一系列的寄存器操等等。

对于壳来说,虚拟机不会太复杂,重要的是要把它的指令集和寄存器
给弄逆向出来,这样就明白了虚拟机它在干什么,后面的用8x86仿真还原它的指令就完了。

呵呵,玩单片机的年代,好想有个虚拟机,哎,现在虚拟机漫天飞。
2007-3-4 12:23
0
雪    币: 235
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
8
你看看我的理解对不对:比如他想表示这个指令mov eax,0(假如其2进制代码是101010)但他有自己的指令集,用他的指令集表示就是这样,www xxx,1,于是编译后的2进制就可能是111111,这样我们的OD反汇编就成了另一条指令了,比如反汇编成了push ecx.这样我们就不好分析了!对吗?
2007-3-4 12:30
0
雪    币: 235
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
9
那是在哪里编译的呢?它内含了自己的编译器,是吗?
2007-3-4 12:37
0
雪    币: 184
活跃值: (108)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
10
差不多把,但对于虚拟机来说,可能它的一条指令,到了8x86中可能是一系列的指令才能完成它。

你玩themida会发现,它在生成虚拟机的时候,就是它在编译虚拟机的代码。

这个要真把虚拟机说明白了真不容易,还好,luocong大侠有一个OM开源的脚本执行器,你看源码就能够对虚拟机有了初步的了解。
2007-3-4 12:38
0
雪    币: 235
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
11
谢了,我再慢慢消化一下!
2007-3-4 12:43
0
雪    币: 184
活跃值: (108)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
12
虚拟机是一个很大的课题,世界上最著名的软件公司都在致力于它的开发和完善。但对于壳来说,就不同了。

给你一个思路。

壳一般是把原来的指令偷掉,然后将这个指令翻译成它自己的指令,偷偷的放到它指令集中去运行,这样,我们OD看来,就变成了乱七八糟的指令,不明白它在干什么了。

出来混总是要还的,它运行完了,结果还是原来指令的结果。

脱壳中,虚拟机把原来的指令消灭了,变成了它在包办婚姻。
花指令是在原来的指令前后附近玩李鬼,原来的东西还在。

只能这样说了,不然论坛成QQ了。
2007-3-4 13:01
0
雪    币: 235
活跃值: (12)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
13
我完全明白了!谢谢大虾!
2007-3-4 13:47
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
14
借这个贴问个问题,所些所谓的虚拟指令在哪里看到的?
反汇编窗口吗?
2007-3-4 16:11
0
游客
登录 | 注册 方可回帖
返回
//