可信网站标志,校园网站建设公司,上海做网站的的公司,做网站是三网合一有什么优势第三十八题#xff1a; ctfshow{48b722b570c603ef58cc0b83bbf7680d}
第三十九题#xff1a;
37换成1#xff0c;36换成0#xff0c;就得到长度为287的二进制字符串#xff0c;因为不能被8整除所以#xff0c;考虑每7位转换一个字符#xff0c;得到flag。 ctfshow{5281…第三十八题 ctfshow{48b722b570c603ef58cc0b83bbf7680d}
第三十九题
37换成136换成0就得到长度为287的二进制字符串因为不能被8整除所以考虑每7位转换一个字符得到flag。 ctfshow{52812ff995fb7be268d963a9ebca0459}
第四十题 #提取出特定部分并转换为对应的 ASCII 字符最后将这些字符拼接成一个字符串 flag for i in range(28,69): #flag内容从28位开始 f open(apngframestr(i).txt) s f.read() flag chr(int(s.split(/)[0][6:])) print(flag) ctfshow{95ca0297dff0f6b1bdaca394a6fcb95b}
第四十一题
搜索f001查看他们摆成的样子。 ctfshow{fcbd427caf4a52f1147ab44346cd1cdd}
第四十二题
用010editor打开发现有48个IDAT块结合提示flag长度为41很有可能有关联经过观察从这里开始将其转换为字符acsll字符正好是ctfshow......
ctfshow{078cbd0f9c8d3f2158e70529f8913c65}
第四十三题须win系统
使用tweakpng查看弹出了很多这样的错误窗口看样子是crc有问题我们使用png-debugger-master工具来看一下把所有错误的crc收集起来转换成字符串得到flag。 ctfshow{6eb2589ffff5e390fe6b87504dbc0892}
第四十四题须win系统
用 PNGDebugger打开把信息导入到txt文件中
D:\1aCTF-Misc\png-debugger-master\Debug pngdebugger ../misc44.png 1.txt
利用脚本把OK的替换成1FAILED替换成0即可得到flag。 import re import binascii s open(1.txt, r).read() data_s re.findall(r\(1152\).*?CRC ([FAILED,OK!]), s, re.DOTALL) # 匹配1152所在的段直到结尾为FAILED或者OK结束在默认情况下.的作用是匹配除了换行符以外的所有字符这里的re.DOTALL的作用是可以将. 匹配所有换行符 print(data_s) flag for i in data_s: if i OK!: flag 1 else: flag 0 print(flag) print(len(flag)) for i in range(43): print(chr(int(flag[8*i:8*(i1)],2)),end) ctfshow{cc1af32bf96308fc1263231be783f69e}
第四十五题
使用在线转换格式的网站对png转换成bmp后使用binwalk工具可以查看到有隐藏内容-e对其进行分离即可得到flag。 ctfshow{057a722a5587979c34966c2436283e70}
第四十六题
扶乩术士制丁字形木架其直端顶部悬锥下垂。架放在沙盘上由两人各以食指分扶横木两端依法请神木架的下垂部分即在沙上画成文字作为神的启示或与人唱和或示人吉凶或与人处方。
根据题的提示应该是让我们通过identify查看它的偏移量提取它每次偏移的值当做坐标再作图 ┌──(ln㉿kali)-[~/ctf] └─$ identify misc46.gif 1.txt import re import matplotlib.pyplot as plt from PIL import Image f open(1.txt, r) s f.read() # 正则表达式寻找偏移量 data_s re.findall(rGIF .*?\(\d)\(\d), s, re.DOTALL) # 将data_s里的坐标从str类型转换成int类型不然后面的坐标不能识别 data_s [[int(i) for i in j] for j in data_s] # 创建一个新的RGB图像大小为400*70的像素背景颜色为白色RGB的值为255,255,255 img Image.new(RGB, (400, 100), (255, 255, 255)) # 创建一个新的RGB图像大小为1*1的像素背景颜色为黑色RGB的值为0,0,0 new Image.new(RGB, (1, 1), (0, 0, 0)) # 循环每次的坐标 for i in data_s: # 将new(黑色像素点)粘贴到img(白色像素点)上相当于填充 img.paste(new, i) # 显示img图像 plt.imshow(img) # 显示窗口以查看图像 plt.show() ctfshow{05906b3be8742a13a93898186bc5802f}
第四十七题
apng的文件结构是每一个IDAT块前面都会有一个fcTL块它其中就包含水平垂直偏移量。 # 第一阶段读取偏移 with open(r.\misc47.png, rb) as f: bin_data f.read() point_list [] for i in range(0, len(bin_data)): #print(hex(bin_data[i])) # union CTYPE type 中偏移固定位置在66 63 54 4C 后的 16 17 18 19 20 21 22 23 位 # 先找到66 63 54 4C 再根据固定的偏移找到uint32 x_offset 16 17 18 19 和uint32 y_offset 20 21 22 23 if i3len(bin_data) and hex(bin_data[i])0x66 and hex(bin_data[i1])0x63 and hex(bin_data[i2])0x54 and hex(bin_data[i3])0x4c: # 两字节转为十进制赌他不会用到三字节 # 高位字节存在前低位字节存在后小端字节序 l int((bin_data[i18] 8) | bin_data[i19]) r int((bin_data[i22] 8) | bin_data[i23]) point_list.append((l,r)) # 第二阶段通过偏移画图 from PIL import Image import matplotlib.pyplot as plt img Image.new(RGB,(400,70),(255,255,255)) for i in point_list: new Image.new(RGB,(1,1),(0,0,0)) img.paste(new,i) plt.imshow(img) plt.show() ctfshow{6d51f85b45a0061754a2776a32cf26c4}
第五十题
使用StegSolve工具在终端使用命令调用 java -jar StegSolve-1.5-alpha1.jar ctfshow{84470883ee1eec2e886436461bf79111}