论码农如何智斗奸商


话说宝宝出生当天,病房就来了个人问是否想要给宝宝拍照片,是医院的”gift”,二她妈妈就傻不拉唧答应了。第二天摄影师来了一顿摆弄,照了十几 张,处理好了以后拿来一个价目表让我们选:选两张的话100刀左右,四张的话150,全要的话200,才知道原来人家说的gift是指有20%的打折,不 是免费。看人家折腾了这么久又不要意思不要,就选了四张,二她妈妈说这钱花得真是肝疼。

过几天收到了邮件,附件一个压缩包里四张图片,奸商贼心不死还附了一个链接,里面是当时照的全部的照片,但是只有小图预览,意思是如果你想要大图还可以再买。小图比较小,截屏保存的价值不大,但是他还提供一个放大镜工具,你可以用鼠标移动查看一小块的细节,如下图:

既 然可以看到部分的大图了,完整的大图应该也是能拿到的吧。抱着不能便宜了他们的心情,我就仔细研究了一下…… 首先这个图片不是直接篏在html里的,而是整个是一个flash。我猜想图片本身不是包含在swf文件里面的,不然的话给每个客户都生成一个swf文件 略麻烦了,直接用chrome的工具监视了一下,原来这个flash就是很直白地发GET请求从服务器拿图片,然后我就按照那个url试了一下,得到这 个……:

 

嘛…… 还是挺有防范意识的么。不过仔细看会发现不对的地方只是把颜色取反了而已,如果硬拿PS勾边改回来也不是不可能,但是我们要寻求更优雅的解法对吧。首先检 查一下我发送的request header,确定不是因为agent名字, cookie之类的地方被识破了。也就是说那个swf从服务器拿到的图片就是这样的,所以这个变换应该是在swf代码里完成的,我想作者大概不会把这些 copyright圈圈圈的坐标hardcode进去,所以应该在什么地方有这张mask图片。要么是又向服务器发了个请求(经查没有),要么就是在 swf文件的资源里。于是找了个从swf里提取资源的工具,果然得到了这个:

接下来就简单了,写个python脚本把两个图片合一下就出来了:

于是写个脚本把十几张图片都处理一下,大功告成!(ps. 还有个小问题是我用的swf资源提取工具会在右下角放个小水印,但因为这张图片很大是1200*1200的,照片的大小都没这么大,所以合并的时候没有影响)

结论:就算这样还是好贵啊!

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s