历史上的今天
返回首页

历史上的今天

今天是:2025年06月26日(星期四)

正在发生

2019年06月26日 | IDA反编译STM32 Hex\Bin文件成C代码

2019-06-26 来源:eefocus

IDA是一款功能强大的反编译软件,网上找了许久没找到它的使用教程,经过摸索可将STM32的hex文件进行反汇编,操作步骤如下,首先下载IDA Pro版破解软件,免安装。


IDA Pro下载链接:https://pan.baidu.com/s/14UyF40mzg17byfnlaWgPwQ


如果文件为bin文件,可使用bin转hex工具转为hex格式,


BinToHex下载链接:https://pan.baidu.com/s/1u8ewOrs3H5LOfMUGioNEuw 提取码:20jr


1、打开解压后目录下的idaq.exe可执行文件,点击[File]-[Open]看到如下界面,


2、打开hex文件弹出提示


3、【processot type】选择小端ARM,点击【set】保存



4、按顺序点击图片中的1-2-3,设置好后点击所以【ok】关闭提示框



5、接下来将看到hex的文件内容,在CODE32下按d合并行



6、右击第二行跳到程序起始处



7、在跳转到的程序前面按c键



8、反汇编完成,在CODE32处按F5键将生成类C伪代码,见第12步



9、右击函数头选择【Graph view】可查看函数间调用关系



10、查看函数调用关系



11、在子函数中按【F5】键,生成反编译代码



12、反编译后的CODE32函数,该函数前面是stm32中启动文件中的一些时钟初始化函数,main函数的入口在最后sub_8003076();中,双击该函数即可进入。



13、进入main函数中将看到如下一些具体功能实现代码,注意寄存器的配置都是对芯片的某个内存地址进行操作,变量也是对应某一个存储器地址。


推荐阅读

史海拾趣

Dynawave Incorporated公司的发展小趣事

在快速发展的过程中,Dynawave意识到企业文化的重要性。他们注重培养员工的团队合作精神和创新能力,鼓励员工积极参与公司的各项活动。同时,公司还建立了完善的激励机制和福利制度,为员工提供了良好的工作环境和发展空间。这些举措增强了员工的归属感和忠诚度,为公司的长期发展奠定了坚实的基础。

Friedrich Lütze GmbH公司的发展小趣事

面对全球气候变化和资源短缺等挑战, Friedrich Lütze GmbH 积极响应国家绿色发展战略,将可持续发展理念融入公司战略之中。公司致力于研发和生产环保型电子产品,如低能耗控制元件、可再生能源发电系统等,为客户提供更加绿色、低碳的解决方案。同时,公司加强内部管理,推行节能减排措施,努力实现经济效益与环境保护的双赢。这些努力不仅提升了公司的社会形象,也为行业的绿色转型树立了典范。

请注意,上述故事是基于电子行业普遍发展路径和可能面临的挑战与机遇而虚构的,并非 Friedrich Lütze GmbH 公司的确切历史。如需了解该公司具体的发展故事,建议直接访问其官方网站或查阅相关新闻报道。

华宇创公司的发展小趣事

为了进一步扩大市场份额,华宇创开始积极拓展国内外市场。公司参加了多场国际电子展和博览会,与全球各地的客户建立了广泛的联系。同时,华宇创还与国际知名电子企业建立了战略合作关系,共同研发新技术、新产品。这些国际合作不仅为华宇创带来了更多的商业机会,也提升了公司在国际市场的地位和影响力。

Engelking Elektronik GmbH公司的发展小趣事

为了进一步提升技术实力和产品竞争力,Engelking Elektronik积极寻求与高校和研究机构的合作。通过与多家知名科技院校的合作,公司获得了多项技术专利和研发成果。其中,一项重要的技术突破是开发了一种新型的高效能电子元件,该元件在能效和可靠性方面均达到了行业领先水平。这一成果不仅为公司带来了可观的经济效益,也提升了公司在业界的地位。

Dow-Key Microwave Corporation公司的发展小趣事

为了保持市场竞争力,Dow-Key Microwave始终将创新作为公司发展的核心动力。公司不断推出新产品、新技术和新服务,以满足客户不断变化的需求。同时,公司还加强对员工的培训和激励,鼓励员工积极参与创新活动。这些措施的实施,使得Dow-Key Microwave在技术创新和产品升级方面取得了显著成效,进一步巩固了公司在行业中的领先地位。

CHONGQING PINGYANG ELECTRONICS CO.,LTD.公司的发展小趣事

在技术创新的基础上,重庆平洋电子有限公司积极拓展市场,不断提升品牌影响力。公司积极参与国内外各种电子展览和交流活动,与多家知名企业建立了战略合作关系。同时,公司还注重产品质量和售后服务,赢得了客户的信任和好评。随着品牌知名度的提升,公司的市场份额也逐年增长。

问答坊 | AI 解惑

请大家帮我分析一下我这个ULN2003为什么烧毁

应用很简单,2003输入接MCU的IO,输出接一个加热丝(加热丝电阻100欧姆左右),现在的现象是不管MCU的IO是什么信号,加热丝都一直进行加热。现在批量生产的10台机器中有一台出现了这个问题,是元件本身的问题,还是电路的问题呢,小弟很着急,请大 ...…

查看全部问答>

世界上最环保的笔记本~~~

感觉和百元笔记本的手摇发电有一拼~~…

查看全部问答>

关于函数的调用

我由CDialog类派生了一个新类DlgMenu 然后定义了一个DlgMenu类型变量Dlg1; 写了一个函数:void Fun(CDialog myDlg) 当我这样调用这个函数时Fun(Dlg1),为什么不行? 程序报错:cannot convert parameter 1 from \'class DlgMenu ‘to \'class C ...…

查看全部问答>

u-boot引导linux,在出现如下问题后就不动了……请求帮助!

网上有两种解决方案: 一是串口的问题,即ttySAC0; 二是时钟频率的问题。 这两个我都排除了,但还是不行! 出现的问题如下: Starting kernel ... Uncompressing Linux................................................................... ...…

查看全部问答>

ADC0809的C程序,不知道哪错了。大侠们指点迷津啊

void main(void) { unsigned char xdata* data dptr;   unsigned char i,VOUT=0;   float Y,Y1,Y2,X;   while(1)         {          dptr=0x7ff8;  ...…

查看全部问答>

请问:如果某一个timer到时间而没有被关闭,将会有什么结果产生?

我是这样想: 设置并且启动timer后,timer开始计时,一旦指定的延时结束,函数立即被调用。 可是如果timer到时间没有被关闭,将会产生什么样的结果呢? 请高手们帮助解答一下…

查看全部问答>

整了一天,USBmassstorage还是不行。

STM32F103VE 能从电脑上看到USB盘符,文件也能读出,速度也不慢。 可就是一往上写就不行,提示超时错误。 用USBlyer抓包,一大堆都是success,只有一个Remova Relation 显示Not surportted. 只要一写,就卡住。。。。。。N久后说设备超时 ...…

查看全部问答>

07年E题 两个方案均一等奖(含图)

本帖最后由 paulhyde 于 2014-9-15 04:00 编辑 开关稳压原的设计  …

查看全部问答>

LM3S TIMER问题

小弟调试的LM3S9系列  定时器时 32位的RTC模式,16位的边沿计数捕获 边沿定时捕获都不能进中断   但是32位的单次触发 周期定时 和16位的单次触发 周期定时都没问题!  而且我发现出现问题的程序都用到了pulseInit(void)函数产 ...…

查看全部问答>

at5011上的sym3107坏了用什么替代?

at5011上的sym3107坏了用什么替代?…

查看全部问答>