这两天其实还有个重要的任务,要做个ppt,但心里十分抗拒,一直拖延,拖延着来研究Python了。 今天写了一个简单的脚本,可能对ctf杂项里面的文件隐写、流量分析题有用。就是在文件里搜索可能有用的信息。
# _*_ encoding:utf-8 _*_ d = {"89504e47":"png格式图片","ffd8ffe1":"jpeg格式图片","504b0304":"zip格式压缩包","666C6167":"flag字符串base16编码","5A6D78685A":"flag字符串的base64编码","4F446B314D44526C4E44":"base64格式的图片数据流"} def hexstr_to_list(s): hexlist = [] for i in range(0,len(s),2): hexlist.append(int(s[i:i+2],16)) #print(i) return hexlist #print(hexstr_to_list("89504e47")) f = open('test.png', 'rb') s = f.read() for k,v in d.items(): loc = s.find(bytes(hexstr_to_list(k))) if loc>-1: print("文件可能包含有",v,"位置在:",loc)输出结果:
文件可能包含有 png格式图片 位置在: 0 文件可能包含有 jpeg格式图片 位置在: 1547253 文件可能包含有 flag字符串base16编码 位置在: 1547268字典暂时不全,后续再补上吧,还有应该把文件解码后,再到里面搜索一次的,不过这样有可能有重复。以后再想想怎么解决。 暂时就到这里吧,今天超过了10行的范围了。
ps: 今天听到一个新的观点:浮动目标要好于固定目标,因为浮动目标让人更容易坚持,给人了一定的掌控性。基于这个理由,我要把我的目标修改一下:每天写7到15行代码。
对了,今天还遇到一个问题,没有解决,就是在哪里可以查到python内建函数的原代码。比方说我想看下bytes.find()的代码,网上找了半小时没找到答案,郁闷。