前言
上午上课,中午开始看的题目
说实话,这次的比赛有把我捞到,哎
总结经验,吸取教训吧
easy_re
常规题,不多bb。
main函数有个花指令,去一下
反编译看main函数
观察算法特征,是RC4,但是有个细节变异 多了个异或0x37
key也有,密文动调得到
编写exp
1 | key = 'tallmewhy' |
抛石机
这题是真的吃了浮点转换和运算的亏了,他的判断逻辑还是比较好把握的
这里是判断输入的格式,必须得是flag{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
,字符x
的内容可变
cont
是x
的内容,8个字节为一组,然后存入4个全局变量中
然后是check函数,内容如下:
其实就是两个2元一次方程,一共得4个解。
不是等式方程(有个范围值,但很小),有师傅索性直接等于0,然后求解方程。
其实用范围约束来爆破得到的结果其实也一样,这个就不管了,不是我总结这题的重点
check函数开头有两个判断,可以用来判断一个2元1次方程的两个解应该分别是哪个变量
求解方程脚本——z3
1 | from z3 import * |
由输出结果加上前面的分析可以判断:
- x == 1.08063237896641294938
- y == 4.32516472248286241293
- z == -0.48267319186340060660
- l == 1.97762268681289555610
转16进制形式exp——struct
坑点都在注释里写上了
1 | import struct |
无坑写法——C
其实C语言本身带的格式控制符写这种浮点数的题比python更自然一点,直接copy其他师傅的脚本了:
1 |
|
babyvxworks
这题说实话是自己放弃了,vxworks好像是固件逆向,没做过,以为自己不会,没太认真看
后面看了下wp发现也就那样。。认真看应该是能做出来的
有很多花指令,有点去不干净**(tcl**,等一个大佬的去花wp,逻辑比较简单,就不分析了
exp
直接copy的ChaMd5的exp
1 | c=[188,10,187,193,213,134,127,10,201,185,81,78,136,10,130,185,49,141,10,253,201,199,127,185,17,78,185,232,141,87] |
Comments