看我如何逆向分析一款可编程接口控制器

栏目: IT技术 · 发布时间: 4年前

看我如何逆向分析一款可编程接口控制器

在AeroCTF中,有一类挑战是以分析可编程接口控制器(PIC)为主要内容的。

在挑战比赛中,我们会拿到待分析的PIC导出代码,而我们的任务就是需要从中想办法提取出Flag。一般来说,我们所拿到的ROM导出数据为十六进制文件,我们此次拿到的是一个名为“Beginning.hex”的文件,以及下面这个是示意图:

看我如何逆向分析一款可编程接口控制器

下面给出的是Beginning.hex文件的部分代码段:

看我如何逆向分析一款可编程接口控制器

Beginning.hex:【 文件下载

经过分析之后,我发现我们可以使用MPLab IDE v8.92来分析这个内存导出数据。除此之外,我们还可以从文件示意图中了解到待分析的可编程接口控制器的型号:PIC16F877。

看我如何逆向分析一款可编程接口控制器

首先,我打算使用静态分析技术来对其进行分析,并从阅读数据表中的数据本身来开始【 数据表PDF 】:

看我如何逆向分析一款可编程接口控制器

看我如何逆向分析一款可编程接口控制器

从反汇编结果中我们可以看到,其中的大多数指令貌似都写在PORTC和PORTD中:

看我如何逆向分析一款可编程接口控制器

movlw(将参数移动至W寄存器)和movwf(将W寄存器移动至参数)结合起来相当于write!

我们可以从上面给出的芯片图中了解到,PortC为RC0-RC7,而PortD则是RD0-RD7。

看我如何逆向分析一款可编程接口控制器

这些阵脚可以将输入数据传递给LCD。我们需要获取到数据信号的映射表以及相关联的ACSII字符。在这里, Vaibhav Jayant 给我提供了很大帮助,我成功模拟出了“Proteus 8 professional”的电路图表。

看我如何逆向分析一款可编程接口控制器

项目文件获取:【 点我下载

获取到这个电路图之后,那么模拟出整个PIC结构也就不难了。按下“Play按钮”之后,我们就可以看到芯片以动画的形式再给我们播放最终的Flag。

看我如何逆向分析一款可编程接口控制器

最后,我们成功拿到了隐藏在其中的Flag:AERO{PIC_IS_SIMPLE_Q4A8K1L7}。

* 参考来源: anee ,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM


以上所述就是小编给大家介绍的《看我如何逆向分析一款可编程接口控制器》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Ajax Design Patterns

Ajax Design Patterns

Michael Mahemoff / O'Reilly Media / 2006-06-29 / USD 44.99

Ajax, or Asynchronous JavaScript and XML, exploded onto the scene in the spring of 2005 and remains the hottest story among web developers. With its rich combination of technologies, Ajax provides a s......一起来看看 《Ajax Design Patterns》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

html转js在线工具
html转js在线工具

html转js在线工具