pwnable.kr [coin1]

pwnable.kr [coin1]

Mommy, I wanna play a game!
(if your network response time is too slow, try nc 0 9007 inside pwnable.kr server)
Running at : nc pwnable.kr 9007

首先访问,看看是什么东西。
在这里插入图片描述
由题意得,我们需要使用二分法,来交互得到最后的假硬币。
相当于pwntools的练习。
但是代码在本地跑ping太高最多60个就GG
查了别人的答案要放在本地/tmp下跑才行。
贴代码

from pwn import *
import re
def func(l,r):
        x=str(l)
        for p in range(l+1,r+1):
                x=x+' '+str(p)
        return x

r=remote('0',9007)
print(r.recvuntil('- Ready? starting in 3 sec... -'))
for j in range(100):
        m=r.recvuntil('N=',timeout=10000)
        print(m)
        m=r.recvline()
        pp=re.findall("\d+",m)
        print pp
        p=int(pp[0])-1
        c=int(pp[1])
        l=0
        for i in range(c):
                x=(p+l)/2
                pay=func(l,x)
                print pay
                r.sendline(pay)
                ans=int(r.recvline())
                print'ans=',ans
                if (ans==(10*(x-l+1))):
                        l=x+1
                else:
                        p=x
                #print 'x=',x
                if(l==p+1):
                        l=p
                print 'p=',p
                print 'l=',l
                print 'i=',i
        if((ans %10)==9):
            pay=str(l)
        else:
            pay=str(p)
        print pay
        r.sendline(pay)
print(r.recvline())
print(r.recvline())
print(r.recvline())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值