这道题也是给了个ip 端口,以及密码让你连过去,连过去后返回的是个这个
先是200h的这个英文说明,很简单,后面会返回100000个uint16,然后用最少的交换,来完成这个,每次提交交换对如数例如123:9821,讲到交换最少,比较好想的是选择排序,就是排序起来慢些,不过应该挺好用的,因为每一位只需要一次交换,机子够好的话,网速也够好的话,o(n2)的速度完全可以接受,
写道
Here come 100000 uint16_t, please tell me how to sort them into
ascending order by sending me pairs of indicies to exchange, one
per line, in the format: <index1>:<index2>
For example to exchange elements 123 and 9821 you should send:
123:9821
Valid indicies are in the range 0..99999 inclusive. Send a blank
line when you are done. If you correctly sort the array in
sufficiently few moves I will give you a key!
You have about 10 seconds to finish, and a 5 minute wait between
successive connections.
我的py,因为这个题每5分钟只能测试一次,而且我的网速机子都太烂了(敢不敢实验室把机子配置更新下,网也烂啊),测试未果,放出来大家看看就好了。
#! /usr/bin/env python
#coding=utf-8
import os, sys, struct, math, random, socket
MX = 100000
T = 200514
times=0
def op(s):
#print s
global times
times=times+1
if((times%10000)==100):
print times
sock.send(s + '\x0a')
def swap(a,i,j):
temp=a[i]
a[i]=a[j]
a[j]=temp
def qsb(n,l,r):
for i in xrange(r):
lowindex=i
for j in xrange(r,i,-1):
if (n[j]<n[lowindex]):
lowindex=j
swap(n,i,j)
op(str(i)+':'+str(j))
if __name__=='__main__':
ary = []
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('140.197.217.155', 5601))
s=sock.recv(100)
print s
sock.send('d0d2ac189db36e15\x0a')
f = ''
for i in xrange(10):
d = sock.recv(50000)
f=f+d
f = f[512:200513]
for i in range(MX):
ui = f[i:i+2]
uin = struct.unpack('<H', ui)
ary.append(uin[0])
if len(ary) != MX:
print 'error, len not 100000'
sys.exit(1)
qsb(ary, 0, MX-1)
sock.send('\n')
print 'send ok'
w = open('back', 'w')
while True:
d = sock.recv(1024)
if len(d) > 0:
print d
w.write(d)
else:
break
print 'all done'
算法大致上没什么问题,可能细节有些问题吧,不过后来也没调了。。。。
分享到:
相关推荐
CTF常用小工具你值得拥有那个。。。。111
ctf 密码学 脚本 合集 非常 nice
ctf_all_in_one这个一个能够为想去做网路攻防的人做的技术贴,书中包含了ctf需要的技能列表
在CTF(Capture The Flag)竞赛中,MD5常常被用于创建挑战,参赛者需要通过逆向工程或查找已知的哈希碰撞来解密MD5值。 在"md5.zip"这个压缩包中,包含两个文件:"md5.py"和"code.txt"。"md5.py"很可能是一个Python...
CTF_and_Real_World.pdf
【标题】"CTF.rar_ctf_seed7rj" 暗示了这是一个与网络安全相关的挑战,CTF(Capture The Flag)是网络安全领域常见的比赛形式,通常涉及逆向工程、密码学、网络攻防等技能。"seed7rj"可能是这次挑战的一个特定标识...
defaults write com.apple.finder AppleShowAllFiles -bool true killall Finder ``` 要隐藏隐藏文件,只需将`true`改为`false`: ``` defaults write com.apple.finder AppleShowAllFiles -bool false ...
CTF常用工具集
用于在CTF签到题中,在文件夹及文件中,快速搜索flag及经过编码的flag字符串
在IT安全领域,尤其是网络安全竞赛(Capture The Flag, 简称CTF)中,"misc"类题目通常涵盖各种不同类型的问题,包括但不限于密码学、逆向工程、取证分析、Web安全以及我们的主题——二维码(QR码)研究。...
CTF大全2016.陈宇森.CTF与安全人才培养
- 官方和社区网站如Anquanke、XunZhiyun等提供了很多公开的Write-up(解题报告),是学习和准备CTF比赛的重要资源。 总的来说,CTF比赛不仅考验参赛者的安全技能,还锻炼了他们在实际环境中应用这些技能的能力。...
这是hackim-ctf的writeup
样本来自2016年的Seccon ctf的一道pwn题,该题目使用了alloca内存分配函数,该函数不同于一般堆上的内存分配,而是在栈上进行。题解:https://blog.csdn.net/A951860555/article/details/114011564
2016年0ctf的pwn题。
Codefest'2019 CTF writeup 是一篇关于网络安全竞赛的总结,主要涉及的是在Codefest'19夺旗比赛中的几个挑战解决方案。CTF(Capture The Flag)是一种流行的安全竞赛,参赛者通过解决各种安全相关的谜题来获取“旗帜...
GitHack 是一个针对 `.git` 目录泄露的利用工具,主要用于网络安全竞赛(CTF,Capture The Flag)中的Web安全领域。`.git` 目录是Git版本控制系统的一部分,通常包含项目的完整历史记录和敏感信息,如源代码、配置...
在CTF(Capture The Flag)竞赛中,"puzzle"是一种常见的挑战类型,它涉及到解决各种谜题以获取关键信息或解密数据。本资源包包含了一组与CTF拼图相关的图片,很可能是参赛者需要解读的线索。每个图片可能代表一个...
一道简单的ctf逆向题目,取自于成信大2019四叶草安全杯比赛