[XCTF-Reverse] 68 32c3ctf-2015_ey-or

艰苦的爆破

运行程序说是一行行输入数据。输入错误就直接退出。程序根本看不明白,按一个个字节暴。

问题在 于这个退出怎么处理。最后用sleep但也有问题,不是总成功。在第1个成功但第2个全部不成功的情况下说明第1个错了,作个回退。

from pwn import *

#每行一个字符,成功继续,不成功报错退出
context.log_level = 'critical' #'debug' #
ans = [] 
while True:
    print(ans)
    for i in range(256):
        p = process('./ey_or')
        #p.settimeout( 0.2 )
        p.recv()
        for j in ans:
            p.sendline(str(j).encode())
        
        p.sendline(str(i).encode())
        sleep(0.2)
        ret = p.poll()
        if ret != None:
            print('.', end ='')
            p.close()
        else:
            if i == 0:
                print(p.recv())
                pause()
            ans.append(i)
            print('Ok', i, ans)
            p.close()
            break
    else:
        ans = ans[:-1]    
    #pause()

print(ans)
#[36, 30, 156, 30, 43, 6, 116, 22, 211, 66, 151, 89, 36, 82, 254, 81, 182, 134, 24, 90, 119, 6, 88, 137, 64, 197, 251, 15, 116, 220, 161, 94, 154, 252, 139, 11, 41, 215, 27, 158, 143, 140, 54, 189, 146, 48, 167, 56, 84, 226, 15, 188, 126, 24]
#You got the Flag: 32C3_wE_kNoW_EvErYbOdY_LiKeS_eLyMaS
#32C3_wE_kNoW_EvErYbOdY_LiKeS_eLyMaS  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值