首页
社区
课程
招聘
游戏维护上不去,介绍一下虚拟机技术。
发表于: 2006-1-26 11:21 17562

游戏维护上不去,介绍一下虚拟机技术。

2006-1-26 11:21
17562

StarForce、Execryptor 等猛壳强大的奥妙在哪里?就是运用虚拟机技术使
分析工作很困难。研究破解难免遇到 VB 写的 Pcode 程序,如果没有 WKT 的调
试器肯定会腾云驾雾吧……

    “他不爱胡闹,……又不喜嬲着女同学讲恋爱。”――茅盾《蚀》

    你上小学的时候老师教你识字,指着上面的一个字说这个字是嬲字,是戏弄
的意思,于是你再见到这个字就知道了这个嬲字念做 niao3,是戏弄的意思。

    在 CPU 里,制作芯片的工程师就扮演老师,而 CPU 就充当你,以前用继电
器现在用集成电路,通过一些组合(如果你也想装个玩具芯片,可以看《CODE》
这本书)能够识别出数据并执行相应的功能,就像你能够根据汉字的形状联想到
它的读音和意义。

    学破解的时候教程上都说,这个就是关键一跳(或者飞向光明之巅,摘自
《fly 语录》),把它 NOP 掉。你一定已经知道了就是把这条指令都改成 90,
为什么是 90 而不是 88 或者 66?这个问题真的很难解释,因为这是 Intel 定
的,就像嬲念 niao3 而不念做 cao4 不是……的意思一样。

    我们的 CPU 都只按照 Intel 标准识别代码。反汇编器按照相反的规则把二
进制代码变回我们认识的助记符号,把硬盘上的 50 变成 push eax,当然好理解
多了。

    你应该已经意识到,如果代码定义被我们颠覆了,反编译器就什么都做不了
啦,哈哈,不能放过每一个邪恶的念头,让我们来试试吧。

    当然我们不能去改造 CPU,因为用户装你的软件不会包路费让你过来给他改
CPU,再说你改了 CPU Windows 都不能运行了,所以我们要借助模拟执行。

    又一个新名词,我讨厌新名词。如果你不是外籍华裔,而又学过英语的话,想
象一下刚开始学的时候,我们学到 shit 这个词的时候得用汉语想一下这个词就是
汉语狗屎的意思,我们的汉语已经成为思维的基础,就像 CPU 执行 Intel 指令一
样,而中间 shit - 狗屎的关系则是后来学习得到的,我们的思维过程是:看见
shit,翻译成中文狗屎,联想狗屎这个意象或者别的什么东西-_-!

    这就是模拟执行。我们仿照这个过程写个程序,读出我们安排好的新代码,执
行对应的过程就行了。我用伪语言描述一个:

要执行的代码 mycode = {"shit", "kiss", "kick", "die"}
指令解析器:
        for(i=0 ; i<=4 ; i++)
        {
                switch(mycode[i])
                case        "shit":
                        Put_a_shit();
                case        "kiss":
                        Kiss_it();
                case        "kick":
                        Be_kicked_by_it();
                case        "die":
                        Its_time_to_die();
        }
模拟器:
        Put_a_shit()
        {
                Shit = TRUE;       
        }
        Kiss_it()
        {
                ...怎么kiss自己想吧,我想不出来...
        }
        Be_kicked_by_it()
        {
                ExitProcess(-12345678);
        }
        Its_time_to_die()
        {
                ExitWindows(...);
        }

    是不是有点体会了?这就是最简单的虚拟机,像 VMare 之类的虚拟机还要模拟
出硬件,处理中断反映给真实机器,那就复杂了我们也用不到。

    打字很累就这样吧。

forgot/iPB
2006.1.26
       

btw:code inject老见你飘论坛怎么qq不转了?


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

收藏
免费 7
支持
分享
最新回复 (13)
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
2
汉。你这叫解释器
2006-1-26 11:34
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
3
虚拟机在正文最后一行,你看好了。。。
2006-1-26 11:48
0
雪    币: 0
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
4
forgot又来大放厥词了
2006-1-26 12:02
0
雪    币: 233
活跃值: (130)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5
code 的QQ被南蛮妈妈盗了
2006-1-26 13:12
0
雪    币: 339
活跃值: (1510)
能力值: ( LV13,RANK:970 )
在线值:
发帖
回帖
粉丝
6
是r是r,最后果真象征性提了一句
2006-1-26 14:05
0
雪    币: 288
活跃值: (415)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
7
forgot又来做洗脑工作了  
2006-1-26 14:18
0
雪    币: 254
活跃值: (126)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
8
最初由 forgot 发布
虚拟机在正文最后一行,你看好了。。。


你说的是这一行吧:“打字很累就这样吧。”
2006-1-26 14:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
是这个

love christina 4ever
2006-1-26 15:01
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
菜鸟入门的好文章
2006-1-26 15:19
0
雪    币: 234
活跃值: (104)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
在玩啥游戏啊?
2006-1-26 16:07
0
雪    币: 159
活跃值: (339)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
12
科学普及要从forgot抓起
2006-1-29 10:00
0
雪    币: 206
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
前脚remember后脚forgot!
2006-1-29 11:06
0
雪    币: 228
活跃值: (119)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
14
看来得好好学习一下编译技术.其实虚拟机就是编译技术的一个分之,可惜以前没学过.
2006-1-29 12:41
0
游客
登录 | 注册 方可回帖
返回
//