IDApro直接 debug STM32 MCU

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

### 使用 IDA Pro 反汇编 STM32 微控制器代码 #### 准备工作 为了成功使用 IDA Pro 对基于 ARM Cortex-M3 的 STM32F10x 系列微控制器进行反汇编,需先准备好相应的硬件和软件环境。确保拥有最新版本的 IDA Pro 软件,并安装适用于 ARM 架构的支持包。 #### 加载固件文件 启动 IDA Pro 后,在初始界面选择 "File -> Open" 来加载目标设备的二进制镜像或 HEX 文件。对于 STM32 设备而言,通常会处理 ELF 或 BIN 类型的文件格式[^1]。 #### 配置处理器类型 当首次加载新项目时,IDA 将提示配置目标架构。应在此处指定 `ARM Little-Endian` 作为处理器选项,并确认所选设置匹配具体型号的要求(例如,Cortex-M3)。这一步骤决定了后续解析指令集的方式[^3]。 #### 设置入口点和其他参数 继续按照向导指示前进直到到达 “Entry point address” 字段。这里应当输入应用程序的实际起始地址;对于大多数 STM32 应用来说,默认值可能是足够的。另外还需注意调整其他可能影响最终输出的关键属性,比如堆栈大小等[^4]。 #### 自动分析与手动干预 一旦完成了上述准备工作,点击 OK 即可让 IDA 开始自动执行初步的数据流和控制流分析。然而由于某些复杂度较高的场景可能导致自动化流程无法达到理想效果,因此建议开发者随时准备介入并指导工具更好地理解和呈现源程序结构。此时可以借助插件脚本进一步优化结果展示形式,如通过 IDC 脚本来定义特定于项目的内存布局。 ```python idaapi.add_segm(0, start_ea=0x8000000, end_ea=0x80FFFFF, name="FLASH", class_="") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值