type
status
date
slug
summary
tags
category
icon
password
notion image
怎么说呢,还是打了一个月,队友给力冲到了第一,还是把自己做出来过的题写一写,不然有点浪费的意思

聪明的信使

notion image
逻辑清晰,密文已知,加密只有encrypt函数
exp:

喵喵喵的flag碎了一地

notion image
main函数给我提示去获得flag
notion image
notion image
第三段让我找交叉引用
notion image
notion image

你真的是大学生吗?

没有找到其他方法,硬读汇编
start是获取input,对其加密(发生在loc_1007c),通过将每一个字节与后一个字节进行异或运算来加密

DebugMe

notion image
只告诉要动态调试,回显“flag呢”
notion image
添加debug
找到包名
notion image
找到类名
notion image
进行adb调试
notion image
jeb运行到调试结束处,得到flag
notion image

trustme

MainActivity告诉了用户名的计算
notion image
notion image
这里有藏着真正的方法路径
提shell.apk大概有两种思路:
  1. MT管理器找
  1. 连上手机,adb pull出来(没有测试机所以没搞)
数据是放在数据库的,直接找
notion image
notion image
安装下来,丢进jadx分析,找到真正的“密文”
notion image
这里的意思是密码和flag数据在database数据库里,账号密码输入正确则回显flag出来 有两种解法:
(一)连接手机,利用"SELECT password FROM User WHERE username = 'flag'"frida提出flag
(二)MT管理器直接找
notion image
下面的方法有提供找数据库的路径,直接MT管理器一把梭:
notion image
同时也得到密码:qweradmin

ez_cube

魔方题,先找线索:(每一面的数字代表每一块颜色)
notion image
进行魔方打乱: 蓝色(2)面第一排第二个变成红色 红色(1)面第一排第二个变成绿色 绿色(3)面第一排第二个变成蓝色
分析RUru步骤:
notion image
cmp函数是验证是否复原,以及复原步骤是否<=12
拿魔方手操:RuRURURuruRR

今夕是何年

这道题没什么难点,就是先认出是龙芯架构下运行的文件,用qemu配置龙芯系统
用die查了是ELF文件,然后ubuntu运行,配置好了跑就出

baby unity

不一样的unity引擎,正常是moon架构,找得到Assembly-Csharp直接逆,这题是il2cpp架构,根据提示
跟着说明里面提到的命令行操作,but dump失败
发现三个dll文件都有upx壳,将GameAssembly.dll脱壳
直接使用下载好的工具里面的Il2CppDumper.exe打开 在下载的题目的路径里面依次选中GameAssembly.dll以及"\baby unity_Data\il2cpp_data\Metadata\global-metadata.dat"
notion image
dump出Dummydll文件和output文件
使用dnspy打开Dummydll / Assembly-Csharp
notion image
找到关键函数名称 IDA打开GameAssembly.dll 使用script file 导入文件,导入工具里的ida_py3 和 output的script.json
找到对应的两个函数,分析
notion image
其实只进行了这两段加密
exp:
 

ez_rand

v4是种子,srand函数和rand函数根据种子来生成随机数,input加密逻辑使用v7 那么首先想到的是爆破种子,来推flag
再看v4,unsigned __int16 v4无符号16位整数型,v4范围为0~2**16-1(65535),结合flag固定格式XYCTF{}
exp:

何须相思煮余年

打开是一堆十六进制数据和cipher
写个脚本将十六进制数据转化为二进制数据,然后写入二进制文件 再将输出的文件丢进IDA
得到汇编指令
notion image
这里的call和下面的call的地址一眼假,当作花指令nop掉 u、p操作复原函数
加密逻辑清晰 exp:

砸核桃

notion image
下载对应工具后
notion image
IDA打开:
提取cipher和byte_402130 exp:

ez_enc

根据分析进行修改,得到以上内容,前几个printf打印德国骨科相关内容,真正的加密只有第一个for循环
因为不好逆,所以采用正向爆破,但是这里有一定特殊性,爆破后的数据一定在0~19范围内。为了得到正确的flag,将cipher的值+20的倍数进行计算,对应爆破的flag数据也对应+20的倍数,得到正确合理数据为止 exp:
再对爆破出的数据处理

ezmath

python解释器编译的exe文件,解包出pyc,再反编译成py文件
多元一次方程,z3脚本一把梭
整理得到flag

给阿姨倒一杯卡布奇诺

tea加密,多了一点异或,直接搓解密

what's this

DIE查询发现是lua编译的,网上搜lua在线反编译得到源码
notion image
一千多行代码,实际有用的只有最后那段
使用XOR函数将字符与数字8进行异或操作,再加上3,base64加密,再进行字符替换 直接逆向逻辑,exp:

馒头

notion image
notion image
直接再check_flag里找到密文,里面包含了最终哈夫曼树的部分检测点以及data
这里使用sorted函数排列一遍,可以发现data从1~24完整,那么,我们可以根据ans1的数据,画出哈夫曼树来解决 为了方便,可以简单处理下数据:
我们可以根据分析粗略得到部分flag数据,继续画出完整哈夫曼树:
notion image
手撕,整理一下得到flag:

easy language

notion image
可以看到右下角有明显的图标
notion image
然后就没找到啥逆向逻辑了,全是脑洞,想了好久
notion image
这里找到四个数据,长度分别为44、16、64、16 数据长度结合
notion image
猜测是标准AES-ECB加密
shift+F12,第一个内容就像是在暗示base64加密
notion image
那么解密就是先进行base64解密,再AES-ECB解密
notion image
notion image

舔狗四部曲-简爱

notion image
一眼过去应该是tea和howtolove函数有用,分析逻辑可以知道,两个tea分别对input和cipher进行同样的加密,所以无意义
锁定howtolove函数,有opcode那味儿,仿照vm思路来写,打出操作步骤
打印出来直接逆 exp:
最后有个字节错了,脑洞一下就OK了

舔狗四部曲-相逢已是上上签

.exe文件用DIE扫出来是MODOS文件,丢进010editor看看
notion image
e_lfanew段有明显的问题,未找到正确pe头位置
notion image
改掉,此时可以看的DIE扫出来是32PE文件
上面的key可以用z3求解
魔改的xxtea加密,先手动复刻一遍加密逻辑
notion image

舔狗四部曲-我的白月光

点击运行得到第一段flag:flag{L0v3_ ,并告诉还有两段flag
IDA找到main,前面全是winapi触发messagebox,触发弹框
notion image
最后这段明显感觉是base64解密,直接解发现是错的,点进base64看
notion image
原来是魔改的base64,把3 * 8改成了4 * 6拆分
修改base64解密得到
与第一段连不上,拿到的应该是第三段flag
notion image
V11本来是VirtualProtect的messagebox,在这里hook了sub_7FF6B44B1470函数
在里面发现了messageboxW以及一段疑似加密逻辑:
notion image
原始数据在上面v11数组那里,为了方便,动调+IDApython打出内容
notion image
得到第二段flag
CISCN国赛AES-128
Loading...
Sh4d0w
Sh4d0w
漫长学习路ing
最新发布
360加固复现学习
2025-6-15
java反射机制
2025-6-14
classLoader机制
2025-6-14
dex文件结构
2025-6-14
APP启动流程
2025-6-14
JNI学习
2025-6-14
公告
Welcome to Sh4dw’s blog!
敬请指导,Q 467194403