AST实战技巧|使用v神插件动态替换AST还原后的代码
关注它,不迷路。
本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!
本文旨在讲解 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还原后的代码相关推荐
- 五年以太扩容梦 破壁原是枕边人——记2016年G神与V神的ETH 2.0路线之争
作者:莫给机狂 起草这篇文章的缘起是有一天,我在Discord上收到了Darryl的一个请求,让我跟他解释一下发生2016年的一个技术讨论视频,在那次讨论中RChain的创始人Greg,以太坊的创始人 ...
- AST实战|免安装一键还原ob混淆详细使用教程
关注它,不迷路. 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除! 一.环境安装 在nodejs官网下载最新稳定版并安装: 下载地址: htt ...
- IDA PRO 静态反汇编与OllyDbg动态调试实战技巧汇总
IDA PRO 静态反汇编与OllyDbg动态调试实战技巧汇总 ********************************** 案例一: 使用IDA PRO+OllyDbg+PEview 追踪w ...
- AST实战|ob混淆一键还原开源啦,免安装babel库
关注它,不迷路. 本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除! 一.项目地址 https://github.com/Tsaiboss/de ...
- Linux 实战技巧
常用命令 adduser # 以创建 Apache Eagle 用户为例 $ adduser eagle $ passwd eagle # ur password for eagle user # 赋 ...
- 以太坊创始人V 神:普通人看见现在,天才看见未来
一个时代的天才一定是最懂那个时代的人,而后才能成为点亮时代的光. 作者 | 晋兆雨.Carol 责编 | 徐威龙 普通人看见现在,天才看见未来 25 年前,在俄罗斯一个不起眼的家庭里,一位小小少年来 ...
- (20/24) webpack实战技巧:watch实现热打包和添加代码备注
(20/24) webpack实战技巧:watch实现热打包和添加代码备注 在前面的学习中,我们一直使用webpack-dev-server充当(本地)服务器和完成打包任务,但是当出项目团队联合开发, ...
- css揭秘实战技巧 - 形状 [二]
全目录 本系列文章,主要是围绕css3属性,实现我们常见的各种效果,这些效果都是我们实战开发中经常可以用到的效果: css揭秘实战技巧- 背景与边框 [一] css揭秘实战技巧- 形状 [二] css ...
- gradle 修改java代码_自定义一个gradle插件动态修改jar包Class文件
动态修改jar包中的class文件,预埋占位符字符串,在编译代码时动态植入要修改的值.记录一下整个过程及踩过的坑. 创建一个Android项目,再创建一个Android library,删掉里面所有代 ...
最新文章
- 如何学习oracle
- Era 贪心 Codeforces Round #752 (Div. 2)
- python画版图_基于mask-RCNN的版图分析,MaskRCNN,版面
- centos7 编译php5.3,centos7下编译安装php7.3
- 破解sourceInsight4
- Markdown 数学公式语法
- php防止网站被镜像,网站防止被其他站iframe框架引用镜像的方法
- 手机模拟器自带root_VMOS Pro Android 手机上的模拟器 (手机版虚拟机)
- qqlive播放器下载视频
- Markdown设置图片大小
- 【黑苹果教程】驱动ATI Radeon HD5450显卡
- 使用win32com来实现outlook的自动发送
- CorelDRAW X7导出pdf发现部分有白边如何处理
- IC学习笔记3——异步FIFO
- 两种模块化语法(module.exports,exports,require export,import)
- matlab狗抓兔子,怎样训成年犬捉兔子-怎样训狗抓兔子
- 【金融量化】深度学习在金融中的研究热点以及应用
- 国内与国外的域名注册商的不同
- [css] CSS画一个三角形,CSS绘制空心三角形
- 值班c语言程序,5.值班安排C语言程序报告.doc
热门文章
- html5饼图颜色渐变,Highcharts 渐变饼图
- 移动通信网认证协议,安全
- 爬虫实战-链家北京房租数据
- android中出现javax.net.ssl.SSLPeerUnverifiedException的解决方案
- ORA-00955: name is already used by an existing object
- 一种锂电池充电器的设计方案(使用LM317)
- 【虚拟DOM】浅析 虚拟DOM
- 电脑蓝屏c000021a代码错误
- 一些关于CV和deeplearning的干货链接(长期更新)
- python-selenium自动化测试网页