064-WEB攻防-JS应用&反调试分析&代码混淆&AST加密还原&本地覆盖&断点条件

知识点

1、JavaScript-反调试&方法&绕过
2、JavaScript-代码混淆&识别&还原

JS反调试

程序加入反调试:实现防止他人调试、动态分析自己的代码

检测调试方法:

  1. 键盘监听(F12)
  2. 检测浏览器的高度插值
  3. 检测开发者人员工具变量是否为true
  4. 利用console.log调用次数
  5. 利用代码运行的时间差
  6. 利用toString
  7. 检测非浏览器

常见绕过方法:

  1. 禁用断点法
  2. 条件断点法
  3. 此处暂停法
  4. 置空函数法
  5. 本地覆盖法

简单案例:咸鱼解析平台

键盘摁下:CTRL+SHIFT+I 或者 F12 就会调出开发者工具 但是此刻网站无法播放视频 也无法对网站的流量进行抓包 得关掉开发者工具才行

  • image-20250617170710683

禁用断点法

  1. 打开开发者工具 在右边这里点击禁止断点

    • 优点:浏览器即可正常播放视频 数据包也正常运行

    • 缺点:一旦启用禁用断点 不能在进行断点了

    • image-20250617171010942

    • image-20250617171144308

条件断点法

  1. 鼠标有点编辑断点 添加条件为flase 让这个禁用的函数为假 即可绕过
    • image-20250617171446035
    • image-20250617171508399

此处暂停法

  1. 这个跟上面有点类似 在debug这里右键选择永不再此处暂停
    • image-20250617171839563

置空函数法

  1. 这个感觉更像是结合 使用禁用断点法 让网站的流量包正常显示
  2. 然后在网络包里面找debugger禁用断点的函数 出现的地方
  3. 然后在控制台这里 重写函数 将里面的内容置空 让函数没有内容执行即可绕过 也称 hook技术
    • image-20250617172229227
    • image-20250617172336147
    • image-20250617172354224

本地覆盖法

  1. 打开点击有键发现鼠标给禁用 在页面f12多按几次即可进入开发者工具
  2. 使用禁用断点法 让数据包正常显示在开发者工具栏里面 全局搜索关键字 检测到非法调试 dndebug里面出现过
  3. 这两个文件里面出现endebug
  4. 在浏览器源代码这里 覆盖这里 新建一个文件 名为aqistudy 将代码保存在我们背地替换的文件里面 让浏览器背地访问加载代码
  5. 在这里拉到出现endubug过滤代码那里直接注释掉 另一个文件也是 注释完后刷新即可正常调试打断电了
    • image-20250617180747186
    • image-20250617181154187
    • image-20250617181750707
    • image-20250617182205618
    • image-20250617182433924
    • image-20250617182609764
    • image-20250617182735790

JS逆向-混淆加密-识别&还原

代码混淆加密:上述几种方法,已经达到了反调试的效果,但如果他人查看代码,也可能被找出检测功能并删去。为了防止反调试功能被剔除,我们可以对JS代码进行混淆加密。

开源代码混淆解密平台:JJEncode AAEncode JSFuck

https://www.sojson.com/

AAEncode加密

1
2
3
4
function xiaodi(){
console.log('hello xiaodi!')
}
xiaodi();

image-20250617185403865

image-20250617185724613

JSfuck加密

  1. 将加密后的代码放进控制台正常输入结果
  2. 将最后一段去掉暴露源码
  • image-20250617190120251
  • image-20250617190151059
  • image-20250617205025175
  • image-20250617205142607

商业混淆解密

地址: [阳江钓鱼频道][https://www.eisk.cn/]

https://www.jsjiami.com/

image-20250617211040816

如何解密还原?
前提:知道对方使用了什么加密

https://jsdec.js.org/ 解密网站

  1. 复制里面的代码 丢进解密网站
  2. 可以先进行自动识别 然后在选择性的解密方式解密
  3. 在网站里面找到一些js文件解密后使用了AES加密
    • image-20250617211215582
    • image-20250617211342836
    • image-20250617211518015