/**
* JSON.stringify 是在JS中把对象序列化成字符串,一般用于ajax交互,把对象序列化成字符串,后台才能解析!
* JSON.parse 正在和JSON.stringify相反,是把字符串解析成对象,一般用于ajax交互,把字符串解析成对象,方便操作!
* 所以,这两个方法是成对使用的!,一般情况下,后台交互的都是字符串,所以,一般使用JSON.parse来操作!
* eg:参数加密,或者返回数据的加密,都是使用stringify来加密,后台使用parse来解析!
* 在用下面的代码HOOK的时候,先调用stringify,再调用parse,这样,Hook的时候,就会先执行stringify,再执行parse,这样,Hook的时候,就会先打印参数,再打印堆栈信息!
* 等看堆栈信息的时候,就可以看到调用的堆栈信息了!等确定好加密的参数后,在函数内部,加入debugger 语句,这样,Hook的时候,就会暂停执行,然后,就可以看到调用的堆栈信息了!
**/
(function (){
var _stringify = JSON.stringify; // 保存一下原来的stringify方法
JSON.stringify = function (ps){ // 重写stringify方法
console.log('Hook JSON.stringify--->',ps); // 打印参数
// debugger;
return _stringify(ps); // 调用原来的stringify方法
} // 返回结果
})(); // 立即执行
(function (){
var _parse = JSON.parse;
JSON.parse = function (ps){
console.trace('Hook JSON.parse--->',ps); // 打印堆栈信息
console.log('Hook JSON.parse--->',ps); // 打印堆栈信息
// debugger;
return _parse(ps);
}
})()