0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【原创】硬件破解之固件分析

jf_31521785 2023-02-16 18:21 次阅读

注1:本文为湖南底网安全信息技术有限公司安全团队原创文章,转发请注明出处

注2:该文已同步在今日头条"湖南底网安全"主页发布(原"电子技术论"主页),链接如下:https://www.toutiao.com/article/6789945669256741387/?log_from=a59c9ca98c949_1675651265539

前言

固件分析,一种深入硬件底层(芯片级)的技术破解方法,经常被用于系统攻防对抗、硬件破解、逆向分析等实际工作中,相对其它技术破解攻击方法,科学有效的固件分析因其扒开了破解攻击对象的“外衣”,直接深入“骨髓”对其逻辑代码、数据存储、数据类别、数据属性等全方面分析,可找出其它攻击方法无法找出的严重漏洞,可对破解攻击对象形成“致命级杀伤力”。

固件分析,由“固件”和“分析”2个词组成,看似简单的4个字,要想有效充分发挥出其“杀伤力”,其背后人员需要庞大的技术体系支撑,这些技术体系并非孤立自成一体,而是环环相扣、相辅相成;每项技术体系、每个技术点都力求达到熟练甚至精通的标准。除此之外,还需要有超强的心理素质,在未知二进制“数据海洋”里“黑盒”探索,需要耐心、细心、信心,同时还要面对固件分析里的高失败率,因为很多时候即便你能获取到固件,由于固件本身的防护(如加壳、私有指令集、差分固件包)或固件分析实力不够等因素仍然无法找出有效漏洞,你可能会不知所措、迷茫无助甚至焦虑不安,你得到的仅仅是固件文件、一堆冰冷的二进制数据而已,除此之外毫无其他用处,这时还得及时调整心态和思路继续“战斗”,以上内容通俗的讲就是对固件分析技术人员要求很广的技术面、很深的技术点、很强的心里素质。

固件分析技术浅谈

上面已提到过,固件分析由“固件”+“分析”两部分组成,不了解固件,何谈分析?“固件分析”--固件之所以在前面想必原因也在此。考虑到篇幅原因,这里对固件只做概要说明,不深究。

什么是固件?

什么是固件(firmware)?怎么理解固件?不同的人有不同的回答,但每种回答都会反映出回答者理解固件分析的思维层次。

固件是什么?固件是软件的一种,也是一种程序。

固件是什么?固件(Firmware)就是写入EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序(百度百科)。

固件是什么?固件是指设备内部保存的设备“驱动程序”,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作,比如光驱、刻录机等都有内部固件(百度百科)。

以上回答都没错,我个人的回答是:固件是存储在可由CPU直接或间接读取指令/数据并可运行的FLASH/ROM芯片里的二进制数据集合,这些指令/数据集合是根据CPU内核架构及型号,将高级编程语言(如C、C++等)由对应的编译器、链接器、装载器生成并通过对应的烧写器将指令/数据集合烧写到对应设备里的存储芯片中。固件之所以和软件程序区分开来,是为了强调固件侧重于智能设备、嵌入式设备、工控设备里运行的程序,而非PC电脑、服务器、手机内部的程序(只是侧重并非绝对,很多场合手机里的程序也被称为固件)。

固件的位置是存储在设备的FLASH/ROM芯片里,但展现在固件分析人员面前是提取出来后以文件的形式呈现。固件文件的格式并非固定不变,因厂家、设备不同而不同,目前常见的固件文件格式有:hex、bin、elf、axf、txt、ulmage等,对于固件分析人员,熟悉这些固件文件的内部编码规则、数据块定义等细节尤为重要,否则拿到固件你也不认识它,更无从分析它。

固件的由来--编译、链接、装载

对于固件,不仅知其然,知其所以然也很重要,虽说不同的固件,格式、编码不同,但其由来大体相同,都是由高级编程语言经编译、链接、装载生成而成,编译、链接、装载这3步6个字至关重要,是有效提升固件分析成功率的重点、难点,对固件文件的形成机制、固件文件内部函数构造、内部指令/RAM/数据分配机制、固件启动运行机制等核心概念的深入理解非常有益。然而也只有深入理解了这些固件相关知识,才能充分发挥固件分析的破解攻击价值。

