首页
社区
课程
招聘
[分享]滴水双机VT调试器升级版V1.2支持AMD 3000+以上即可安装
发表于: 2009-4-3 15:38 197417

[分享]滴水双机VT调试器升级版V1.2支持AMD 3000+以上即可安装

2009-4-3 15:38
197417
收藏
免费 0
支持
分享
最新回复 (340)
雪    币: 150
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
151
swift 是强人了  几句话把作者问的 。。。
   我估计这个调试器技术含量是有的 但是还是半成品 并不成熟稳定
2009-4-21 08:35
0
雪    币: 21
活跃值: (44)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
152
多谢大家的支持。我们的本意就是提供一个调试工具,他的用途可不仅仅是做外挂、木马。只不过大家首先想到可以用来做外挂、木马而已。所有人都可以用啊。如果有人愿意用我们的工具,我们当然欢迎。如果有人不愿意用,也不准其他人用,那就不合情理啦。
2009-4-21 08:41
0
雪    币: 263
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
153
43楼的理解能力有问题
44楼被43楼误倒了

我没看出来有人不准其他人用
事实上Nooby说的很有道理
大家为了解决一件事情,肯定会挑选最低的成本去执行
这恰恰是给楼主最好的建议啊
2009-4-21 08:45
0
雪    币: 21
活跃值: (44)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
154
呵呵,我的回复并不是只是针对43和42楼的,而是针对振兴外挂事业的说法。其实即使用了我们的调试器也不一定就能做出外挂,根本还是靠个人的功力,我们只是提供工具而已。至于成本的问题,那就具体情况具体分析了,3000元的价码并不是很高的成本。至于硬件调试器300万的报价的确比较高,但是如果降到3万,相信依然没有几个人会买的。我们更多的希望是能找到这款硬件调试器真正的用武之地,而不是简单搞定某个小玩意。杀鸡焉用宰牛刀?
2009-4-21 09:30
0
雪    币: 7325
活跃值: (3803)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
155
我又忽悠了~
2009-4-21 11:25
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
156
好东西。。
过了np还要分析。。
路还远着呢!
应该用途不只是这些吧
什么时候有空到你们公司看看带2台电脑让你们装一下。
2009-4-21 11:25
0
雪    币: 204
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
157
要是有分析虚拟机,和命令解释器的东西就更好了。
2009-4-21 11:27
0
雪    币: 193
活跃值: (1439)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
158
不知道现在讨论的是不是wildox说的滴水双机VT调试器(3000RMB的)???
最好来篇文章像Syser一样

如果真能够的话,这个价格应该还是可以接受,WL好像也3K多了
2009-4-21 11:59
0
雪    币: 240
活跃值: (78)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
159
你可以把我们的程序看成是一个引擎......”,这个引擎运行于被调试机上?既然是一个程序,为何称为“芯片级硬件调试器”?对硬件/芯片做了何种增改?独创私密技术可以不用把细节描述的很详细,大概讲讲即可,比如说把主板的某个芯片换掉了......

你在前面的帖子里提到,安装一个“BIOS卡”就可以调试BIOS了,这其实是有问题的。x86架构里任何PCI设备ROM内的初始化代码,包括显卡,以太网卡等,都是在BIOS初始化(始自F000:FFF0)之后才执行的。等你的“BIOS卡”初始化后,F000:FFF0处的代码早已执行过了,谈何调试呢?

另外你提到“如果调LINUX或者别的已知或未知的操作系统,同样做接口调用即可”。看来你的“接口”是依赖于特定操作系统了,这里问题就更大了。本来用调试器就是为了探索一个未知的操作系统,现在这个待调试、探索的操作系统还要通过别的途径来熟悉一下,做个接口,然后才能用你们的“硬件调试器”去调试,这不是本末倒置了吗?Linux系统可能还容易一些,毕竟有源代码,没调试器的情况下纯静态分析也可行,但是一个全新的,闭源的操作系统怎么办呢?

