最近学习pwn,看到一个switch的逆向题目,于是乎在浩然表哥和the one表哥的帮助下研究了一波,学到了很多不可描述的知识。题目的下载地址:
https://www.icloud.com/iclouddrive/0ZkKpgouFpOW-DbEHvDSL2taQ#switch
下载题目附件后,根据扩展名使用Wireshark分析
不难发现,流量包中均为USB流量,猜测可能是通过USB传输了该APP,使用如下命令提取出传输的文件:
tshark -r switch.pcapng -Y 'usb.capdata and usb.device_address==4' -T fields -e usb.pcapng > raw
将文本16进制转换为二进制格式
xxd -r -p raw raw.out
我们将nop指令之前的内容全部删除掉,将文件另存为新的bin文件即可
我们大致了解了其架构,使用ida打开目标文件,Load file时按照如下选项配置
Rebase the whole program
通过查找交叉引用以及上下文分析,可以查找到该函数像是解密函数
主要逻辑为对每个字节AND上一个0x7F
将0x4001CCAD处的数据导出
编写脚本进行解密:
ciphertext = [ 0xE5, 0xF2, 0xE5, 0xA7, 0xF3, 0xA0, 0xE9, 0xEE, 0xE6, 0xEF,
还是太菜,很多东西没有分析明白,而且买来的switch好像还没用上,不过分手厨房很好玩....