固件运行机制

熟悉了什么是固件、固件的由来之后,在此,需要熟悉固件的运行机制。不同种类的设备,其内部固件运行的细节都不一样,但其运行机制大体类似,一般比较常见的运行机制是:上电boot->uboot->cos->applet,针对不带操作系统的运行机制一般是:上电-> boot-> applet或上电-> applet。这里仅作简要说明,实际固件分析过程中,最好是对每一步里每个函数、每行代码的功能都做到了如指掌,这样才能充分发挥固件分析的破解攻击价值。

固件分析其它必要技术

固件分析,离不开电路/器件分析,因此需要具备必要的数电、模电知识;典型固件分析里,牵涉到固件提取、IO控制查询、数字接口驱动、中断唤醒、工作模式切换、外围器件的驱动等方面,这些都离不开电路/器件分析。

固件分析,需要熟悉常用数据通信规约/协议簇(如TCP/IP协议簇、CAN总线),在你分析有关数据通信功能部分的固件时,熟练掌握各类常用数据通信协议和底层对应接口,会让你在固件分析时如虎添翼,得心应手。

固件分析,需要熟悉主流CPU/MCU处理器内部体系架构、内部各硬件模块工作原理DMA、虚拟内存管理、中断处理、工作模式管理、外围模块等)、内部存储及运行机制等,还有熟悉/能看懂并理解主流CPU/MCU汇编语言(寄存器级别操作)也很重要,在分析固件时,对每个函数的初始化、数据处理、代码跳转、函数执行等方面会让你临危不乱、思路清晰。

固件分析,熟悉相关加解密算法及安全通信、认证机制架构/原理,会让你少走很多弯路,知道如何权衡利弊得失,避开暗坑,提升固件分析效率。

固件分析,学会使用对自己有用的相关工具(包括但不限于:IDAPro、binwalk等)会让你事半功倍,这些工具会快速提升你的工作效率,让你进入状态,花更多的时间精力在固件分析上,而不是在固件分析的准备路上。

固件分析,熟悉主流嵌入式操作系统工作原理及内核工作原理(如linuxandroid等)也至关重要,然而这个也是最难的,因为要深入了解操作系统内核的具体工作流程、任务调度机制、数据存储分配细节、权限管理、进程隔离保护/运行机制等非常难,非一朝一夕能学成,需要时间、需要毅力、更需要智商,但是一旦掌握了这些知识,在分析类似的固件时,则很容易找出漏洞,而且是高危漏洞。当然一旦达到此级别,个人认为已是大牛级别、黑客级别了。

编后语

随着信息安全的普及,固件分析不仅受到黑客爱好者们的青睐,厂家设计者也越来也重视固件的防护,这无疑会加大固件分析的难度和降低固件分析的成功率,也正是因为这矛与盾的竞争关系,促使着网络技术的不断进步,就看随的步伐块,步伐慢的人注定会有被攻击破解的风险。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3935

    浏览量

    127339
  • Linux
    +关注

    关注

    87

    文章

    11292

    浏览量

    209328
  • 硬件
    +关注

    关注

    11

    文章

    3312

    浏览量

    66200
  • 固件
    +关注

    关注

    10

    文章

    555

    浏览量

    23016
  • 硬件安全
    +关注

    关注

    0

    文章

    13

    浏览量

    2460