2009-4-21 13:06
0
雪    币: 21
活跃值: (44)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
160
1、核心技术在于:通过重新配置和定义X86CPU芯片的功能,从而实现其调试功能。
2、没有比CPU更底层的了,如果能够控制CPU,还有什么做不到的呢?
3、硬件调试器引擎本身不依赖于任何操作系统,就像CPU一样,至于装什么操作系统都可以,但如果要得到和保存调试信息就必须涉及到显示界面的问题,故而BIOS或其他任何操作系统都要有相应View才可以实用。
4、之所以叫X86硬件调试器,因为必须匹配386以上CPU,且程序无法独立运行,必须对通用CPU重新配置才可以。
2009-4-21 14:22
0
雪    币: 22
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
161
43楼说的不错
44楼正解
45楼歪曲事实啊,果真测试出了这2个人的关系,的确不一般..亡羊补牢的故事都能被在典故,作文肯定写的不错
51楼是答案
2009-4-21 17:13
0
雪    币: 22
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
162
开玩笑的啦,我折腾下你们,戏演完了,那该批判我就批判我把,有时候我停闲不住的
2009-4-21 17:19
0
雪    币: 240
活跃值: (78)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
163
绕,接着绕...

1.你们主页上硬件调试器那台样机,HP6515b笔记本电脑,为了能“控制CPU”,有没有对主板上的电子元器件(IC,电阻,电容,飞线等)增减修改?有没有在左下角的Cardbus插槽里面插入你们自制的卡?这两个问题请直接回答“有”或者“没有”即可,也可出于保密拒绝回答,不要再绕了。

2.还是先前的问题,你的调试界面都显示出来了,那么显卡ROM也初始化过了,这个时候如何调试之前早已执行过的BIOS初始化指令(始自F000:FFF0)?

By the way:刚发现这个帖子的题目是双机VT调试器,我在这里却讨论它的同源产品硬件调试器,似乎跑题了。为了节省版面还是留在这里吧。值得提出的是楼主的双机VT调试器还是有很大实用价值的,如果能继续完善,一定会大受欢迎。

2009-4-21 18:00
0
雪    币: 21
活跃值: (44)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
164
本来就不想在这里讨论更深层次的问题,让你加QQ,你又不乐意,那有什么办法?你懂得怎么修改Intel 和AMD的微码吗?如果你不懂修改微码的话就没什么值得讨论的了,说了你也不懂!如果懂就在QQ里聊,不要占用论坛的版面,太专业的东西很少有人看明白的。
2009-4-21 18:21
0
雪    币: 82
活跃值: (10)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
165
我不懂,我联系你,你当场修改给我看吗?
2009-4-21 18:26
0
雪    币: 7325
活跃值: (3803)
能力值: (RANK:1130 )
在线值:
发帖
回帖
粉丝
166
转    载:


在十多年前的Pentium时代, INTEL曾经发布过有缺陷的CPU, 因为浮点运算表边界上有几个数据错误, 导致在某些应用会出现错误, 这个错误概率很小, 出错几率小于千万分之一, 但在还是被捅出来了. INTEL为此召回CPU.

从Pentium Pro起, INTEL决定给CPU留出一个补丁接口, 当CPU内部有缺陷的时候, 通过加载微码(Microcode), 可以修复CPU的部分缺陷.

INTEL说, 他们只测试过的CPU都是加载了微码的, 如果没有加载微码, INTEL不保证会出现什么问题.

现在的CPU有一个CPUID, 通过执行CPUID指令, 可以知道当前CPU的版本和Stepping. 根据这个信息, 再给CPU打相应的补丁.

下图就是CPUID=06D2, Rev.A2


何时给CPU打补丁?

在给CPU初始化的时候, 就需要把INTEL提供的微码写进CPU去, 因此, 加载CPU微码就是系统BIOS的任务.

如果系统的CPU是可更换的, 那么其微码也需要更换. 因此, 在BIOD里, 一般要包进若干个ID的CPU微码, 以便工厂安排不同的SKU出货. 如果BIOS发布是在CPU发布之前, 那么BIOS里很可能就没有包进最新的微码, 这个系统要使用新CPU的时候, CPU微码是无法加载的.

另外, BIOS ROM容量有限, 一个微码补丁最小有2K, 如果平台兼容的CPU很多, 则微码数量是十分巨大的, 台式机某些主板可能兼容20多个CPU版本, 那么微码的体积很大, BIOS里根本包不下这么多东西, 于是, 厂商不得不缩水, 去掉一些不常用的微码. 这些不常用的微码一般都是早期的CPU, 如DOTHAN早期的A STEPPING就很可能没有对应的微码包进你的本本中去.

不打补丁会有什么问题?

