题目来源:hackthebox
看到了0-9 a-z的目录,里面有的是空,有的是有文件
但是文件都是空,只有名字
看文件名都是数字,是不是ascii码对应的字母?
(后续证明这里解压的有问题,大小写不一致。。
用unzip解压出来的有的大小写不同,unzip解压的那个才是对的)
或者都转成二进制,然后转ascii码?
试一下
先用tree看一下内容,弄成列表,然后用python处理
tree /f
[6,22,30,34,16,36,23,4,13,26,14,5,19,2,27,10,12,8,11,25,31,33,32,3,7,1,24,20,28,9,35,15,17,21,29,18]
a = [6,22,30,34,16,36,23,4,13,26,14,5,19,2,27,10,12,8,11,25,31,33,32,3,7,1,24,20,28,9,35,15,17,21,29,18]
tentobin = []
tentobinstring = ""
final = ""
for i in a:
# 十进制转ascii
# tentobin.append(chr(i))
# print(i)
# 十进制转二进制 bin带有0b前缀,不带前缀呢?
# tentobin.append(bin(i))
tentobinstring += bin(i)[2:]
print(len(tentobinstring))
转了一下感觉也不太行。。
看wp,冲
ls -lAhR . > dir_file.lst 这个命令可以掌握一下
哦fuck…那些数字是有顺序的啊。。。。
按数字排序字母
手动。。。尝试写个脚本吧
先给它们排序,然后连接起来空格后面的那一部分,就ok了
先把Linux中unzip的结果写下来,用word处理一下,加上双引号和逗号,再用python处理
[“1 S”,
“35 V”,
“2 F”,
“19 F”,
“27 F”,
“23 B”,
“34 2”,
“7 R”,
“3 R”,
“18 z”,
“10 j”,
“12 j”,
“13 d”,
“9 U”,
“32 p”,
“25 N”,
“11 N”,
“31 N”,
“33 N”,
“5 e”,
“30 1”,
“22 1”,
“24 s”,
“26 D”,
“29 X”,
“21 X”,
“17 X”,
“36 9”,
“8 J”,
“4 C”,
“6 0”,
“14 E”,
“16 5”,
“15 x”,
“20 u”,
“28 u”]
脚本(其实觉得还不如手动快。。不过就当练习写脚本了!)
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Autor:tangzicheng
import base64
a = [] #把上面的复制过来即可
final = ""
# 用最简单的排序
for i in range(len(a)-1):
min = i
# print(min_index)
for j in range(i+1,len(a)):
if int(a[j][0:2]) < int(a[min][0:2]):
min = j
a[i],a[min] = a[min],a[i]
# print(min)
print(a)
for i in a:
final += i[2:].strip()
print(final)
print(base64.b64decode(final))