爬⾍⼊门之查JS⼊⼝篇---油猴插件的使⽤
咱们书接上回,昨天⽂章发出后,@花⼉谢了 ⼤佬说有 油猴脚本 Hook的⽅法,我之前也试过⽤脚本 Hook 过,但是没Hook住,因为姿势不对,⽤了他教的⽅法后,很轻松就⽣成的地⽅了。⽤油猴,保头发,妥妥的。
脚本如下:
// ==UserScript==
// @name        Hook global
// @namespace    tampermonkey/
// @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;
return t;
}
})
})();
tampermonkey添加好脚本后,来试试效果。
新打开⼀个标签页,按下F12,并在地址栏输⼊:
passport.yhd/passport/login_input.do
然后,回车,这时,停了下来:
看到没,很轻松的就Hook住了,⼀跟头发都不没掉好吗(⾃⼰⽆聊薅掉的不算哈)。
我们来看堆栈,点击下⼀⾏(nQ),并美化代码,效果如图:
将这些变量分别在控制台上打印出来:
⼜是 split,⼜是 reverse,难怪昨天搜索不到的,再看下⾯这⾏代码:
lm[nV] = nR;
这个 lm 是 window 对象,nV 的值就是  "_t", nR是值,果然是在这⾥传递的,我们看到 nR是传递进来的,继续跟堆栈往上追,来到了这:
原来是调⽤这个函数,b('0x2fd', 'ad)B') 的值 在控制台下看 是 : call,这下就明⽩了,nM就是传递进去的值,再看看nM是哪⾥赋值的:
在这个 case '2' ,nM是最先赋值的,也就是我们上篇⽂章到的加密位置。
感悟:
1. 学习中能有个⼤佬指点,能保住你不少头发,并且少⾛很多弯路。
2. 如果刚开始学JS破解,就去了解油猴脚本,可以节省⼤量时间。
3. 熟能⽣巧是真理!
再次感谢 @花⼉谢了 提供的思路,让我⼜学到了⼀招降龙⼗⼋掌。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。