writeup-coin1

本文介绍了一个简单的游戏挑战,通过Python编程解决数学问题。作者利用pwn库进行远程操作,并分享了如何克服网络延迟的问题,最终实现了游戏挑战的成功破解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

题目如上,其实做起来就是小学的数学题。。但是python不熟。。写得各种蛋疼

还有就是连服务器的速度太慢。。所以被迫要把写好的程序上传上服务器,然后在服务器里面运行

代码如下

from pwn import *
import time
import re

def return_str(s,n):
   li=""
   for i in range(s,n+1):
    li+=(str(i)+" ")
   return li

def mission(N,C):
   #print "C= "+str(C)
   start=0
   end=N-1
   plus=0
   success=False
   for i in range(0,C+1):
     n=end-start+1
     if(n%2==0):
      plus=1
     else:
      plus=0
     pwn.sendline(return_str(start,start+n/2-plus))
     #print "send: start:"+str(start)+"  end:  "+str(start+n/2-plus)
     r1=pwn.recv()
     #print "rec:  "+r1
     if(i==C):
       break
     num_g=int(re.findall(r"\d{1,6}",r1)[0])
     if(num_g%10!=0):
       end=start+n/2-plus
     else:
       start=start+n/2-plus+1

pwn =remote("0",9007)
sw=pwn.recv(1200)

time.sleep(1)

for i in range(0,100):
    st=pwn.recv(100)
    m = re.findall(r"\d{1,3}",st)
    N=int(m[0])
    C=int(m[1])
        mission(N,C)
        print i




pwn.interactive()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值