HWS 2023 山东大学专场 决赛wp
写在前面:
通过这次比赛,认识到了自己和高手的不足,知识面还需要拓展
1.Re ezapk
因为自己本身不是做逆向的,所以没什么经验,赛后复盘的时候解决了这道题
首先使用apktool
将给出的apk文件进行解包,解包到ez这个文件夹
查看ez文件夹
本题加密的主要逻辑部分在lib的.so文件中
lib下有x86和arm架构的lib.so文件,都拖进IDA里试一下,发现第二个arm-v7的IDA反编译的可读性更高
这里是加密的主要逻辑,可以看出flag长度为38,而且对前37的字符进行了操作,具体操作是用前一个字符和后一个字符进行异或,把异或后的结果存到v7中,然后进入了enc函数进行了某些操作后,变成了3JnGvLkUn-01RGNQUw4616Ko31X2bD3JwQUTnh>T2?JA8PkjIY
这个字符串,猜测base编码
跟进enc函数,发现一个类似编码表的东西
统计一下表的长度,发现有85个,感觉有可能是base85
cyberchef base85+To Hex得到:
去掉后面两个0x00,然后写脚本前37位前一个和后一个进行xor:
a=[0x0a,0x0d,0x06,0x1c,0x43,0x09,0x50,0x55,0x00,0x0c,0x5e,0x57,0x52,0x05,0x00,0x04,0x03,0x57,0x03,0x50,0x04,0x52,0x06,0x06,0x0a,0x0e,0x07,0x54,0x5c,0x0b,0x0a,0x01,0x09,0x03,0x53,0x53,0x4f,0x7d] for i in range(37): a[36-i]=a[37-i]^a[36-i] for j in range(38): print(chr(a[j]),end='')
最后得到了flag:
本文作者:Smera1d0
本文链接:https://www.cnblogs.com/Smera1d0/p/17859477.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步