点击此处获得更好的阅读体验
WriteUp来源
来自官方发布
https://www.xctf.org.cn/library/details/5acdc1c31cf4935ac38fce445978888a5710cf11/
题目描述
Can you run this ARM PE?
题目考点
64位ARM PE程序的逆向分析与运行
playfair加密算法的逆向和还原
C++字符串、元组、输入输出流等结构的识别与还原
解题思路
题目给出了一个exe程序,但是无法直接运行,逆向发现是ARM64架构的程序,因此要运行需要使用QEMU模拟器运行ARM64架构的windows,或者静态逆向进行分析。
逆向程序逻辑,通过搜索flag{
的交叉引用找到main
函数,发现程序使用C++编写
,输入的flag是命令行参数,然后通过一系列c++ string的操作将其加密,flag必须全是大写字母,如果加密后等于一个固定值则包上flag{}使用cout输出。
观察到加密的过程中会使用到一个5*5的大写字母码表,根据加密特征可以判断为playfair加密,可以从网上找一份脚本对照进行修改,还原程序逻辑。
解密playfair
密文KIMLXDWRZXTHXTHQTXTXHZWC得到原文YESMAYBEYOUCANRUNANARMPE
Flag
1 | flag{YESMAYBEYOUCANRUNANARMPE} |