ida分析。静态只能分析大概思路就是,要求对 魔方进行一个还原
魔方还原步骤,只需要,将第一次转动的步骤 方向 每个步骤*3 就能得到,
但是步骤利用的是一个 随机数
随机数的种子通过 调试猜测 可能 是时间
所以可以直接些 exp 完成远程服务 从而 得到flag。
from pwn import *
from ctypes import *
libc = cdll.LoadLibrary('/lib/x86_64-linux-gnu/libc.so.6')
print(libc.time(0))
libc.srand(libc.time(0))
v5 = libc.rand()
num = ((((v5 >> 56)+ v5) - ((v5 >> 31) >> 24)) % 0x100) + 0x10
steps_buf = ['F','R','U']
re_step = ""
print hex(num)
for i in range(num):
re_step = steps_buf[libc.rand()%3] * 3 + re_step
# p = process('./Rubic')
p = remote("ip", pro)
p.sendline(re_step)
p.interactive()