接上一篇編程器讀固件 http://m.81jnr2m.cn/tv-1198024-1-1.html端午前逆向固件,就已經(jīng)把找到了進(jìn)fastboot的方式,一直也沒時(shí)間焊接emmc芯片。端午節(jié)放完假,昨天下午開始焊接。焊接不是很順利,芯片來回拆、焊兩三次,一直開不了機(jī),還把焊點(diǎn)弄掉了幾個(gè),搞到一度以為搞壞了。還好是幾個(gè)無用的焊點(diǎn),今天上午終于把emmc芯片焊上去了,順利開機(jī),也順利進(jìn)入fastboot模式,以后燒寫固件不用拆芯片,來回折騰了,真開心。
下面詳細(xì)介紹,這篇主要以介紹fastboot逆向?yàn)橹?,以后如果fastboot進(jìn)入不了,可以借鑒。如果熟悉uboot的源碼,逆向起來會輕車熟路。
上一篇已經(jīng)讀出了fastboot.img,然后直接上IDA,構(gòu)架選擇arm little。翻到地址0x8500,就可以看到arm標(biāo)志的中斷表。
中斷表.png (104.97 KB, 下載次數(shù): 113)
下載附件
保存到相冊
2021-6-16 10:25 上傳
跳到第一個(gè)函數(shù)0x8560,繼續(xù)往下到0x8690,發(fā)現(xiàn)跳轉(zhuǎn)到0xC08F80,這里斷了;往回看,發(fā)現(xiàn)這里有兩個(gè)copy函數(shù),第一個(gè)copy比較當(dāng)前運(yùn)行地址段是否在0xc00000,不是則把0~0xf6000拷貝到0xc00000~0xcf6000;第二個(gè)copy拷貝0xc08500處的arm中斷表到高地址位0xffff0000,這里我們不用關(guān)心,可以忽略。我們只需再重新按照它的布局構(gòu)造一個(gè)內(nèi)存dump文件,重新IDA。
函數(shù)1.png (88.98 KB, 下載次數(shù): 122)
下載附件
保存到相冊
2021-6-16 10:32 上傳
重新制作內(nèi)存dump之后,如下,中斷表已經(jīng)出現(xiàn)了具體函數(shù)。我們直接跳到上面中斷的函數(shù)C08F80處,開始逆向第一個(gè)函數(shù)0xC08F80(board_init_f)。
dump之后.png (40.1 KB, 下載次數(shù): 119)
下載附件
保存到相冊
2021-6-16 10:44 上傳
查看我們第一個(gè)board_init_f函數(shù),我們基本可以找到我們所需要的重要函數(shù),包括串口打印函數(shù)puts,serial_printf,獲取環(huán)境變量函數(shù)getenv,我們直接跟蹤最下面的一個(gè)函數(shù)main_loop
board_init_f.png (67.8 KB, 下載次數(shù): 118)
下載附件
保存到相冊
2021-6-16 10:51 上傳
我們要找的串口中斷fastboot處理就在main_loop函數(shù)中,函數(shù)開始getenv("bootdelay")其實(shí)就是從bootargs分區(qū)中獲取bootdelay的條目參數(shù),上一篇備份固件文章中提到的記錄分區(qū)表的那個(gè)分區(qū),這個(gè)條目參數(shù)值為0,函數(shù)做了判斷,等于0時(shí),賦值為1s,我之前的猜測是錯(cuò)誤的。往下getenv("bootdelaykey"),getenv("bootstopkey"),bootargs分區(qū)中沒有這兩個(gè)條目參數(shù),getenv返回回來就為0(NULL),下方判斷如果這兩個(gè)為0的話,就是默認(rèn)初始化為 "hisilicon #" 和 "]",上電的時(shí)候我們只需要輸入這兩個(gè)字符串就可以進(jìn)入fastboot模式,里面根本就沒有檢測ctrl+c的檢測,這也就是我們之前按ctrl+c沒有反應(yīng)的原因。
main_loop.png (121.24 KB, 下載次數(shù): 120)
下載附件
保存到相冊
2021-6-16 10:56 上傳
為了以防萬一,我還是修改了bootargs分區(qū)中bootdelay的參數(shù),把時(shí)間改為5s,前4個(gè)字節(jié)為CRC32的校驗(yàn)。
bootArg.png (53.84 KB, 下載次數(shù): 123)
下載附件
保存到相冊
2021-6-16 11:12 上傳
CRC32.png (29.03 KB, 下載次數(shù): 121)
下載附件
保存到相冊
2021-6-16 11:14 上傳
bootargs寫回到emmc芯片,芯片焊接回去,接好串口上電,輸入 hisilicon # 或者 ,串口接線圖論壇中有,我的文章中也有介紹,有需要自己回去看
fastboot.png (45.9 KB, 下載次數(shù): 114)
下載附件
保存到相冊
2021-6-16 11:20 上傳
進(jìn)入fastboot模式成功..........到此結(jié)束。
寫文章不容易,請留下你們的腳印,看評論熱度,后續(xù)再更新、
|