Ywc's blog

CTF常用脚本整理

Word count: 275Reading time: 1 min
2018/12/06

base64解码

1
2
3
4
5
import base64
str1 = 'your string'
print base64.b64decode(str1)
print base64.b32decode(str1)
print base64.b16decode(str1)

1.长串字符串两两分割

1
2
3
def long_to_2(str_):
for i in range(0,len(str_)+1,2):
print(str_[i:i+2])

CTF常用脚本整理

trick: 不换行输出

  • python2: print 'xxx', //语句最后面加一个,
  • python3: print('xxx',end='')

不同进制转换

一般来说,先换算为十进制,再进行后续转换

转化为十进制

  • 十六进制到十进制 int(‘0xab’, 16)
  • 二进制到十进制 int(‘0b10’, 2)

十进制转二进制

  • bin(123)

十进制转十六进制

  • hex(123)

按行读文件的4种方式

使用for循环(最简洁)

1
2
3
file = open("sample.txt")
for line in file:
pass # do something

带缓存的文件读取(效率最高)

1
2
3
4
5
6
7
8
file = open("sample.txt")

while 1:
lines = file.readlines(100000)
if not lines:
break
for line in lines:
pass # do something

fileinput模块

1
2
3
4
import fileinput

for line in fileinput.input("sample.txt"):
pass

常规方法

1
2
3
4
5
6
7
file = open("sample.txt")

while 1:
line = file.readline()
if not line:
break
pass # do something
CATALOG
  1. 1. base64解码
  2. 2. 1.长串字符串两两分割
  3. 3. 不同进制转换
  4. 4. 按行读文件的4种方式