关注它,不迷路。

  • 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!

本文旨在讲解 v_jstools的 高级hook功能,如下图所示:

一.实战网站

本文以猿人学第二题为例,来讲解该功能的详细用法:

https://match.yuanrenxue.com/match/2

二.操作方法

浏览器打开上面的网站后,在页面空白处,点击 打开v_jstools 动态调试按钮,如下图:

然后按下F12快捷键,打开开发者工具,清除掉cookie等缓存,重新请求,停到debugger的位置,往下追一个,看到js代码是这样的:

这是一些十六进制的字符串,写个简单的插件给它还原回去:

const simplifyLiteral = {NumericLiteral({node}) {if (node.extra && /^0[obx]/i.test(node.extra.raw)) {node.extra = undefined;}},StringLiteral({node}) {if (node.extra && /\\[ux]/gi.test(node.extra.raw)) {node.extra = undefined;}},
}traverse(ast, simplifyLiteral);

二.高级HOOK

按照它给的示例代码,我在这里也写出对应的代码:

function fetch_hook(code, url) {var ast = parser.parse(code);const simplifyLiteral = {NumericLiteral({node}) {if (node.extra && /^0[obx]/i.test(node.extra.raw)) {node.extra = undefined;}},StringLiteral({node}) {if (node.extra && /\\[ux]/gi.test(node.extra.raw)) {node.extra = undefined;}},}traverse(ast, simplifyLiteral);var {code} = generator(ast, {jsescOption: {minimal: true,},compact: true,});return code
}

把上面的这段代码填入到下面的空白框内即可。

这个时候,清除掉cookie,重新请求,停到debugger的位置,往下追一个,看到js代码是这样的:

代码压缩成一行了,因为我在生成code里面加了这个: compact:true,

熟悉ob混淆的朋友都知道,如果不加这个,会导致浏览器卡死。

我们将其进行格式化即可:

可以看到,所有的十六进制字符串都被还原了,现在来看看还原后代码是否正常运行.按下F8后来到debugger位置,然后右键选择 最后一项:

再次按下F8,可以看到网站正常加载了,此次替换成功,可以进行调试了。

好了,本文的内容就到这里,感谢阅读。

插件功能非常的强大,等待各位去发掘,感谢大佬开源。

想要了解更复杂的功能,可以进微信群与大佬零距离交流噢。

AST实战技巧|使用v神插件动态替换AST还原后的代码相关推荐

  1. 五年以太扩容梦 破壁原是枕边人——记2016年G神与V神的ETH 2.0路线之争

    作者:莫给机狂 起草这篇文章的缘起是有一天,我在Discord上收到了Darryl的一个请求,让我跟他解释一下发生2016年的一个技术讨论视频,在那次讨论中RChain的创始人Greg,以太坊的创始人 ...

  2. AST实战|免安装一键还原ob混淆详细使用教程

    关注它,不迷路. 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除! 一.环境安装 在nodejs官网下载最新稳定版并安装: 下载地址: htt ...

  3. IDA PRO 静态反汇编与OllyDbg动态调试实战技巧汇总

    IDA PRO 静态反汇编与OllyDbg动态调试实战技巧汇总 ********************************** 案例一: 使用IDA PRO+OllyDbg+PEview 追踪w ...

  4. AST实战|ob混淆一键还原开源啦,免安装babel库

    关注它,不迷路. 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除! 一.项目地址 https://github.com/Tsaiboss/de ...

  5. Linux 实战技巧

    常用命令 adduser # 以创建 Apache Eagle 用户为例 $ adduser eagle $ passwd eagle # ur password for eagle user # 赋 ...

  6. 以太坊创始人V 神:普通人看见现在,天才看见未来

    一个时代的天才一定是最懂那个时代的人,而后才能成为点亮时代的光. 作者 | 晋兆雨.Carol 责编 |  徐威龙 普通人看见现在,天才看见未来 25 年前,在俄罗斯一个不起眼的家庭里,一位小小少年来 ...

  7. (20/24) webpack实战技巧:watch实现热打包和添加代码备注

    (20/24) webpack实战技巧:watch实现热打包和添加代码备注 在前面的学习中,我们一直使用webpack-dev-server充当(本地)服务器和完成打包任务,但是当出项目团队联合开发, ...

  8. css揭秘实战技巧 - 形状 [二]

    全目录 本系列文章,主要是围绕css3属性,实现我们常见的各种效果,这些效果都是我们实战开发中经常可以用到的效果: css揭秘实战技巧- 背景与边框 [一] css揭秘实战技巧- 形状 [二] css ...

  9. gradle 修改java代码_自定义一个gradle插件动态修改jar包Class文件

    动态修改jar包中的class文件,预埋占位符字符串,在编译代码时动态植入要修改的值.记录一下整个过程及踩过的坑. 创建一个Android项目,再创建一个Android library,删掉里面所有代 ...

最新文章

  1. 如何学习oracle
  2. Era 贪心 Codeforces Round #752 (Div. 2)
  3. python画版图_基于mask-RCNN的版图分析,MaskRCNN,版面
  4. centos7 编译php5.3,centos7下编译安装php7.3
  5. 破解sourceInsight4
  6. Markdown 数学公式语法
  7. php防止网站被镜像,网站防止被其他站iframe框架引用镜像的方法
  8. 手机模拟器自带root_VMOS Pro Android 手机上的模拟器 (手机版虚拟机)
  9. qqlive播放器下载视频
  10. Markdown设置图片大小
  11. 【黑苹果教程】驱动ATI Radeon HD5450显卡
  12. 使用win32com来实现outlook的自动发送
  13. CorelDRAW X7导出pdf发现部分有白边如何处理
  14. IC学习笔记3——异步FIFO
  15. 两种模块化语法(module.exports,exports,require export,import)
  16. matlab狗抓兔子,怎样训成年犬捉兔子-怎样训狗抓兔子
  17. 【金融量化】深度学习在金融中的研究热点以及应用
  18. 国内与国外的域名注册商的不同
  19. [css] CSS画一个三角形,CSS绘制空心三角形
  20. 值班c语言程序,5.值班安排C语言程序报告.doc

热门文章

  1. html5饼图颜色渐变,Highcharts 渐变饼图
  2. 移动通信网认证协议,安全
  3. 爬虫实战-链家北京房租数据
  4. android中出现javax.net.ssl.SSLPeerUnverifiedException的解决方案
  5. ORA-00955: name is already used by an existing object
  6. 一种锂电池充电器的设计方案(使用LM317)
  7. 【虚拟DOM】浅析 虚拟DOM
  8. 电脑蓝屏c000021a代码错误
  9. 一些关于CV和deeplearning的干货链接(长期更新)
  10. python-selenium自动化测试网页