当前位置: 首页 > news >正文

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确实没赶上,赛后出的

http://www.dtcms.com/a/350702.html

相关文章:

  • 编译型语言(C/C++):从源码到.exe 的完整链路
  • 语音识别:概念与接口
  • LeetCode 面试经典 150_双指针_验证回文串(25_125_C++_简单)(双指针)
  • 【JVM内存结构系列】六、“特殊区域”:直接内存、栈上分配与TLAB
  • JavaScript 对象 Array对象 Math对象
  • Spring Boot 结合 Jasypt 实现敏感信息加密(含 Nacos 配置关联思路)
  • 计算机网络:HTTP、抓包、TCP和UDP报文及重要概念
  • 简述Myisam和Innodb的区别?
  • 面试题:reids缓存和数据库的区别
  • Android FrameWork - Zygote 启动流程分析
  • 【0419】Postgres内核 buffer pool 所需共享内存(shared memory)大小
  • 物流架构实践:ZKmall开源商城物流接口对接与状态同步
  • Pytorch框架的训练测试以及优化
  • 使用JDK11标准 实现 图数据结构的增删查改遍历 可视化程序
  • Spring Cloud Alibaba
  • 机器学习三大核心思想:数据驱动、自动优化与泛化能力
  • 搭建python自动化测试环境
  • kmeans
  • 【Kotlin】Kotlin 常用注解详解与实战
  • 2025山东国际大健康产业博览会外贸优品中华行活动打造内外贸一体化高效平台
  • 瑞惯科技双轴倾角传感器厂家指南
  • 发射机功能符号错误直方图(Transmitter Functional Symbol Error Histogram)
  • 多级数据结构导出Excel工具类,支持多级数据导入导出,支持自定义字体颜色和背景颜色,支持自定义转化器
  • Java 并发编程总结
  • SCSS上传图片占位区域样式
  • 基于多通道同步分析的智能听诊系统应用程序
  • 动态住宅代理:跨境电商数据抓取的稳定解决方案
  • vue-admin-template vue-cli 4升5(vue2版)
  • C语言中哪些常见的坑
  • Linux的奇妙冒险———进程信号