使用IDA pro 逆向分析muc 固件的時候, 難免要進行一些動態的debug,來進一步搞清楚一些內存的數據、算法等,這時候使用遠程debug 的方式直接在mcu上進行debug 最合適不過了。 不過有個前提條件就是一般來說有的mcu 會被運行中的代碼屏蔽 RDP、禁用SWD口等,首先需要去掉 RDP 之后才能進行DEBUG
所需要工具:IDA pro Openocd 、STLINK/ATLINK
1、創建一個openocd 配置文件 比如為了調試 G071 MCU
# this need match your debug adaptor and target device
source [find interface/stlink-v2.cfg]
source [find target/stm32g0x.cfg]# halt target after gdb attached
$_TARGETNAME configure -event gdb-attach { halt }
重點是 當gdb attach上來的時候,自動 halt mcu
2、創建一個openocd 啟動文件
set OPENOCD_BIN_PATH="C:\Users\emsr\Developer\tools\mcu\openocd-v0.12.0\bin"
set OPENOCD_SCRIPT_PATH="C:\Users\emsr\Developer\tools\mcu\openocd-v0.12.0\scripts"%OPENOCD_BIN_PATH%\openocd.exe -s %OPENOCD_SCRIPT_PATH% -f .\ida-g071.cfg -c "init;reset init;reset halt;"
3、IDA pro 中 F9 喚出 debug
Debugger -》 process Option
在hostname 中輸入 “localhost ” , 端口選擇 3333 ( Openocd 默認) ,點擊OK
準備好這些配置之后, 先運行第二步里的腳本,讓Openocd 啟動起來,然后Debugger -》 attatch to process 就可以開始debug 了