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); } })()