Switch APP逆向分析

  • A+
所属分类:移动安全

Switch APP逆向分析


最近学习pwn,看到一个switch的逆向题目,于是乎在浩然表哥和the one表哥的帮助下研究了一波,学到了很多不可描述的知识。题目的下载地址:

https://www.icloud.com/iclouddrive/0ZkKpgouFpOW-DbEHvDSL2taQ#switch

下载题目附件后,根据扩展名使用Wireshark分析

Switch APP逆向分析

不难发现,流量包中均为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

Switch APP逆向分析

我们将nop指令之前的内容全部删除掉,将文件另存为新的bin文件即可

Switch APP逆向分析

我们大致了解了其架构,使用ida打开目标文件,Load file时按照如下选项配置

Switch APP逆向分析

Rebase the whole program

Switch APP逆向分析

通过查找交叉引用以及上下文分析,可以查找到该函数像是解密函数

Switch APP逆向分析

主要逻辑为对每个字节AND上一个0x7F

Switch APP逆向分析

Switch APP逆向分析

将0x4001CCAD处的数据导出

Switch APP逆向分析

编写脚本进行解密:

ciphertext = [  0xE5, 0xF2, 0xE5, 0xA7, 0xF3, 0xA0, 0xE9, 0xEE, 0xE6, 0xEF,   0xA0, 0xE6, 0xF2, 0xEF, 0xED, 0xA0, 0xE6, 0xF5, 0xF3, 0xE5,   0xA0, 0xA8, 0xC8, 0xD7, 0xC9, 0xA9, 0xBA, 0xA0, 0xA5, 0xF3,   0x8A, 0x80, 0x00, 0xD9, 0xEF, 0xF5, 0xF2, 0xA0, 0xF0, 0xF2,   0xE5, 0xE3, 0xE9, 0xEF, 0xF5, 0xF3, 0xA0, 0xF0, 0xF2, 0xE9,   0xF6, 0xE1, 0xF4, 0xE5, 0xA0, 0xEB, 0xE5, 0xF9, 0xA8, 0xD3,   0xC2, 0xCB, 0xA9, 0xBA, 0xA0, 0xA5, 0xF3, 0x8A, 0x80, 0x00,   0xD3, 0xC2, 0xCB, 0xA0, 0xC1, 0xC5, 0xD3, 0xC5, 0xA0, 0xB0,   0xA0, 0xA8, 0xF3, 0xEF, 0xED, 0xE5, 0xA0, 0xF2, 0xE1, 0xEE,   0xE4, 0xEF, 0xED, 0xA0, 0xF4, 0xE8, 0xE9, 0xEE, 0xE7, 0xF3,   0xA0, 0xE5, 0xEE, 0xE3, 0xF2, 0xF9, 0xF0, 0xF4, 0xE5, 0xE4,   0xA0, 0xE2, 0xF9, 0xA0, 0xF9, 0xEF, 0xF5, 0xF2, 0xA0, 0xEB,   0xE5, 0xF9, 0xA9, 0xBA, 0xA0, 0xA5, 0xF3, 0x8A, 0x80, 0x00,   0x8A, 0xD4, 0xE8, 0xE9, 0xF3, 0xA0, 0xE3, 0xF2, 0xE1, 0xE3,   0xEB, 0xED, 0xE5, 0xA0, 0xF2, 0xE5, 0xAD, 0xF5, 0xF3, 0xE5,   0xA0, 0xED, 0xEF, 0xF3, 0xF4, 0xEC, 0xF9, 0xA0, 0xF4, 0xE8,   0xE5, 0xA0, 0xE3, 0xEF, 0xE4, 0xE5, 0xF3, 0xA0, 0xE6, 0xF2,   0xEF, 0xED, 0xA0, 0xF2, 0xE1, 0xEA, 0xEB, 0xEF, 0xF3, 0xF4,   0xEF, 0xAE, 0xA0, 0xE8, 0xF5, 0xE7, 0xE5, 0xA0, 0xF4, 0xE8,   0xE1, 0xEE, 0xEB, 0xF3, 0xFE, 0x8A, 0x80, 0x00, 0xC8, 0xE5,   0xF2, 0xE5, 0xA7, 0xF3, 0xA0, 0xF9, 0xEF, 0xF5, 0xF2, 0xA0,   0xF0, 0xF2, 0xE5, 0xE3, 0xE9, 0xEF, 0xF5, 0xF3, 0xA0, 0xE6,   0xEC, 0xE1, 0xE7, 0xA1, 0xA1, 0x8A, 0xE6, 0xEC, 0xE1, 0xE7,   0xFB, 0xE3, 0xF6, 0xF6, 0xE4, 0xDF, 0xF3, 0xF7, 0xB1, 0xF4,   0xE3, 0xE8, 0xAD, 0xE8, 0xB0, 0xED, 0xE5, 0xE2, 0xF2, 0xB3,   0xF7, 0xAD, 0xE9, 0xF3, 0xAD, 0xE2, 0xF2, 0xB8, 0xEC, 0xE9,   0xE1, 0xEE, 0xF4, 0xFD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,   0x00, 0x00, 0x00]
flag = ""
for i in ciphertext: flag+= chr(i & 0x7f)
print(flag)

Switch APP逆向分析

还是太菜,很多东西没有分析明白,而且买来的switch好像还没用上,不过分手厨房很好玩....

Switch APP逆向分析

本文始发于微信公众号(墨鱼实验室):Switch APP逆向分析

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: