点击此处获得更好的阅读体验
WriteUp来源
来自MO1N
战队
题目描述
一台奇怪的单片机上运行着奇怪的程序,请您帮助调试相关程序。Flag格式为:flag{}
题目考点
- RISC-V逆向
解题思路
RISC-V是一个基于精简指令集(RISC)原则的开源指令集架构(ISA)。
与大多数指令集相比,RISC-V指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件。虽然这不是第一个开源指令集,但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。设计者考虑到了这些用途中的性能与功率效率。该指令集还具有众多支持的软件,这解决了新指令集通常的弱点。
IDA和ghidra无法直接加载,需要用新的LOADER
https://github.com/bingseclab/ida_riscv
因为RISC-V的汇编并不好分析,选择qemu使用动态调试的方法,注意要使用gdb 8.0+才可以
通过动态调试分析后会发现实际是两个数组进行xor,解密即可
1 | cyt = [ |
Flag
1 | flag{XoR_I5_S0_Easy} |