前言:有一些小伙伴私我,问在js逆向中如何快速定位参数。今天在这儿把基本上常用的罗列出来。参数定位第一期。点点赞!
一:罗列
全局搜索,
xhr断点,
dom断点,
堆栈调试,
Hook,
内存漫游
二:介绍
1.全局搜索:这个很简单,也是首选,F12打开调试器(sources)→按Ctrl+Shift+f 直接搜索。简单,不做过多介绍。
2.xhr断点:像以下这种链接,截取后面一段不变参数,这儿?后面都是变动的,截取前面的参数:api_to/webquestion/publish.json
在调试器里,点击+ 添加刚才截取的字符串。
点击刷新,就会断住,就可以“愉快的”跟值了。
3.dom断点:例如想断点在一个点击事件中,点击最上面的箭头,进行元素定位,在定位到的元素上,单击右键选择Break on ,选项有:
subtree modifications(子树修改)
attribute moditications(属性修改)
node removal(节点移除)
在这儿选择attribute moditications(属性修改),会出现一个小圆点。点击事件就会被断住
断住后又是可以“愉快的”跟值。
4.堆栈调试:找到需要的包,点击Initiator(发起数据),点击下面的蓝色的js。
跳转后,在跳转的地方下断点,再刷新。断住后又是可以“愉快的”跟值。
5.Hook:相对前面的就些许麻烦了。例如想拿cook值 ,先刷新,选择js,找到第一个js文件。
在js文件上单击右键open in sources panel,打开js文件,在js文件的第一行下断点,刷新。
断住后,打开console(控制台)输入hook语句。
回到sources(调试器)点击小三角,进行数据放行。
跳转到vm虚拟机中,可以看到捕获到的cook。
一直放行,到你需要的cook值。又是可以“愉快的”跟值。
这样手动hook,有些麻烦,时机也比较晚。可以去找插件hook,要方便的多。
贴hook代码:
(function() {
var hook = "";
Object.defineProperty(document, 'cookie', {
set: function(val) {
console.log('捕捉到的cook:', val);
debugger;
hook = val;
return val;
},
get: function()
{
return hook;
}
});
})();
结束语:为了写详细一些,到这儿就已经很长了。不能写长了,不然又臭又长没人看,没人点赞。下一期讲内存漫游,内存漫游定位方法,让你定位更简单。
了却君王天下事,赢得生前生后名。可怜白发生!