WKCTF-RE部分wp
very_easy[该题未做出]
根据矩阵杯2024 Re wp 前两题-CSDN博客这篇博客,遇到类似的题需要下载quickJS后在linux系统上make编译,并以
1 |
|
但是我编译后报错version 2 expected 67. 然后就放弃了
so_easy
一个so的算法逆向
遇到so可以用多种架构的都看一下,防止某一个反编译出来比较奇怪。
逻辑大致是这样:
这种每个都要循环255次的,爆破怕是不现实,所以一定要找到两种操作对结果的不同影响。
可以发现:
input最高位为0时(input为正数),仅左移一位,最后0位为0
input最高位为1时(input为负数),左移再异或,最后0位为1
根据这一点来判断大小然后写算法逆向
1 |
|
quite_easy
这个题最后连蒙带猜出来了QAQ
它hook了strcmp函数,在里面做加密
1 | for ( j = 0; j < 16; ++j ) |
加密大概有这三个,sub_4C13E3专门用来放置内容到output
前面几个才是加密,这个加密方式当时是猜的,有点抽象,调不动,复现的时候验证了一下发现确实就是它写的那样加密的
由于调试时可以发现,它把随机生成的16位值拼在flag后面了,所以可以调试得到第一轮的参数,第二轮的参数就是flag的值,然后最后一轮用了传入的第二个字符串,就是那个假flag
1 | from prism import * |
这里应当先执行第一个解密再执行第二个解密,这样第二轮解密才能用当时异或的值
评论