收藏 人收藏

    评论

    相关推荐

    [原创]Orcad16.3 破解流程

    本人最近在win7 旗舰版系统内,安装上了Orcad16.3,并且成功破解,Pspice功能包括蒙特卡洛分析与参数扫描分析在内完全可用。下面分享一下安装过程。安装之前,我参照N个破解
    发表于 06-07 12:49

    原创 :PADS矩形阵列---视频 【 欢乐1+1 群内 原创视频教...

    原创 :PADS矩形阵列---视频 【 欢乐1+1 群内 原创视频教程 】分享给大家下载,如果觉得资源好,记得给我加分哦[groupid=514]欢乐1+1 QQ群原创精品[/gro
    发表于 11-30 10:33

    【连载】阿东团队原创视频 Verilog和Qsys设计

    本帖最后由 100dongdong 于 2014-8-14 13:31 编辑 【目的】 阿东推出《阿东团队原创视频 Verilog和Qsys设计》 连载,为了帮助初学者深入掌握FPGA
    发表于 07-23 22:19

    固件分析固件如何解压?

    有没有大神做过固件分析项目的?对固件分析比较在行的,诚心找大神帮忙解决问题,有偿!有偿!有偿!1、目前能从存储器读出固件,确定
    发表于 05-06 09:38

    MCU的破解技术分析

    MCU破解技术分析
    发表于 02-03 07:17

    果iphone一代,3G,3GS升级3.1.2固件版本破解

    果iphone一代,3G,3GS升级3.1.2固件版本破解解锁刷机越狱软解教程iphone 3G/iphone 3GS 3.1/3.1.2破解 可以成功连91手机助手,打电话,连无
    发表于 02-02 17:27 1606次阅读

    iPhone破解越狱总汇

    iPhone破解越狱总汇 ·黑雨blackra1n RC2越狱教程Win版(3.1.2固件)
    发表于 02-03 09:56 818次阅读

    iPhone 2.2 升级功能, 固件, 破解

    iPhone 2.2 升级功能, 固件, 破解 2.2升级内容iPhone/iPod touch 2.2版新增功能包括:Google Maps功能增强:支持Google街景(iPod touch不支持)步行
    发表于 03-04 17:34 395次阅读

    对MCU破解技术做个简单分析

    大家可能都知道破解51单片机是很容易的,但为什么容易,又是如何来破解的,可能很多人就不大清楚了,我在这里结合网上一些前辈整理的资料,和自己的经验,对MCU破解技术做个简单分析
    的头像 发表于 12-26 09:16 6285次阅读

    彩虹加密狗破解技巧数据代码分析

    彩虹加密狗破解技巧数据代码分析以上是彩虹加密狗破解技巧数据代码分析的简单介绍,文章由(逆向开发技术网)编辑整理。
    发表于 01-24 08:00 9次下载
    彩虹加密狗<b class='flag-5'>破解</b>技巧数据代码<b class='flag-5'>分析</b>

    芯片漏洞实战破解KASLR

    Meltdown和Spectre分析以及CPU芯片漏洞攻击实战,教你如何破解macOS上的KASLR。 作者:蒸米,白小龙 @ 阿里移动安全 来源: https://paper.seebug.org
    的头像 发表于 11-26 13:47 3027次阅读

    固件手册ACS880基本控制程序

    固件手册ACS880基本控制程序说明。
    发表于 05-24 10:10 21次下载

    NodeMCU学习笔记(1)--- 硬件介绍、固件制作、烧录

    NodeMCU学习笔记(1)— 硬件介绍、固件制作、烧录提示:作者使用 ESP8266 进行开发学习。文章目录NodeMCU学习笔记(1)--- 硬件介绍、固件制作、烧录前言一、
    发表于 11-01 16:25 18次下载
    NodeMCU学习笔记(1)--- <b class='flag-5'>硬件</b>介绍、<b class='flag-5'>固件</b>制作、烧录

    ESP8266应用笔记固件下载协议

    电子发烧友网站提供《ESP8266应用笔记固件下载协议.pdf》资料免费下载
    发表于 09-23 10:02 0次下载
    ESP8266应用笔记<b class='flag-5'>之</b><b class='flag-5'>固件</b>下载协议

    原创固件分析&amp;固件检测技术&amp;安全需求洞察深度详谈

    ://www.toutiao.com/article/7197968863081284133/‍ 前言 固件分析固件检测的技术“深”不可测,其范畴包括但不限于CPU架构类型、指令集、应用程序、文件系统、操作系统、驱动、内核、b
    的头像 发表于 02-16 18:23 3051次阅读