來研究一下脈衝啟動自製系統 - 改機

Table of Contents

※ 引述《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列而
已。

--

____ _ _ _ _ ____ _ _ ____ _____ ____
(_ _)( \( )( \/ )( ___)( \( )(_ _)( _ )( _ \
_)(_ ) ( \ / )__) ) ( )( )(_)( ) /
(____)(_)\_) \/ (____)(_)\_) (__) (_____)(_)\_)


--

All Comments

Linda avatarLinda2011-11-03
138列的程式碼就搞死凶盒子
Donna avatarDonna2011-11-07
那只不過是想法的實證(Proof of Concept)而已
Kelly avatarKelly2011-11-10
用DSP作 ?? XD
Lauren avatarLauren2011-11-14
只要能精密估計時間延遲的可程式化元件應該都可以應用
TI那堆貴得要死的DSP應該也能達成類似功能
Ula avatarUla2011-11-19
這串好專業 看不懂 不過我希望可以降價 改自製好貴
Callum avatarCallum2011-11-19
這串專業到 不知怎麼發問..