Re: [X360] 來研究一下脈衝啟動自製系統
※ 引述《cheweichang (夏天就是要游泳 CheWei)》之銘言:
: (前文del......)
: (1)電路相關
: XC2C64A C-mod CPLD 目前買的山寨版有四種Layout
: 相關的電路圖下面有
: http://libxenon.org/index.php?topic=211.0
: 沒屋頂能買到的那個版本,要改的電話頗多(正反面都要改),請注意!
: (2)能不能用其他IC/單晶片取代?(如PIC系列)
: 理論上可以,下方有原始碼,有興趣自己看。
: https://github.com/gligli/tools/tree/master/reset_glitch_hack
: 但為何原作者要用CPLD來做,一定有他的道理。
個人的看法是這東西需要非常精準的觸發時序才有可能成功。上面連結中的說明
顯示,在厚機的破解上,必須在POST CODE 36時插入CPU_PLL_BYPASS指令,擾亂
CPU的時序,然後在POST CODE 39開始時啟動計時器,並在達到 62%指令時間時
送入長度為100 ns(10 MHz)的CPU_RESET 指令(個人猜測有部份的暫存器因此
被清空,導致memcmp的回傳值被判為真),最後再等候一段時間,才關閉
CPU_PLL_BYPASS指令。
在薄機上,由於沒有腳位可以注入CPU_PLL_BYPASS指令,因此擾亂 CPU時序必須
另尋他途,幸好薄機採用了可調式的倍頻生器,而且可自 I2C匯流排下達鎖相迴
路的設定值,薄機的 I2C匯流排又完全不設防,因此成為擾亂 CPU時序的工具。
一樣,在POST CODE D8時藉由 I2C匯流排將降頻的指令送給倍頻器,然後等待
POST CODE D8的到來啟動計時器,等到計時器達到指定值時,給予長度達 20 ns
(50 MHz)的CPU_RESET 指令,最後隔一段時間才回復正確的頻率設置。
在精準度要求很高的狀況中,連取樣造成的時間延遲都必須正確估計,因此作者
採用了比較易於估計時間延遲的CPLD。當然拿FPGA板來弄應該也可以,作者他們
寫的是VHDL,這東西並不太困難懂,比 C/C++還簡單。他們整個程式才 138列而
已。
--
○ ____ _ _ _ _ ____ _ _ ____ _____ ____
。 ★(_ _)( \( )( \/ )( ___)( \( )(_ _)( _ )( _ \
o _)(_ ) ( \ / )__) ) ( )( )(_)( ) / ● ‧
(____)(_)\_) \/ (____)(_)\_) (__) (_____)(_)\_) ★
o
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.120.31.137
→
10/29 15:41, , 1F
10/29 15:41, 1F
→
10/29 16:23, , 2F
10/29 16:23, 2F
→
10/29 20:55, , 3F
10/29 20:55, 3F
→
10/30 18:07, , 4F
10/30 18:07, 4F
→
10/30 18:07, , 5F
10/30 18:07, 5F
推
11/02 01:03, , 6F
11/02 01:03, 6F
推
02/12 03:06, , 7F
02/12 03:06, 7F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 4 之 4 篇):