js逆向的时候,HOOK代码,一般用于参数加密以及返回的数据加密

/**
 * 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);
    }

})()

 

posted @ 2024-10-28 18:09  *感悟人生*  阅读(34)  评论(0编辑  收藏  举报