首页
社区
课程
招聘
[原创]VM初探 讲述VM原理
发表于: 2010-11-13 17:21 40488

[原创]VM初探 讲述VM原理

2010-11-13 17:21
40488

小弟最近看了点vm   下面是一些心得体会  跟大家分享
通俗的讲 vm就是自己设计一套指令集  和一套解析这个虚拟指令集的引擎   把原本的386代码翻译成你自己的虚拟指令  然后调用你的虚拟引擎来执行这些虚拟指令。。。
这样说不知道合适不?   欢迎一起参与讨论
本文的目的是告诉大家虚拟机并不可怕    其实我们每个人都设计一套虚拟指令   这将是Cracker的噩梦。
这里感谢  jackozoo 版主提供的一个vm  CrackMe源码 作为我的参考资料
感谢 老罗的代码着色器

下面是最简单的一个vm例子  只虚拟了  push 和 call 指令


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2022-7-10 15:20 被kanxue编辑 ,原因:
收藏
免费 7
支持
分享
最新回复 (57)
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
希望不要误导大家。
2010-11-13 17:31
0
雪    币: 2323
活跃值: (4118)
能力值: ( LV12,RANK:530 )
在线值:
发帖
回帖
粉丝
3
刚起床,看到了,不错,稳坐沙发在说~~
2010-11-13 17:44
0
雪    币: 169
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
稳坐板凳  感谢楼主
2010-11-13 18:01
0
雪    币: 8333
活跃值: (2911)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
嗯..原理介绍的挺形象..

谢谢分享..
2010-11-13 18:09
0
雪    币: 207
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Nod
6
学习了。
2010-11-13 18:57
0
雪    币: 397
活跃值: (402)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
7
感谢简单易懂的说明思路
2010-11-13 19:42
0
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
support
2010-11-13 19:47
0
雪    币: 38
活跃值: (48)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
支持!!!!!!
2010-11-13 19:57
0
雪    币: 315
活跃值: (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
支持 LZ 把  VMP 或者 Winlincense 的虚拟指令逆一道
2010-11-13 20:02
0
雪    币: 1149
活跃值: (908)
能力值: ( LV13,RANK:260 )
在线值:
发帖
回帖
粉丝
11
看了 清新脱俗 。。。。VM  。。。
2010-11-13 20:07
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
12
我没腾讯的习惯。
我喜欢自己搞。
2010-11-13 20:52
0
雪    币: 611
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
这个架构,欠缺的东西太多太多了。。。
2010-11-13 21:04
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
14
是的
堆栈现场保存等等   太多太多的东西都没有
这个cpp就是说一下   到底什么是vm   讲述他的原理
2010-11-13 21:07
0
雪    币: 1246
活跃值: (4322)
能力值: ( LV5,RANK:69 )
在线值:
发帖
回帖
粉丝
15
继续学习   
2010-11-13 21:12
0
雪    币: 271
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wep
16
感谢LZ分享
2010-11-13 21:40
0
雪    币: 232
活跃值: (105)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
17
代码有点小瑕疵
修改如下
__vCall:
        inc ecx
        mov edx, dword ptr ds:[ecx]
        mov ebx,ecx
        call edx
        mov ecx,ebx
        add ecx, 4
        jmp __vstart

ECX在call messagebox之后被作为返回值场所,被修改了
2010-11-14 04:13
0
雪    币: 78
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
继续学习!继续学习.
2010-11-14 08:12
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
19
LZ这个是pcode~
vm是那样纠结蛋痛的样子~
2010-11-14 09:56
0
雪    币: 256
活跃值: (1699)
能力值: ( LV9,RANK:410 )
在线值:
发帖
回帖
粉丝
20
值得学习,支持楼主
2010-11-14 18:43
0
雪    币: 51
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
要做就做 VM中的VM,虚拟机中再用原子指令解释虚拟指令
2010-11-14 19:59
0
雪    币: 89
活跃值: (53)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
这个原理    值得深究
2010-11-14 21:05
0
雪    币: 306
活跃值: (85)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
23
谢谢lz,学习了..
2010-11-14 23:31
0
雪    币: 4590
活跃值: (3797)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
不错 对理解VM很好
2010-11-15 20:05
0
雪    币: 354
活跃值: (157)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
25
嗯,大早上起来看了这帖子,感觉神清气爽!
2010-11-16 08:15
0
游客
登录 | 注册 方可回帖
返回
//