文章目录
响应体加密
js常见发请求方法
- 三种
- Promise
- 坑
基础知识
webpack加载器
- xx.m中含有各种方法
为什么不是数组,因为不改变原有参数,以及不想把所有函数都加进来
箭头函数
- 返回值,没有大括号时,直接返回后面的内容
- webpack打包常识
响应体解密
混淆方法
- base64变种
技巧
补环境时可以将代码全部复制下来
- 将代码全部折叠,搜索关键词,高亮部分就是定义代码频段,再复制这些。
查看当前发送请求的url
- 合并参数
- 浏览器调试 设置
- t.sent得到的内容就是上一步返回的内容
- 需要注意变种给base64
- 报错函数未定义时,跳转没有看到声明,而是成为一个函数返回对象
- interceptors源码分析,请求拦截在f1,f2,响应拦截在f3,f4
-t.shift(),从数组左边开始拿出来 - 控制台输入t,查看是否使用拦截器
定位数据加密
- 解密搜decrypt,加密搜encrypt
- ajax渲染搜 JSON.parse
- 直接去发起程序搜索相应的关键字
- 一般关键词赋值是有空格的,所以搜索关键词可以加空格。
- RSA算法可以搜 JSEncrypt()
js复制请求头
hook代码
hook debugger
var AAA=Function.prototype.constructor
Function.prototype.constructor=function(X){
if(X!="debugger"){
return AAA(X)
};
return function(){};
}
hook JSON.stringify
(function() {
var _stringify = JSON.stringify;// JSON.parse 同理
JSON.stringify = function(ps) {
console.log("Hook JSON.stringify -->", ps);
debugger;
return _stringify(ps);
};
})();
hook XMLHttpRequest 的 open 方法
检查 URL:检查 url 参数是否包含 “findBaseEntDpPage” 字符串。
(function() {
var open = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function(method, url, async) {
if (url.indexOf("findBaseEntDpPage") != -1) {
debugger;
}
return open.apply(this, arguments);
};
})();
hook document.cookie
(function() {
var cookieTemp;
Object.defineProperty(document, 'cookie', {
set: function(val) {
if (val.indexOf('v') != -1) {
debugger;
}
console.log('Hook捕获到cookie设置->', val);
cookieTemp = val;
return val;
},
get: function() {
return cookieTemp;
}
});
})();