INTEL说他们没测过不打补丁的CPU, 也就不知道会出什么问题. 呵呵, 这显然, 他们不想说太多技术细节而已. 以俺的经验, 如果不打补丁, 99.99%的时候, 用户是感觉不到的, 除非问题特别突出. 只是俺遇到过几个明显的例子, 为此出了几身汗. 有几个案例:

1, 某Prescott CPU, 在台式机上发热量特别大, 超出Design Point, 后来发现没加载微码, 加上微码就正常了;
2, 某Pentium D CPU, 进WINDOWS XP会蓝屏, 以安全模式进去后, 安装一个SP2补丁, 就正常了. 后来查出, 也是微码没加载;
3, 某Pentium M架构CPU, 在使用CPU内部TSC时, 发现测出的CPU内部频率高出实现的4倍, 如2GHz CPU测出却有8GHz, 后查, 也是没加载微码造成的异常.

此类案例很多, 特别是Core架构CPU, 不但微码必须加载, 而且要求尽早加载, 否则, 连BIOS都跑不完, 系统就挂了. 但是INTEL但至今没有任何官方对每个CPU微码版本进行描述的文件.

怎么检查CPU微码是否加载?

加载微码后, 在CPU的MSR(机器特定寄存器)里可以读出版本号. INTEL IA-32编程手册上给出标准检查方法:

MOV ECX, 008bh
XOR EAX, EAX
XOR EDX, EDX
WRMSR ;向MSR 8BH写0, 清除MSR中的信息

MOV EAX, 0001
CPUID ;读CPUID, 让CPU查看微码版本, 并把微码版本送到MSR 8B中

MOV ECX, 008bh
RDMSR ;读出当前CPU微码版本
执行上面的代码后, 如果EDX的值为0, 则说明你的CPU微码是没有没加载的, 你的CPU运行在有缺陷的状态. 如果不为0, 则显示的是当前微码版本号

以上代码可以在DOS环境下, 用DEBUG32调试界面执行.

我很郁闷……

我有一个杂牌的本本, 上的是Dothan CPU, 某一天, 俺升级CPU, 却发现发热水平异常, 于是检查微码加载情况, 果然, BIOS里没有这种CPU版本的微码

换回原来的原厂CPU继续一测, 竟然也没有加载微码

后来换了Banias CPU才测到CPU微码加载上了. 也就是说, 厂商在升级CPU的时候, 居然没有升级BIOS, 这就是某些小品牌电脑厂商的水平, 郁闷

你的CPU升了么?

很多同学把低配的T4X本本换了CPU, 不知道这些同学用得怎么样, 呵呵, 你检查过你的CPU微码么? BIOS有升级支持么?
2009-4-21 18:34
0
雪    币: 8209
活跃值: (4528)
能力值: ( LV15,RANK:2473 )
在线值:
发帖
回帖
粉丝
167
好像楼主做过一个虚拟机保护系统,据说是捆绑了个vmware 4.5.1 build-7568内核
难道这次又瞄上DriverStudio了
2009-4-21 18:42
0
雪    币: 82
活跃值: (10)
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
168
他说是可以修改微码,也就是自定义,光是加载的话什么时候都能加,要硬件调试器干嘛啊
2009-4-21 18:45
0
雪    币: 211
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
169
swift:我来说一说对这一个"硬件调试器"的理解吧,或说猜想技术:
以下是我假设的结果,不敢说一定是这样,如果这一个调试器没有用到386的硬件调试接口,又能实现部分硬件调试器的功能,而且他使用了VT技术的,它的实现原理应是这样子:
1.VT引擎,完成了一个VT引擎,这样做可以把操作系统或BIOS部分虚拟运行它上面,根据VT技术,如果先不说调试BIOS那一部分,很简单的就是在引导区第一行代码前加载自己的VT引擎,再去控制和调试原来的磁盘引导区代码,这样可以做到从操作系统第一行代码开始执行调试,不过这样的产品太容易给复制,不合适用来做产品,也卖不起价钱;
2.找一个PCI卡,然后把引擎写进去,识别为SCSI卡,在BIOS里面设置启动顺序,这样就可以解决上面的问题,产品也好卖,安全性也有提高;
3.要是真要去调试bios部分,这里有点复杂了,不过也不是不可能做到,直接修改主板,把BIOS强制从PCI上蕊片的BIOS上启动,这样提前切入控制,加载引擎,再加载调试的BIOS,因为PCI卡上可以把信息直接把信息传送到别一台机器上,所以可以省点了初始化显卡等功能,要是很熟悉硬件和软件设计的人应可以实现上面的功能;
4.关于无限断点的猜想,其实x86 cpu硬件支持的DR寄存器只有4个,要修改CPU功能来实现无限断点我个人感觉是不实现,CPU也没有提供烧ROM的功能来作CPU二次开发,可能他是这样实现的,VT模式下面,用影子内存来制作非ROOT机器上的内存映射,再用缺页的方式得到控制权,再分析代码的读,写,执行功能,这样再模拟相应的功能;
以上几点是我个人在VT技术考虑到可能实现的办法,终上所得,可以实现硬件调试器的大部分功能,不过在没有看到实物的情况下,不能确认是不是真是这样的原理,在这里希望有兴趣了解VT或学习VT的朋友一起交流一下这方面的技术.
2009-4-21 18:47
0
雪    币: 21
活跃值: (44)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
170
你分析的非常不错,对VT还是很了解的。你对我们的双机VT调试器应该会理解的很透。但是我们的硬件调试器使用的不是VT技术。我们的硬件调试器只需要普通CPU即可,无需VT支持。不知为何大家还是混淆,在此再次申明:
1、双机VT调试器和硬件调试器是两个完全独立的产品;
2、双机VT调试器需要VT CPU支持,硬件调试器只需普通CPU即可!
3、VT调试器只能设4个硬件断点,设软件断点的时候需要插入0XCC,硬件调试器可以设任意多个硬件断点,设软件断点的时候不需要插入任何代码。
2009-4-21 19:16
0
雪    币: 240
活跃值: (78)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
171
我在97楼已经提到过Microcode Update了。

