湖南网络安全比赛的一个CTF题目
本帖最后由 tengfe 于 2017-12-2 11:41 编辑大家看看吧,要求找出falg,不知道怎么设置不要积分,不好意思
nuodun 发表于 2017-12-9 00:09
怎么判断v7这个变量是第4个值?
根据堆栈结构,IDA分析的函数最顶端有各个变量的真实地址(我的图上没有截到),v7的地址=输入的变量的地址+3,所以是input即第4个值
或者动态调试,输入校验字符串如“123456789”,在OD中可以发现'0'和'4'进行比较,所以可以推断出是第四个值 本帖最后由 whklhh 于 2017-12-2 21:20 编辑
check1里是二元一次方程组(有一个三元的,问题不大)
check2里是变换大小写,很容易得出后几个字符
方程组手算应该也不难,根据flag一个一个推就是了
我懒,直接用Z3约束求解器跑了
from z3 import *
flag =
s = Solver()
result = []
s.add(And((flag) +flag == 126,flag+ (2 * (flag)) == 308,(flag) +(flag) +(flag) == 318,(flag) +(flag) == 201,(flag) -(flag) == 51,(flag) ==(flag)), flag==ord('0'))
for i in range(7):
s.add(flag > 32)
s.add(flag < 127)
if(s.check()==sat):
m = s.model()
for i in range(7):
print(chr(m].as_long()), end='')
print("_YnCtF")
Nsf0cus_YnCtF
这个东西解方程贼好用{:301_986:}虽然它要是知道被用来搞二元一次的话 估计会哭吧
说起来,最近就打了个湖湘杯,湖南还有啥别的比赛啊?
前排出售瓜子,注册了一年,几乎没发过贴6 邓功涛 发表于 2017-12-2 11:43
前排出售瓜子,注册了一年,几乎没发过贴6
....我只看看 我也是 没发过帖子 我也是,潜水了很久 zbnysjwsnd8 发表于 2017-12-2 12:30
牛逼了, tengfe 发表于 2017-12-2 13:00
牛逼了,
发下思路被 哈哈,不懂啊,还是看看吧 zbnysjwsnd8 发表于 2017-12-2 12:30
星斗师傅强啊,湖湘杯的那个