使用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 了