Python challenge 13

第十三题的地址是: http://www.pythonchallenge.com/pc/return/evil.html



在HTML代码中找线索,只有一个evil1.jpg,输入到地址栏中替换,得到图片,但是依旧不知道谜题是什么。

我们试一下evil2.jpg,得到如下的图


继续尝试evil3.jpg,得到如下的图


所以,我们在地址栏中输入evil2.gfx,下载得到一个evil2.gfx文件。


然后我们继续尝试evil4.jpg,在浏览器中图片居然是破损的,一开始以为就是个错误,搜索后发现还是有信息遗漏,改用命令行执行。如下。


把之前题目中用于通关的用户名和密码输进去,得到一句话 Bert is evil! go back!


然后我们读取文件,并查看输出。

filename = 'C:\Python27\evil2.gfx'

f = open(filename, 'rb')
print f.name
print f.fileno()

data = f.read()
print data

用pyCharm得到一大串乱码,不知该用什么方法解析。



重新尝试在命令行中运行相同代码,得到如下的结果。截取



接着回到最开始题目出现的图片,扑克被分成了5堆,猜测文件内含有5份不同的文件。



终于得到线索,可以看到按照1,2,3,4,5 分发扑克的顺序截取一段值,出现不同的关键词,如JFIF, PNG, GIF, PNG, JFIF,我们可以肯定有两份jpg,两份png,一份gif,都是图片的文件格式。


filename = 'C:\Python27\evil2.gfx'

f = open(filename, 'rb').read()

types = ['jpg','png','gif','png','jpg']

for i in range(5):
    open('C:\Python27\evil2%d.%s' % (i, types[i]),'wb').write(f[i::5])

然后我们得到5份文件





第四张图显示又出现问题,实在找不出原因,最后搜索得到通关密码,'dis','pro','port','ional',最后的'ity'被划去了不算。 disproportional。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值