好友
阅读权限 10
听众
最后登录 1970-1-1
本帖最后由 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有几种连接方式,如下图
(来自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很正常,后面的版本也都会及时修复,下面放几张图
这是选择调试方式的界面,我一般用dci open
这是程序调试界面,我没用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, 下载次数: 37)
dci_intel_user.rar
(337.53 KB, 下载次数: 23)
guide-intel-debug-and-trace.rar
(731.39 KB, 下载次数: 25)
slla371a.rar
(98.87 KB, 下载次数: 12)
usbdebug_user.rar
(329.25 KB, 下载次数: 19)
免费评分
查看全部评分