zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    手机网络制式常识
    合并两个有序数组a和b到c
    N皇后问题
    数独求解
    ARM处理器模式
    ARM异常中断处理
    国风·召南·野有死麕
    八大排序算法
    1045 Favorite Color Stripe (最长不下降子序列 LIS 或最长公共子序列 LCS)
    1066 Root of AVL Tree (模拟AVL建树)
  • 原文地址:https://www.cnblogs.com/HYWZ36/p/10887251.html
Copyright © 2011-2022 走看看