使用DCI和RTIT技術進行精準調優_嗶哩嗶哩_bilibili
每次看錄像都記錄一下。
PT/RTIT簡介
DCI技術即通過USB3.0接口去訪問調試目標機的JTAG組件,凡是運行在CPU上的代碼均可以進行調試,這就沒有了使用WinDBG調試時,會出現的不能調試敏感代碼的問題,并且沒有反調試的方法;如果想要提高調試技術的話,利用DCI技術去輔助自己,無疑是上乘的選擇;這堂課,張銀奎老師便會手把手的帶你使用GDK7去調試!
1. 2012年以后的新的CPU才支持,當然現在是2025年了,大部分都支持。CPU記錄是消耗內存的,BIOS中可以設置內存大小。甚至的是每個CPU占用的內存大小。
2. 講課看來是2020年,nanocode還不完善,把ubuntu解析成了win7,這個工具看來還是在wind不過的思路基礎上開發的。到處都是windbg的影子。
激活RTIT并抓取CPU日志
擴展命令!ptext64.help !ptext64.showoutputconfig
可以看到每個CPU有64k, 其中0,3號CPU已經
rdmsr 570? ---打開和關閉RTIT開關,可以查看intel手冊
實際執行如下:
說明0號CPU是啟用的。formats命令用來顯示不同格式,很有用的技巧。
2號CPU最后是C,C的最后一位是0,所以2號CPU沒有啟用。
1號和2號都沒有啟用,用格蠹的!pto命令打開1號CPU,截圖如下
在ubuntu上用綁定1號CPU的程序跑一段,然后再中斷下來觀察。
切換到1號CPU,關閉PT, ptf的f代表off,關閉的意思,沒有成功,直接使用wrmsr 570 200c
使用!ptext64.showoutputconfig 可以看到1號CPU上有數據了
把內容保存到文件,是從DCI遠程把數據取回
CPU的日記是這個樣子:
看不懂,需要解碼,如下命令:!ptd
程序流程包
使用測試程序geipt進行函數調優的演示,CPU日志加CR3過濾
!ps 0 0 geipt --沒有顯示CR3
!ps? 列所有進程,終于找到了geipt的CR3
在未啟用的2號CPU指定CR3的地址,把CR3作為過濾條件
在ubuntu上執行geipt程序,鼠標點幾下。
先查看有沒有數據:
有數據了。保存下來:
解碼:!ptd --這是快速解碼,這是過濾后的
?