js逆向中会遇到加密结果存在随机值,无法很好的调试加密,这种情况大概率就是加密过程中用到时间戳和随机数,通过hook住Date函数、random随机函数,就可以实现加密结果不变,hook代码如下:
Date.now = function now() {
return 1661986251253
};
Date.parse = function () {
return 1661986251253
};
Date.prototype.valueOf = function () {
return 1661986251253
};
Date.prototype.getTime = function () {
return 1661986251253
};
Date.prototype.toString = function () {
return 1661986251253
};
Performance.prototype.now = function now() {
return Number('1661986251253'.slice(8))
}
Math.random = function random() {
return 0.08636862211354912
};
window.crypto.getRandomValues = function getRandomValues(array32, ...args) {
return array32;
}