本篇文章是按照家用路由器裡面的內容來敘述的.
在目錄~/my_file/_dir605l_fw_113.bin.extracted/squashfs-root-0/下 執行cp $(which qemu-mips) ./
而後執行命令:sudo chroot . ./qemu-mips ./bin/boa(注意:書上是有錯誤的,chroot 後面缺少了乙個.)
而後報錯:
而後按照書上命令sudo chroot ./qemu-mips -g 1234 ./bin/boa
而後使用ida動態除錯,這裡要寫一下ida的設定,因為書上沒有詳細的 說明;
1.將boa這個檔案拖進ida裡面;
2.在ida裡面設定乙個斷點
3.debugger–>select bugger——>remote gdb debugger
4.debugger–>process options—->hostname 這裡寫127.0.0.1,為本地 主機,port填寫1234
而後繼續按照書上的步驟來,將apmib.c拷貝至~/my_file/_dir605l_fw_113.bin.extracted/squashfs-root-0/下:
而後使用命令mips-linux-gcc -wall -fpic -shared apmib.c -o apmib-ld.so編譯得到apmib-ld.so這個檔案:(這裡的apmib-ld.so是最終的,書上分了兩步才得到這個檔案,我這裡偷懶了,直接得到最終的.so檔案)
還有一步需要做的是需要將交叉編譯環境下的libgcc_s.so.1動態庫 複製 到dir-605路由器根檔案系統下面的lib目錄下(就是上圖的lib資料夾裡面).
使用ld_preload環境變數載入apmib-ld.so檔案,劫持apmib.so檔案裡面的apmib_init()函式,指令如下:
可以看到initialize ap mib failed!已經被修復!
而後繼續使用指令:
可以看到boa已經在執行了!!!
用netstat檢視當前網路連線:
發現已經開啟 了80埠的web服務!!!
這裡主要總結一下ida動態除錯的一些步驟:
1.將相關檔案拖進ida裡面;
2.在ida裡面設定乙個斷點
3.debugger–>select bugger——>remote gdb debugger
4.debugger–>process options—->hostname 這裡寫127.0.0.1,為本地 主機,port填寫1234
5.debugger–>start process
注意:如果是在物理機裡面遠端除錯的話還需要將linux_server上傳於相關目錄下面!!!
IDA動態除錯
使用ida開啟目標檔案。使用選單項上的 debugger 單擊 select debugger 再根據當前的檔案型別選擇合適的偵錯程式。我這裡除錯exe檔案時一般使用 local windows debugger 或 remote windows debugger。這裡需要注意的是,在ida7.0版...
利用Qemu搭建核心除錯環境
一 核心除錯的原理 傳統除錯核心需要配置兩台linux主機,其中一台主機稱為開發機,另一台主機稱為目標機。開發機中除了有乙個可執行的linux環境,還應包含必要的開發環境 gcc gdb make等 以及核心原始碼,目標機則需要能夠啟動核心並掛載乙個有效的檔案系統,可以將執行在目標機中待除錯核心稱為...
IDA遠端除錯linux
1 安裝ida後,在安裝目錄下會有linux server程式,將該程式拷貝到linux機器上,比如放在 home目錄下。2 在linux機器上 linux server 執行該程式。3 將linux系統中要除錯的程式拷貝乙份到windows,比如在linux中,要除錯的程式是 sbin link ...