JS加密/解密之HOOK实战

在这里插入图片描述

之前的章节有介绍过Javascript的Hook相关的基础知识,相信大部分人也知道了什么是Hook,今天我们来讲一下Hook实战,实际的运用。

0x1.事上练

// 程序员们基本都喜欢简单精辟 直入主题 不喜欢咬文嚼字 我们先直接上代码
var _log = console.log;
console.log = function(...args) {
    _log(1);
    _log(...args);
    _log(2);
}
console.log(132);

上边代码我相信很多朋友都可以一眼看得懂,大概就是hook了原生的js打印函数,在打印的前后加上1和2。

如果有看不懂上述代码的,可以自己复制到浏览器多运行几次断点调试一步步看一下。

0x2简述要点

其实像js hook的这类技术,搞java的朋友一定特别眼熟,是不是有点像aop。

js的这个hook技术其实也可以用于日志打印,比如,在每次console.log的时候打印出当前日期,这样分析日志的时候可以精准的知道这个报错,这个信息是在什么时候产生的。代码如下

var _log = console.log;
console.log = function(...args) {
  var format = function() {
      const now = new Date();
      const year = now.getFullYear();
      const month = ('0' + (now.getMonth() + 1)).slice(-2);
      const day = ('0' + now.getDate()).slice(-2);
      const hours = ('0' + now.getHours()).slice(-2);
      const minutes = ('0' + now.getMinutes()).slice(-2);
      const seconds = ('0' + now.getSeconds()).slice(-2);
      const formattedTime = year + '年' + month + '月' + day + '日 ' + hours + '时' + minutes + '分' + seconds + '秒';
      return formattedTime;
  }
    _log('[' + format() + ']:',...args);
}
console.log('jsjiami_com 国内首家免费js在线加密站');

运行上述代码后,你会很惊奇的发现,后面每次运行console.log函数都会自动在前边加上当前时间。

当然了将hook技术用来做日志仅仅知识他作用的冰山一角。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值