TI(德州仪器) TMS320C674x逆向分析之一
来源:互联网 发布:在线算法和离线算法 编辑:程序博客网 时间:2024/05/22 11:40
一、声明
作者并不懂嵌入式开发,整个逆向流程都是根据自身逆向经验,一步一步摸索出来,有什么错误请批评指正,或者有更好的方法请不吝赐教。个人写作水平有限,文中会尽量把过程写清楚,有问题或是写的不清楚的地方,后面再慢慢修改。
二、正向开发流程
C语言开发,开发工具使用CCS(Code Composer Studio,基于eclipse开发的),有过开发经验的都会很容易上手,新建test工程,选择C674x,输出文件为ELF格式,如图所示:
编译成功后,会生成test.out文件(ELF格式)。
使用TI提供的AISgen_d800k008.exe把.out转成了ais格式:
最后将test.bin烧入设备即可。
三、逆向初步
逆向分析就是在仅仅只有bin文件的条件下,还原原来程序功能。IDA对TI指令的反汇编支持很差,最新版本的6.8才有对6xxxx的支持,并且效果非常不好。我所用的方法是先把AIS格式还原为ELF格式,再使用CCS进行反汇编。
1、 把AIS格式的test.bin还原为ELF格式文件
使用UE比对test.bin和test.out,可以发现,test.out中的ELF头和很多节被删除,只保留了几个基本的节。下面是readelf -a test.out的结果:
而test.bin中仅仅保留了.text .const .cinit和入口点信息。
本来开始准备自己手动一点点还原的,后来在AISgen的安装目录下发现了一个程序aisparse.exe,一看这名字就感觉有戏,运行结果:
Usage: aisparse ais.bin [ais.h]
果不其然,这个就是用来解析bin格式的,输入为.bin文件,输出为.h文件:
一下就清晰了很多,顺手写了个AIS –> ELF的小程序。当然,生成的test.elf相比原先的test.out丢失了很多信息。
2、 逆向ELF
没有找到好的工具反汇编,最后发现使用CCS的调试功能的可以进行反汇编。这也需要一定的小技巧:使用CCS随便写一个程序,调试,在调试界面,依次选择Run->Load->Load Program,选择test.elf,就能调试了test.elf,也可以从中copy出反汇编代码静态分析。需要注意的是,这里的反汇编代码有的地方是错误的哦,非常坑!
后面具体的指令格式,多看看TI的文档,有时间我再往下写。
- TI(德州仪器) TMS320C674x逆向分析之一
- TI(德州仪器) TMS320C674x逆向分析之二
- 德州仪器TI CC2640R2F器件的命名规则
- 德州仪器(TI)3D机器视觉参考设计
- TI 德州仪器Sitara ARM9 MPU 微处理器 AM17xx和AM18xx处理器介绍及应用领域
- 德州仪器 (TI) 全球领先的数字信号处理与模拟技术半导体供应商
- 谈德州仪器(TI) MSP430 基于16位单片机的生态系列
- Tina-TI电路仿真初体验(德州仪器电路仿真软件)
- 分享一个用keil5编写TI(德州仪器)TM4C123GH6PM单片机的教程(一)
- 逆向分析
- 逆向分析
- 【Android SDK程序逆向分析与破解系列】之一:Android安装程序APK分析
- TI DaVinci GPIO分析
- TMS320C674x--McASP学习笔记
- 德州仪器与6WIND联合推出针对TI KeyStone II多内核处理器优化的数据包处理软件
- TI CC3200实现TCP/IP通信之一
- TI CC3200实现TCP/IP通信之一
- 德州仪器面试
- 十进制整形数据转换为两字节十六进制数据,
- Java 教程 --1
- Ubuntu 16.04下安装 jdk和eclipse
- webservice 搭建(二)
- linux下使用yum安装配置samba
- TI(德州仪器) TMS320C674x逆向分析之一
- Ubuntu python安装与配置selenium
- Mysql中间件Atlas的安装
- 简易MonoScript序列化数据字段分析器
- LeetCode Array Problem || Teemo Attacking
- 实现一个3D图片轮播插件 —— 更新版
- 排序之插入排序
- ServletContext读取web应用中的资源文件
- Unity开发之单例模式中的小坑