淘宝UA反混淆之常量替换(201605_64.js)

目前对淘宝UA反混淆​还要进行常量替换。在esprima和C#之间徘徊了许久,最终我选择了用C#自行编写代码来实现常量替换。虽然用C#大致实现了这个功能,但是代码执行的效率,通用性,正确率应该是远不如esprima的。如果你也跟我一样正在徘徊,那我建议你使用etools。今天记录用C#实现淘宝UA反混淆步骤中的常量替换,给大家做一个反面教材吧。​

C# 正则表达式实现对淘宝 UA 文件初步反混淆

淘宝的UA文件目前已更新为64.js。64有一个特别之处,它参数中对应于r[1163]的元素'JR;ZNRC]Y"yQD"PVR$'​可以在使用正则表达式时替换字符串"r[1163]​"​时,在现有字符串中复制“r[1163]”​后剩余的字符串并将这些字符串添加在现有字符串的后面。虽然我不明白这其中的缘由,但是阿里人的睿智实在让我敬佩不已。

淘宝新版UA文件混淆函数清晰化处理(C#实现)

淘宝UA文件已更新为63.js,本文和上一篇文章的反混淆方法依然适用。在新版UA文件的起始有n(n),t(n),o(n),a(n)四个函数,这四个函数作用就是混淆混淆再混淆。今天记录新版UA文件反混淆的第二步:混淆函数清晰化处理。

淘宝新版 UA 文件代码反混淆分析(去数组下标)

听说淘宝新版UA文件是http://af.alicdn.com/js/cj/62.js,这个文件与原来(2015年10月)的UA文件ctionlog_js_ua.js风格迥异,毫无相似之处。​尽管犹如蚍蜉撼大树​,我还是尝试着对这个文件做了一些初步的逆向分析,还请各位大神指点。

淘宝UA生成文件actionlog_js_ua.js学习笔记总结

近期认真的学习了淘宝用于生成UA的actionlog_js_ua.js文件,也逐一记录自己学习过程中的对淘宝UA一些认知,到今天算基本告一段落。因为边学习边记录,前面一些文章中可能会有一些疏漏,因此本文做一个汇总,记录一些自认为比较重要的学习心得和一些学习过程中的疑问。

ua.js 获取访客浏览器与操作系统信息的方式

淘宝的ua.js在load事件处理函数中,使用正则表达式和navigator["userAgent"]和navigator["platform"] 来获取访客的浏览器和操作系统信息,也会获取访客屏幕分辨率和浏览器窗口尺寸,用这些信息来更新UA。

ua.js中arguments.callee.caller的应用

在ua.js文件中,用到arguments.callee和arguments.callee.caller的函数名为su。据我的理解,这个函数的作用是:在每一次UA更新时,获取当前更新UA的函数名,按照函数执行次序依次将函数名存储在变量uv5中。

ua.js中JSocket.getlso和JSocket.setlso代码分析

搜索关键词JSocket.getlso或JSocket.setlso,会发现乌云上几个与"淘宝网存储xss"相关的漏洞,有一部分漏洞与ua.js中的JSocket相关。虽然以我目前的知识暂时还不能理解漏洞形成的原理,但是我可以先将相关漏洞与JSocket相关的代码字面意思记录下来。

ua.js中用 image 对象实现页面访问统计

据说目前用image对象实现页面访问统计是比较最常用的一个方法,将如下类似的JavaScript脚本放在网页里:new Image().src = "http://xxx.com/log?msg="+ msg; 这种统计方法基本上不会干扰用户的正常操作。而大淘宝的ua.js文件中就包含了类似的代码,我们一起来围观一下。

ua.js中网络超时检测函数 wql 功能分析

wql是ua.js中网络超时检测函数。​在load事件自定义处理函数中获取各种固定信息生成UA时,每一次调用vq4,随即都会调用wql,wql的唯一参数与vq4的第一个参数相同​,今天我们来分析该网络超时检测函数wql实现的原理。
Fork me on GitHub