这是一篇亚马逊技术员的福音文章!
亚马逊涉及的二次开发是很多程序员的第二个饭碗,但是亚马逊的开发人员也不是盖的,要攻破他们紧密设计出来的东西可不是唾手可得的,想必骚年们必须经历九九八十一难才能取得最后的正经。下面我们一起来揭开他的神秘面纱吧。
什么是metadata1?
这个metadata1,实际是前端采集的很多形为数据,这些数据组成一个很大的object,序列化成string后再加密,最终base64编码得到,大致有以下数据:
1.鼠标点击数据:点击次数,点击坐标、点击间隔等;
2. 键盘按键数据:按键次数,按键间隔等;
3. 页面脚本数据:动态加载脚本列表、静态脚本内容块hash等;
4. 表单INPUT相关:内容hash等;
5. 浏览器信息:userAgent、location、引用页等;
6. 浏览器兼容性:css、js相关的一些兼容检测数据等;
7. 脚本性能数据:页面相关的一些事件触发时间;
8. localStrorage数据:唯一标识ubid;
9. GPU相关数据:支持的功能扩展等;
10.canvas数据:绘制一些形状,如果有表单,还会将表单中某些元素的内容绘制进去,最终计算绘制出来的图形数据的hash值,还会统计图片数据中各字节ascii码值出现的次数;
研究出来的结果
图片: 这是网络上一位大神帮我们开的先路,但是很多人来到这里还是懵逼的,包括我自己
还是老老实实在浏览器上抓个包看看吧。
这是什么鬼,都是给外星人看的吗? 那些亚马逊的程序员为了扰乱视听,搞出这种东西也是恶心啊.
函数,变量 都是用o0o0 ilil之类很相似的字扰乱。他们亚马逊搞前端的技术头搞不好是一个变态主义者。哈哈。开个玩笑,毕竟前端的源码是透明的,所以需要特殊的加密方式才可以保证他们的算法安全,但是他们能想出这种方式的加密也是头脑风暴了,给破解他们的人狠狠加了一道高墙。
不管三七二十一了,一定要给他破译出来。 功夫不负有心人,经过九牛二虎之力终于破译了一部分了。累成狗,最终翻译出来是这样的。如下图,代码漂亮许多了吧。但是6000多行代码,,啊。 如果没有耐心的人 ,真的会疯掉。
这一步全部完成后 ,需要开始慢慢了解上面大神所指引的那些相关的字段在破译文件里的蛛丝马迹了。其他都没有什么难点,最重要的是 canvas画图, 这个是需要你重新部署一个canvas环境,亚马逊把账号规则加入到canvas画画,最后形成一张图片发送到他们后台进行验证。
研究到最后 发现生成后的图片是这样子的,好恶心,什么乱七八糟的。搞不好这个图片可以给画家们灵感还不一定,像什么抽象画啊 ,又或者是什么后印象主义的什么鬼吧。哈哈,反正就很艺术。
其他的数据都是根据自己在后台随机就ok 了。什么鼠标,键盘,系统时间 ,浏览器之类一大堆。最后经过千辛万苦终于把metadata1的算法给生成出来了。 中间还涉及到算法计算后的加密,总之出来的结果是这样的,应该是对的吧。
1.鼠标点击数据:点击次数,点击坐标、点击间隔等;
2. 键盘按键数据:按键次数,按键间隔等;
3. 页面脚本数据:动态加载脚本列表、静态脚本内容块hash等;
4. 表单INPUT相关:内容hash等;
5. 浏览器信息:userAgent、location、引用页等;
6. 浏览器兼容性:css、js相关的一些兼容检测数据等;
7. 脚本性能数据:页面相关的一些事件触发时间;
8. localStrorage数据:唯一标识ubid;
9. GPU相关数据:支持的功能扩展等;
这部分数据直接在合理的区间内随机生成也写死固定值就好了。
来到关键的一步就是把整理的数据post到亚马逊了。
经过抓包后可以看到需要提交这些数据
经过整理的后的post数据提交后又发生问题了,真的是气死人了。居然还出现验证码,这不是要断了我们的后路吗。这是不合理的吧,如果亚马逊大神们费尽心思搞出这么一个算法,还需要验证码,不是浪费时间吗? 还不如一开始就直接验证码,,经过一番的头脑风暴,还是想不出解决的方案。脑门里突然闪出一个邪恶的念头,就是自动填写验证码。。这是要把自己逼疯的地步了。
还好本人学过一些python的机器学习的东西,就直接学以致用把,运用到实际上来。就是不知道这个坑 到底要踩多深而已
现在突然发现自己真的是无敌了,好神奇的验证码都被一波神秘的,有学习能力的代码给折服了。
来到这里 只有一句话想说就是 :人生苦短 学编程命更短。
突破验证码之后,继续试试看如果自动登录了。
问题来。。。问题又来了。。。。。。有句MMP 真的要讲。
please enable cookies continue 又是什么东西。
难道我的cookies有问题吗??
我真的该放弃了。 做人真累。。
为了那点薄弱的工资,想想家里的老人 还有老婆 小孩 (先要有个老婆,再考虑有小孩) 。。必须硬着头皮继续啃下去。
检查来了好多次cookies 都没有问题啊。 灵光一闪,知道问题的所在了, 知道答案后,人生再一次跌入了低谷,,因为上面的验证码都是白搞瞎搞。。一些都是无用功。
因为验证码自动填写后还会继续出现验证码, 验证码出现后还有验证码 。。。。。。无限循环。
如果手动输入验证又会跳转到 please enable cookies continue 这个页面。 好吧。我彻底奔溃了。 决定还是放弃。。。
做了十多年的技术,不甘心。
真的不甘心。 就这么放弃了。 所以我还是选择百度,选择google 看看大神们能不能再给我灵感。
有一句你妹我只想脱口大骂。。 下面文字有一些高能 ,,大家注意了
当我灰心意冷的时候 当我放弃治疗的时候, 索性输入 www.metadata1.com 后发现 。。你妹。。你妹 。。
一个硕大的脑壳儿。 还有一句中文 写着亚马逊登录算法api 。。。。。居然有大神把亚马逊的算法给攻破了 然后做成接口了,反正自己做不出来,先试试看 人家是怎么弄吧。
还有详细的文档。本人又一次彻底膜拜了
经过一波的骚操作后, 哈哈哈哈哈哈哈哈。。。哈哈哈哈哈哈哈。
居然真的 post成功了。。登录了。
先别高兴的太早, 在登录的中间 还是有一个小插曲的, 因为第一次登录,亚马逊对账号所涉及的环境也有判断的,如果这个账号在新的网线 新的电脑环境下 会出现需要邮箱的验证码
但是这里也还涉及到一个如何去邮箱里解析出那个验证码? 对大部分技术员来说 并不难, 用pop3 或者imap 等协议去获取就ok 了。 提示一下 邮箱需要开通这些权限才可以的哦。
最后我浏览一下 www.metadata1.com的网站 其实还是发现 他们 提供的功能已经帮我们想的很周全了。 包括如何 post数据 还有如果你真的很懒 他们还提供可以直接返回cookies的数据给你 ,这个真的是懒人的福音啊,有了cookies 就像有了玉玺一样 天下我有的感觉,毕竟cookies就可以直接登录了,免了好多麻烦而且可以保持很久。
不想再废话了。 直接到大神的网站去调用接口算了,虽然是收费的。但是我觉得还是蛮值得,而且收费也不贵,很便宜
套餐很多可以选,自己根据自己的 业务需求去购买就行了。5000元有5万积分,用到吐了。 而且你顾一个技术 帮你开发 或者自己去花时间研究的 未必搞出来 而且成本肯定也不止5000元吧。难道技术员的价值就这么低吗 哈哈哈哈。。 三思而后行吧。 好像在做广告的嫌疑 。 好东西一定要分享对吧,并非广告。并非广告。并非广告。重要事情说三次, 个人是这么觉得的吧。
亚马逊metadata1的谜题在这里就全部告破。。再附上最后大神的链接 http://www.metadata1.com
还没有完,,网站上还有账号的自动生成 和 生成 cookies的骚操作, 想必大神自己在想什么 ,你们都知道了吧。 哈哈。 自己意會意會就知道了。估计后续大神们还是出更多东西,因为我已经联系他们了,你们自己有什么不明白就自己去联系吧。。开动脑筋 还是有你们想要的东西的。
好了,并非广告、并非广告、并非广告。重要事情再说三次!