吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 6518|回复: 14
收起左侧

[Other] 对windows和linux内核调试套件gdk7和intel dci 硬件调试技术的一个简单评测

  [复制链接]
nj001 发表于 2020-7-8 19:42
本帖最后由 nj001 于 2020-7-9 15:53 编辑

一.关于dci技术的一点介绍
     The Intel Direct Connect Interface (DCl) allows debugging of Intel targets using the USB3 port. The technology supports debugging via the USB Stack (DCI DbC)as well as a dedicated protocol using a USB3 connector only (DCI OOB)
     简单来说就是可以使用usb3接口访问调试目标机CPU的jtag组件,所以CPU调试技术仍然靠jtag支持,只不过在这之上新加入了一种连接方式,就是dci连接方式


二.与平时使用的调试工具的主要区别
     平时做windows内核调试时大多是使用windbg,windbg确实是很强大的调试工具,但是它也有做的不完美的地方,比如不允许调试某些函数,需要内核调试引擎的支持,,,,,还有不同版本之间的bug,,,,而使用dci技术进行调试就没有这些问题,因为它不需要目标机做任何软件层的支持,凡是运行在cpu上的代码均可调试,所以你可以那他来调试bios,内核调试引擎,nt内核,vt程序,smm等等等等,而且它还有一个的好处就是基本没有反调试的方法,因为它在目标价上不依赖软件,不占用内存,对cpu和内存来说是透明的


三.dci的分类
     jtag有几种连接方式,如下图
TIM图片20200708174210.png
(来自intel system studio)
左边是cpu型号,右边是支持的连接方式,可以看到10代cpu支持dci oob方式,dci usb方式和xdp方式
     为了能方便简单的使用dci技术,一般使用usb方式,oob方式似乎需要和intel签署协议而且价格也不便宜,需要300刀
    usb方式就简单了,直接在调试目标机和主机上插上一根usb3公对公接口的线就行了,虽然intel官网上标明需要专用调试电缆但是根据我在网上查到的资料,使用windbg的调试线(网上可以查到改造方法,某宝也有卖)或者普通的usb3公对公线都是可以的


四,启用dci
    使用dci技术的一大阻碍就是开启dci需要设置cpu莫些寄存器的莫些位,就像在bios里开启vt选项一样,dci的设置同样在bios里,但是现在大多数电脑的bios里没有这个选项,而且是默认设置为关闭的,所以需要修改bios的默认设置来开启dci,不过好消息是大多数电脑的bios里与dci相关的东西很容易借助工具修改,可以参考以下文章


https://casualhacking.io/blog/2019/6/2/debug-uefi-code-by-single-stepping-your-coffee-lake-s-hardware-cpu

https://gist.github.com/eiselekd/d235b52a1615c79d3c6b3912731ab9b2
(我曾想自己组一个调试机器,于是买了一个nuc,小巧便携,只不过这东西最大的问题是它的bios种类跟其他bios不一样,修改起来很麻烦,于是我放弃了.....还有,修改bios有风险,最好事前用编程器备份一下)
     假如你已经设置好了dci,并且有一根usb3的线,那你可以试试使用dci进行调试了,无论你用windows还是linux,只要是跑在cpu上的代码都可以进行调试,假如它有一个特权级的话,我觉得应该标注成r-3,


五,对于gdk7的一些感受
    我自己对dci这个技术是很看好的,因为它对目标机的影响最小,有很强的调试能力,但是我之前尝试搞一个确失败了,.....花了好几天时间没搞成,挺郁闷的,后来看到了gdk7相关的东西考虑了之后就决定买了,还是图个方便,不想再自己折腾了,而且使用之后觉得还不错,gdk7的硬件说实话配置不高调试个程序,内核之类的够用,跑游戏估计够呛,我主要看中它提供的软件nanocode,这个软件复用了windbg的调试引擎,用它来调试windows基本不用再学习什么新的东西,上手就能用,不过它毕竟不是windbg我在使用的时候发现还是有不同于windbg的地方,还有一些小bug,不过这都可以理解,毕竟是新产品,有些bug很正常,后面的版本也都会及时修复,下面放几张图
YJ9GJRL68KH@V6C`TK{76K1.png
这是选择调试方式的界面,我一般用dci open
B7G63)_[9G%%`_D]CKX@NJ6.png
这是程序调试界面,我没用dci这只是调试一个普通程序,dci调试内核跟这个差不多
我觉得nanocode做的很好的一个地方就是它能加载符号,如果用intel system studio的话,如果我没记错应该是不能加载符号的,而且nanocode对linux内核调试的支持也很好,gdk7装了两个系统,一个win10,一个乌班图,可以在开机时选择调试那个系统,如果你对这个感兴趣的话可以看看
http://advdbg.org/gdk/


还有一些我之前看到的资料也放上来吧

bh-asia-Goryachy-Ermolov-Intel-Visa-Through-the-Rabbit-Hole.rar (2.72 MB, 下载次数: 36) dci_intel_user.rar (337.53 KB, 下载次数: 21)

guide-intel-debug-and-trace.rar (731.39 KB, 下载次数: 24) slla371a.rar (98.87 KB, 下载次数: 11)

usbdebug_user.rar (329.25 KB, 下载次数: 18)



免费评分

参与人数 3吾爱币 +2 热心值 +3 收起 理由
砂砾酱 + 1 + 1 用心讨论,共获提升!
mymppp + 1 我很赞同!
zhczf + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| nj001 发表于 2020-7-9 12:54
wangyujie96 发表于 2020-7-9 09:39
好像vt刚出来的时候也说几乎没有反调试方法,然而?

vt是软件层的,既然是软件那么容易被搞也正常,这东西可就是硬件调试器了,有可能被反调试,但是我暂时想不到什么方法
observer6 发表于 2021-9-19 17:46
baolei1988 发表于 2020-7-10 17:09
这个是内核debug调试么

可以做内核调试,我有好几台dci调试设备。有一台t460s 开启了dci调试功能,可以转让给你,有意私信吧。
jc021227 发表于 2020-7-8 20:09
minibeetuaman 发表于 2020-7-8 21:21
为了拿衣服LZ也是够拼了!
wasami 发表于 2020-7-9 02:51
套路深了一些哦baby
wangyujie96 发表于 2020-7-9 09:39
好像vt刚出来的时候也说几乎没有反调试方法,然而?
头像被屏蔽
deng00200 发表于 2020-7-9 11:30
提示: 作者被禁止或删除 内容自动屏蔽
yao5201478 发表于 2020-7-9 16:32

谢谢分享,学习了~!
砂砾酱 发表于 2020-7-10 11:39
amd的cpu有类似的jtag 教程吗?
 楼主| nj001 发表于 2020-7-10 14:16
砂砾酱 发表于 2020-7-10 11:39
amd的cpu有类似的jtag 教程吗?

有仿真器,至于是否支持jtag我也不清楚,可以去官网看看,不过就是支持jtag,配件也会很贵的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-24 23:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表