你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

熟悉和习惯r2的基本使用

[复制链接]
gaosmile 发布时间:2020-12-5 23:20
首先你要有一个bin文件(bin文件的获取方法不在此展开介绍,今后有机会可以专门开一个贴聊一聊)。本次实验用到的bin文件  stm32_xwrtos.bin.zip (6 KB) 是用ST官方CMSIS和外设库编译的跑在stm32f103c8t6上的bin文件,比较具有代表性。
烧录文件下载:
工具准备:
安装开源跨平台逆向神器r2 https://github.com/radareorg/radare2 ,r2可运行在Windows、Linux、Mac等所有主流操作系统上(r2有多牛逼不在此展开介绍,今后有机会可以专门开一个贴聊一聊)。% w3 j+ t, U. H& H0 s. a
# H$ e' E' s3 _0 m  Y! }
实验步骤:: |6 z( _! l4 Y5 Z% R, w8 _$ x
1)输入r2 -a arm -b 16 -m 0x08000000 stm32_xwrtos.bin 进入r2的控制台后,输入e asm.cpu=cortex。这一步是告诉r2以0x08000000为基址加载stm32_xwrtos.bin文件,并设置指令集为cortex系列的thumb。
& s5 F, C- n8 b. V9 L. }
微信图片_20201205231827.png
2)输入aaaa,运行自动化分析。
! z& Y+ h" ^0 \5 J& k, o4 u
微信图片_20201205231831.png
3)输入pxw 268 @0x08000000 以小端四字节形式打印从0x08000000开始的268(268对应中断向量表大小)个字节,同时打开ST官方的启动文件startup_stm32f10x_md.s并找到.isr_vector段进行对照。4 Y/ P0 s, ~# F, K3 Z4 b; F( `
微信图片_20201205231834.png
4)接着上一步,输入fs notes,创建并切换到一个名为notes(可以是任意其他名字)的符号记事本;按照f flag=address的形式,对照.isr_vector段,向符号记事本中录入感兴趣的符号地址对应关系。注意如果address是函数地址则需要减1(因为thumb指令的要求,具体原因此处不展开);最后输入af @flag形式的命令强制进行函数分析。
微信图片_20201205231837.png
5) 输入pdf @Reset_Handler,对Reset_Handler函数进行反汇编9 c$ L# F4 R; `& h6 p
微信图片_20201205231841.png
输入 VV 切换到流程图视图
- x6 l9 G% H% y: m7 r% P9 X
微信图片_20201205231843.png
通过阅读汇编代码,可以得到以下信息:, z( l" w0 }! T$ D9 @
1.  data段的地址区间为0x20000000-0x20000028 bss段的地址区间为0x20000028-0x2000043C
2.  Reset_Handler用0x08002cbc开始的0x28字节初始化data段,用0填充bss段
3. 调用fcn.08001cc8函数4. 调用fcn.08001734函数8 d# |4 \! e" B) L# A

5 p8 }# ^( P5 Y! i, Z+ b6)输入pdf @fcn.08001cc8进行反汇编/ w0 h4 A6 ^. K1 N1 j7 y& L* v
微信图片_20201205231846.png
发现对外设寄存器地址0x40021000的引用6 _0 ^# ]) @8 }1 f) D* ^; ^
微信图片_20201205231849.png
通过查询数据手册,可判断fcn.08001cc8函数应为系统初始化化函数SystemInit(),它初始化了时钟
0 _2 N$ N2 ]% u6 |3 Z( l% Z8 [( I1 N3 W& B+ B
7)根据经验判断fcn.0800173函数即为main函数
本篇作为系列第一篇文章,主要作用是带大家熟悉和习惯r2的基本使用,以及对逆向有个感性认识。下一篇计划在逆向的基础上介绍stm32上的栈溢出漏洞的挖掘与利用。
$ i- Z; u. x$ t; y
赞 收藏 1 评论0 发布时间:2020-12-5 23:20

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版