MS內建的debug.exe只支援到64KB大小的檔案,當檔案超過64KB的時候該怎麼辦呢?
很簡單,利用split之類的工具將binary file切割成多個64KB的檔案再使用debug.exe將這些檔案以hex格式dump出來,透過console傳到(眉角在此)目標主機上之後再利用debug所提供的db指令在debug將hex格式還原成binary file的時候把多個64KB檔案重新組合成為單一binary file(我知道有點繞口)。
主要的幾個步驟:
1. 將debug script餵給debug產生出第一個bin file, eg. debug < a.txt > a.bin
2. 使用debug開啟bin file, eg. debug a.bin
3. 在debug內移到a.bin的結尾
4. 使用db將其他幾個檔案的hex data倒到a.bin的後面,完成後記憶體中的內容就與原來的bin file一模一樣了!
5. 利用(1)的debug script中寫入檔案的指令將所有資料寫入b.bin
6. 完成
目前不確定(2)~(6)是否能夠寫到script讓debug自動執行,需要再做實驗&研究,eg.
debug a.bin < 3_to_6.script
以下幾個links有debug的相關資訊:
http://kipirvine.com/asm/debug/Debug_Tutorial.pdf
http://www.moon-soft.com/program/bbs/readelite553716.htm
http://www.itepub.net/html/kaifawendang/C__/wenjian_mulu_ziyuan/2006/0429/6758.html
No comments:
Post a Comment