前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Switch APP逆向分析

Switch APP逆向分析

作者头像
物联网安全小编
发布2021-07-07 19:04:06
7260
发布2021-07-07 19:04:06
举报
文章被收录于专栏:物联网IOT安全物联网IOT安全

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

代码语言:javascript
复制
https://www.icloud.com/iclouddrive/0ZkKpgouFpOW-DbEHvDSL2taQ#switch

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

不难发现,流量包中均为USB流量,猜测可能是通过USB传输了该APP,使用如下命令提取出传输的文件:

代码语言:javascript
复制
tshark -r switch.pcapng -Y 'usb.capdata and usb.device_address==4' -T fields -e usb.pcapng > raw

将文本16进制转换为二进制格式

代码语言:javascript
复制
xxd -r -p raw raw.out

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

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

Rebase the whole program

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

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

将0x4001CCAD处的数据导出

编写脚本进行解密:

代码语言:javascript
复制
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好像还没用上,不过分手厨房很好玩....

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 物联网IOT安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档