for i in range(0xFFFF): stream = img[12:20] + struct.pack('>i', i) + img[24:29] crc = binascii.crc32(stream) if crc == bytes_to_long(img[29:33]): print(hex(i))
with open('D:\\oneDrive云存储\\OneDrive\\桌面\\misc\\梅花香之苦寒来\\1.txt', 'r') as h: h = h.read() with open('./ascii.txt', 'a') as a: for i in range(0, len(h), 2): tmp = '0x'+h[i]+h[i+1] tmp = int(tmp, base=16)
a.write(chr(tmp))
from PIL import Image
d = open('C:/Users/Administrator/Desktop/1.txt', 'r') w = 280 h = 280 img = Image.new('RGB', (w, h), (255, 255, 255))
whileTrue: s = d.readline() ifnot s: break x = int(s.split(',')[0][1:]) y = int(s.split(',')[1][:-2]) img.putpixel((x, y), (0, 0, 0)) img.show() img.save('C:/Users/Administrator/Desktop/1.png')
[BJDCTF2020]一叶障目
CRC碰撞脚本
#coding=utf-8 import zlib import struct #读文件 file = '1.png'#注意,1.png图片要和脚本在同一个文件夹下哦~ fr = open(file,'rb').read() data = bytearray(fr[12:29]) crc32key = eval(str(fr[29:33]).replace('\\x','').replace("b'",'0x').replace("'",'')) #crc32key = 0xCBD6DF8A #补上0x,copy hex value #data = bytearray(b'\x49\x48\x44\x52\x00\x00\x01\xF4\x00\x00\x01\xF1\x08\x06\x00\x00\x00') #hex下copy grep hex n = 4095#理论上0xffffffff,但考虑到屏幕实际,0x0fff就差不多了 for w in range(n):#高和宽一起爆破 width = bytearray(struct.pack('>i', w))#q为8字节,i为4字节,h为2字节 for h in range(n): height = bytearray(struct.pack('>i', h)) for x in range(4): data[x+4] = width[x] data[x+8] = height[x] #print(data) crc32result = zlib.crc32(data) if crc32result == crc32key: print(width,height) #写文件 newpic = bytearray(fr) for x in range(4): newpic[x+16] = width[x] newpic[x+20] = height[x] fw = open(file+'.png','wb')#保存副本 fw.write(newpic) fw.close
result = {} for i in alphabet: counts = strings.count(i) i = '{0}'.format(i) result[i] = counts
res = sorted(result.items(),key=lambda item:item[1],reverse=True) for data in res: print(data)
for i in res: flag = str(i[0]) # print(flag)
if i[1] == 0: break print(flag[0], end="")
大佬的脚本学习一下!
sqltest
aa = '' with open('1.txt','r') as f: # f.readline() # print(int(f.readline()) # print(f.readlines()) # f.readline() for i in f: # print(i) pp = i.replace('\n','') aa += chr(int(pp))
print(aa)
[ACTF新生赛2020]base64隐写
base64隐写
defget_base64_diff_value(s1, s2): base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' res = 0 for i in xrange(len(s2)): if s1[i] != s2[i]: return abs(base64chars.index(s1[i]) - base64chars.index(s2[i])) return res
defsolve_stego(): with open('E:/abcc.txt', 'rb') as f: file_lines = f.readlines() bin_str = '' for line in file_lines: steg_line = line.replace('\n', '') norm_line = line.replace('\n', '').decode('base64').encode('base64').replace('\n', '') diff = get_base64_diff_value(steg_line, norm_line) print diff pads_num = steg_line.count('=') if diff: bin_str += bin(diff)[2:].zfill(pads_num * 2) else: bin_str += '0' * pads_num * 2 print goflag(bin_str)
defgoflag(bin_str): res_str = '' for i in xrange(0, len(bin_str), 8): res_str += chr(int(bin_str[i:i + 8], 2)) return res_str
import zipfile import string import binascii defCrackCrc(crc): for i in dic: for j in dic: for p in dic: for q in dic: s = i + j + p + q if crc == (binascii.crc32(s) & 0xffffffff): #print s f.write(s) return defCrackZip(): for I in range(68): file = 'out' + str(I) + '.zip' f = zipfile.ZipFile(file, 'r') GetCrc = f.getinfo('data.txt') crc = GetCrc.CRC #以上3行为获取压缩包CRC32值的步骤 #print hex(crc) CrackCrc(crc) dic = string.ascii_letters + string.digits + '+/=' f = open('out.txt', 'w') CrackZip() f.close()
Code image Path to puzzle size Puzzle piece size in pixels generations Number of generations for genetic algorithm population Number of individuals in population