2025 BrunnerCTF remobile 部分wp
Trippi Troppa Chaos
文本编辑器打开附件
花里胡哨的,直接丢给gpt
解密脚本都给了,运行即得
Grandma's Predictable Cookies
附件拖入ida
和时区没关系,本质上还是爆时间戳。脚本(单线程跑可以,多线程不行,抽象。。)
Bakeware
附件拖入ida
读取文件内容然后sha256哈希比较。如果相同则进行加密流程,先从特定字符串中提取出key片段,然后拼接
再之后就是aes-cbc-256,动调可以确定key和iv
Un-Pirateable Baking Game
附件是个安装器,随便找个地方安装就行。运行游戏
网上能搜到GameMaker及其反编译方法,主要是借助UndertaleMod Tool工具,将data.win文件拖入工具,随便点点能找到检验和输出
Bake and Forth
附件拖入ida
smc题型,对同一块代码区域进行反复的修改,解密块的长度是一样的,可以模拟提取出每一次实际执行的代码然后再观察代码继续修正模拟。脚本
Timing is Everything
pyinstaller打包的,3.13版本,解包后看字节码
有三种解密,先后顺序是base32->zlib inflate->marshal 反序列化。反序列化的题目好久没遇到了,差点不会做,还是去翻的老本才明白。。解密出来发现还是一层一层套的,那就直接上脚本。因为在序列化的字节流里base32的串是明文,所以不用每一层都反序列化(唯一需要注意的就是截断)
最后一层反序列化出来字节码直接丢给gpt分析
最后部分很简单
Bake to the Future
附件拖入ida
与之前那个题类似,不过难度加大,好在之前的脚本仍然能用。跑一下脚本然后得到四千行汇编
分析一通下来发现是aes,但是只有三轮,每轮处理64字节,轮密钥在每轮开始时被赋值。用python重建了程序流程并简单验证。解密只需要倒转过程就行(实际上谁写谁知道,难点在列混合的逆函数,如果抠细节很准就当我没说)
RivalCakes
取证题,赛后做的,没法验证。给了一个简单的安卓目录。密钥部分可以通过ripgrep找齐
w3wcode部分则是只能通过tree命令先过滤一下,然后一个一个文件找,能发现
FridayCake
附件拖入jadx
解包找到so拖入ida
Brod & Co.
第一次做出来flutter。附件拖入ida
非常明显的flutter应用,用blutter处理
除此之外,分析还得结合so文件。解包后一共有三个,一个libapp.so,一个libflutter.so,一个libnative.so。libflutter.so不用管,通常主要逻辑在libapp.so,而libnative.so应该是题目设计。pp.txt里保存了字符串信息,因此下一步是找到_validateCoupon方法
两个so拖入ida,还是从libapp.so开始分析,blutter处理后提供了ida脚本,可以恢复大量符号,通过函数名或者偏移可以定位到
大部分都看不懂,不过没关系,程序中有很多dart_core_::print调用,用frida看看过程,blutter给了初始脚本,输出函数地址为0x1df6d0,打印参数就行
结合ida得知调用链:0x31e0f0->0x31e128->0x31ec70->0x31ed4c
但是好像并没有运算或者加解密相关的函数调用。这时候就得看libnative.so了,process_data_complete居然在这
所以转了一圈,只需要看libnative.so就行了。。
发现是aes-ecb-128,找到密钥和密文直接解密就行
尾语
玩服务器,找dk盾
打爽了,题量大但是各个难度层次都有,没整大活塞一个数学题或者算法题,题目非常适合用来练手。mobile确实没赶上,赛后出的