因为我目前没能力对Intel的处理器进行硬件逆向工程,我完全不了解Intel Microcode的结构,因此也无法构造出修改的Microcode。Intel的Microcode是强加密的,有很多研究机构企图通过Intel官方几年来发布的Intel Microcode Update来研究它的秘密,也就是所谓的“已知密文分析”,但是目前还没听说有成功的。

你提出你懂得如何改Microcode。好,我可以验证这一点!你能否上传一份经你修改的任意有效的Intel Microcode,比如把ES和FS位置互换一下,或是直接当机也行。注意,未通过Intel数字签名验证的Microcode Update会被直接丢弃掉并返回错误代码。Intel所有处理器历次官方公布的Microcode Update我这里也有备份,不要拿来冒充。

论坛的版面本来就是用来讨论技术的,难道你认为这里高手不多?

2009-4-21 19:39
0
雪    币: 21
活跃值: (44)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
172
这是保密的,不可外传!如果你能做到的话,可以切磋一下,如果不能,我们也不能告诉你啊!不然你就买台硬件调试器回去验证一下!
2009-4-21 19:55
0
雪    币: 240
活跃值: (78)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
173
你说的这个确实是一个比较好的VT双机调试方案。

前一段时间由于我在搭建64位的,基于劫持总线的硬件调试器上遇到很多困难,但是又迫切需要调试64位的操作系统,于是就用修改的xen作被调试机,被调试机上有一个专用以太网卡和主控机进行通讯,主控端用的是gdb,远程调试通讯协议也是gdb。断点确实是用“缺页”实现的。这个方案用来调试操作系统还可以,但是PCI卡的ROM以及BIOS就调试不成,而且VT不支持实模式,所以理论上不支持所有的操作系统。
另外,缺页也导致运行到断点所在页时性能大幅下降。而且gdb没有分析Windows系统进程上下文的能力,毕竟Numega花费了数年时间造出的Softice,相比而言我对Windows核心缺乏深入了解。

2009-4-21 19:56
0
雪    币: 240
活跃值: (78)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
174
我做不到。但是我能验证你能否做到。

任意修改的Microcode Update就行,大家都知道,拿到一份你的Microcode Update,对于探索Microcode几乎没有任何帮助。就像RSA,手里有公钥只能验证数字签名,不能制造数字签名。

你的硬件调试器太贵,300W。而且样机是AMD的CPU,不值得。

2009-4-21 20:00
0
雪    币: 21
活跃值: (44)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
175
我们慎重考虑,不会发给任何人,无法满足你的要求。非常遗憾!
2009-4-21 20:17
0
游客
登录 | 注册 方可回帖
返回
//