找不到变量生成位置?让插件来帮你轻松定位

网友投稿 878 2022-05-28

声明:本文仅作研究分享,如有侵权,还请告知删除,谢谢。

搞过某号店登录的朋友都知道有个“window._t”变量,该变量如果不依靠工具来查找生成的位置,比较难,非常的难,掉的头发比较多。如果你能使用AST进行还原,则能很顺利的找到其加密位置,这里不讲怎么将混淆的代码还原。我们通过油猴插件+脚本的方式来定位,我们来看代码:

// ==UserScript==

// @name Hook global

// @namespace http://tampermonkey.net/

// @version 0.1

// @description try to take over the world!

// @author 悦来客栈的老板

// @include *

// @grant none

// @run-at document-start

// ==/UserScript==

(function() {

'use strict';

//全局变量 监控

var t = window._t

Object.defineProperty(window, '_t', {

get: function() {

console.log('Getting window._t');

return t;

},

set: function(val) {

console.log('Setting window._t', val);

debugger;

t = val;

}

})

})();

代码可以Hook到加密生成的地方,但是有个坑:

// @run-at document-start

这行代码的目的是脚本注入的时机。

参考油猴手册的解释:

油猴手册地址:

https://www.tampermonkey.net/documentation.php#_run_at

看不懂英文的我猜出来了它的大致意思:尽可能快的注入到js代码中,这样才能Hook,如果去掉这行代码,是无法拦截的,读者朋友们可以自行尝试。

下面介绍另外一种方式进行变量定位:reres插件,其github地址:

https://github.com/annnhan/ReRes

下载插件后安装到浏览器上面,如图:

安装好后,注意按照它的教程勾选允许访问文件地址:

我们现在来看看它到底怎么帮我们定位到变量的位置。

使用谷歌浏览器打开如下网址,并按下F12,打开开发者工具:

https://passport.yhd.com/passport/login_input.do

随便输入用户名和密码,点击登陆按钮,进行抓包。在查找 captchaToken 参数时,全局搜索,定位到了这里:

控制台分析得知:

j2[hr[b('0x361', 'XzVN')]('_', 't')]

这行代码就是 window._t:

可是它已经生成了,按照传统的方法去找加密的位置,得靠极大的耐心和运气。

3.我们将这个页面上的所有代码复制,一共4191行代码,并保存到电脑上,我这边保存到了E盘(Hook.js):

4.在文件末尾加入如下的JS代码,并保存:

(function() {

'use strict';

var t = window._t

Object.defineProperty(window, '_t', {

get: function() {

console.log('Getting window._t');

return t;

},

set: function(val) {

console.log('Setting window._t', val);

debugger;

t = val;

}

})

})();

这个就是上面油猴脚本里的代码,只不过不需要下面这些信息:

// ==UserScript==

// @name Hook global

// @namespace http://tampermonkey.net/

// @version 0.1

// @description try to take over the world!

// @author 悦来客栈的老板

// @include *

// @grant none

// @run-at document-start

// ==/UserScript==

4.单击reres插件按钮,再单击 添加规则:

5.按照它的规则,需要找到匹配的url:

这里JS的url地址是这个:

在箭头所指的位置单击右键,选择 Copy link address:

这样就将要匹配的url复制到了剪切板,将其复制到这里:

下面的 Response根据添加规则,

线上地址请以http://开头,本地地址以file:///开头,比如http://cssha.com或file:///D:/a.js

我这里在E盘,因此按照它的方式这样添加:

点击保存即可。

6.这个时候我们刷新 一号店 登陆的页面,发现停在了这里:

再观察堆栈,点击下一行:

一下子就找到了它生成的位置,是不是非常的快.

直接本地修改JS代码,那是不是可以*******?

找不到变量生成的位置?让插件来帮你轻松定位

和谐社会,请遵纪守法,做一个好公民。

网络

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MRS IoTDB时序数据库的架构设计与实现(2)
下一篇:基于Spring Boot的车牌识别系统(附项目地址)
相关文章