• pwnable.kr-coin1-witeup


    是一个小游戏,会给100堆小硬币,在每堆硬币中找到假币(重量为9,其他重量为10),其中每堆硬币都设置了金币数和固定的尝试次数。

    思路是:在每堆硬币中,在有限的尝试次数中对硬币通过二分法计算硬币重量不断缩小范围找到假币;这样操作100堆硬币,即顺利通关,获得flag。

    执行程序时,发现不能愉快地执行程序,会超时,应该是远程网络连接产生延迟的原因,解决方法是通过其他题目SSH登录服务器,在本机tmp文件夹下创建并运行脚本程序。

    程序代码:

    import time
    from pwn import *
    
    conn = remote('0', 9007)
    conn.recv(10024)
    for _ in range(100):
        line = conn.recv(1024).decode('UTF-8').strip().split(' ')
        print (line)
        n = int(line[0].split('=')[1])
        c = int(line[1].split('=')[1])
        left = 0
        right = n
    
        for _ in range(c):
            guess=' '.join(str(left) for left in range(left,int((left+right)/2)))
            print guess
            conn.sendline(guess)
            output = int(conn.recv(1024).decode('UTF-8').strip())
            if (output % 10 == 0):
                left = int((left+right)/2)
            else:
                right = int((left+right)/ 2)
        conn.sendline(str(left))
        print(conn.recv(1024).decode('UTF-8'))
    print(conn.recv(1024).decode('UTF-8'))
    conn.close()
  • 相关阅读:
    《需求分析与系统设计》第二篇阅读体会
    《需求分析与系统设计》第一篇阅读体会
    《编写有效用例》第二篇阅读体会
    项目目标文档
    字符流
    字节流
    递归
    File类
    JDBC接口和工具类
    异常
  • 原文地址:https://www.cnblogs.com/HYWZ36/p/10887251.html
Copyright © 2020-2023  润新知