欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

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

来源:本站整理 作者:佚名 时间:2020-03-08 TAG: 我要投稿


在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}。
 

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载