高校运维赛2024

PREFACE:高速抢了 re,但没一血,其他题小看了一下

# babyre

去壳,约束求解输入进去即可

a1 = BitVec('a1', 32)
solver = Solver()
constraint = (11 * ~(a1 ^ 0xE33B67BD)
     + 4 * ~(~a1 | 0xE33B67BD)
     - (6 * (a1 & 0xE33B67BD)
      + 12 * ~(a1 | 0xE33B67BD))
     + 3 * (a1 & 0xD2C7FC0C)
     + -5 * a1
     - 2 * ~(a1 | 0xD2C7FC0C)
     + ~(a1 | 0x2D3803F3)
     + 4 * (a1 & 0x2D3803F3)
     - -2 * (a1 | 0x2D3803F3) == 0xCE1066DC )
solver.add(constraint)
solver.add( a1 <= 0x10000000)
count = 0
while solver.check() == sat:
    model = solver.model()
    print(count, model[a1].as_long())
    count += 1
    solver.add(a1 != model[a1])

# easyre

换表 base64,没了

# ZIP

输入 linux 的退格符 \x7f 绕过

# babyai

赛中看别人硬爆一上午出来,感觉得是非预期

说说当时的进度:逆向发现这里可以溢出 bss,可以把 Seed 和 Seed 生成的序列全控了

image-20240527165600188

对照返回 agent 发过来的数据,但 agent 部分还是有随机量,预期解感觉应该是通过控 bss 序列提高爆破成功几率?