2014年12月13日
httpwatch抓包分析登录淘宝领取淘金币的过程(四)
在数据包分析无果与各种尝试无效果后,我开始查看在领取淘金币的过程中浏览器所执行的js文件,功夫不负有心人,终于在broughtcoin.js这个文件中有了点小小的发现。
那么我们来看看这个文件中都包含了哪些重要信息。
1. 获取_tb_token_
1 2 3 4 5 6 7 |
function f() { var a, b = document.getElementsByName("_tb_token_")[0], c = document.getElementsByName("_csrf_token")[0]; return b ? a = b.value : c && (a = c.value), a || "" } |
2.触发领取淘金币按钮事件J_GetCoinBtn
1 2 3 4 5 6 7 |
var o = { codeImgSrc : "#J_CheckCodeUrl", trigger : ".J_GetCoinBtn", url : "http://api.taojinbi.daily.taobao.net/json/sign_in_everyday.htm", secondCheckUrl : "http://taojinbi.taobao.com/mid.htm", tmsContent : "#J_TmsTextContent" }; |
3.获取ua, t, Entertime
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
_requestApi : function (b) { var c = this, e = { t : a.now(), _tb_token_ : f() }, g = c.config, h = i.get("#UA_InputId"), j = i.get("#J_EnterTime"); h && (e.user_action = h.value), j && (e.enter_time = j.value), "undefined" != typeof ua && ua && (e.ua = ua), k({ url : d(g.url), data : a.merge(b, e), type : "get", dataType : "jsonp", success : function (a) { c._reloadUaToken(), c._switchReturnCode(a) }, error : function () { c._reloadUaToken(), c._errorTips() } }) }, |
4.ksTS变量值
领取淘金币的链接中,现在只剩_ksTS这个量的值还未得到,与其相关的代码应该如下,其中有“t:a.now()”这样的代码,那么该变量应该与时间相关。查阅相关资料后,据说ksTS = util.now() + ‘_’ + util.guid(), 也就是 ksTS=时间戳_全局唯一标示符,guid函数的作用就是生成一个全局唯一标示符,英文一般叫UUID或是GUID。但可惜的是我并未在broughtcoin.js文件中找到guid函数,但我尝试在从登录到领取淘金币的抓包数据中发现有多处js文件中有ksTS与guid函数组合的地方,看来ksTS的获取还需要单独研究一下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
jsonp : function (b, c, e, g) { d({ url : f.normalize(b), data : a.merge(c, { t : a.now()//系统当前时间??? }), type : e || "get", dataType : "jsonp", success : function (a) { kj a.isLogin || f.showLogin(), a.isSuccess && a.isLogin && g && g() } }) }, |
5.我在该文件中找到了code相关意义的代码。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
_switchReturnCode : function (a) { var b = this; switch (a.code) { case 1: b._takeSuccess(a); break; case 2: b._takeSuccess(a); break; case 3: b._errorTips(a); break; case 4: b._initCheckCode(); break; case 5://“验证码错误,请重试!”的Unicode编码 b._initCheckCode("\u9a8c\u8bc1\u7801\u9519\u8bef,\u8bf7\u91cd\u8bd5!"); break; case 7: b._showLogin(); break; case 8: b._needCheck(a); break; default: b._errorTips(a) } }, |
如果我可以在C#中调用这个js文件,然后再获取这个文件的执行结果,我是不是就可以成功得到最后领取淘金币链接的关键信息了呢?