IDA除錯QEMU修復除錯環境

2021-09-11 08:50:26 字數 2041 閱讀 4258

本篇文章是按照家用路由器裡面的內容來敘述的.

在目錄~/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 ...