brunnerCTF
type
status
date
slug
tags
summary
category
icon
password
很久没一次打久一点比赛,近期做一个小的复建, 赛中7/9,最难俩都没出,赛后做做
TrippiTroppaChaos
python代码,现在这种贴近源码的逆向都是ai一把梭了
Grandma’s Predictable Cookies
爆破一下时间戳
Bakeware
动调拿key然后解aes就行
Un-Pirateable Baking Game
GameMaker逆向,data.bin进UndertaleModTool就是源码了
bake and forth
唯一一个一血,还挺好玩的smc,main里面11+5共计16个字节会被反复修改,如下框内分两次异或8字节修改main,main前11个字节为有效字节,后5个字节是对下一步smc的寻址

赛中正则匹配写的,后面加难版这个题用的unicorn,hook main函数开头然后记录所有前11字节就行(这题不知道为什么,gdb和ida都会识别出错,调试是会运行炸的,手动算或者unicorn反而准,破案了,打的断点会被改,改成乱七八糟的bytes就炸了)
timming is everything
好像遇到过几次了这种套娃,匹配一下模式然后递归反编译就行
exp
CompSci Bakery
这题属于是本来不太好做,给蒙出来的

做题过程没留了,记录一下思路
首先是这个Uiua语言,基于栈的,输入类似于x a b,就相当于bxa(a b为数字,x为操作)可以有多个参数,参数可以为数组,操作可以把栈上的东西复制或者删除,x a b → x b 这样是删掉了一个;?字符可以打印当前栈,虽然没太看懂
这题的每一句话就相当于一个函数,可以通过在后面输入数字测试,如果输入的数字直接被打印说明参数超了(实际上就是打印剩下的数字栈)
里面只有E不好理解,L是斐波那契数列,P是将数组每一个数循环向右移动一个下标,然后修改值为整个数组和-当前数字
我是把E打表出来然后搜索引擎发现这是一个数列fibbinary,大意是所有没有相邻1的数字的数列,具有一些斐波那契数列的性质(1 10 100 101 1000 1001大概这样)这个数列有没有什么通项真不懂了,但是这个数列的检测很简单,直接O(n)上去就ok,然后还要知道这个C函数要先E后P,这块也卡了一阵
back to future
修复

这个字节代换是比较简洁的:

这里短短几行汇编就是shift rows了:怕错画了一遍汇编确实是这样子的


这两部分还是标准的,后面明显就改了一些了:
上一篇
间接跳转混淆去除
下一篇
mingw启动项学习
Loading...