首页 > 编程语言 >javascript反编译工具javascript-obfuscator的环境搭建

javascript反编译工具javascript-obfuscator的环境搭建

时间:2023-06-13 15:36:46浏览次数:54  
标签:npm 反编译 混淆 obfuscator javascript -- true

javascript-obfuscator的项目和文档地址:https://github.com/javascript-obfuscator/javascript-obfuscator

windows端

安装nodejs环境

打开nodejs安装包,一直点NEXT,默认设置安装即可。安装后:

#测试nodejs和npm是否已安装
npm -v
#如果有输出版本号,例如输出9.5.0,表示安装成功

#查看npm安装模块的路径
npm config list
#输出部分的“prefix =”后面的路径是npm模块路径,下面以C:\\User\\admin\\AppData\\Roaming\\npm为例子

#进入npm模块路径
cd C:\\User\\admin\\AppData\\Roaming\\npm

测试js混淆

#安装javascript-obfuscator
npm install -g --save-dev javascript-obfuscator
#混淆js文件,参数的含义参考https://obfuscator.io
javascript-obfuscator [输入js文件路径] --output [输出js文件路径] --self-defending true --disable-console-output true --debug-protection true --control-flow-flattening true --dead-code-injection ture --string-array true --string-array-rotate true --string-array-shuffle true --string-array-index-shift true
#--control-flow-flattening true:混淆效果好,但是此选项会极大地影响性能,运行时速度会降低 1.5 倍。用于controlFlowFlatteningThreshold设置受控制流扁平化影响的节点百分比。启用代码控制流扁平化。控制流扁平化是一种阻碍程序理解的源代码结构转换。
#--dead-code-injection:使用此选项,随机的死代码块将添加到混淆代码中。显着增加混淆代码的大小(高达 200%),仅在混淆代码的大小无关紧要时使用。
#debugProtection:这个选项使得几乎不可能使用debugger开发者工具的功能
#--disable-console-output:禁止console输出
#--string-array等:对常量字符串和变量名等做特殊处理

linux端

js混淆步骤

系统环境:Ubuntu20.04

#安装npm包管理
sudo apt install npm
#升级nodejs到最新版,解决依赖的问题
sudo npm install -g n
sudo n stable
#安装javascript-obfuscator
sudo npm install -g --save-dev javascript-obfuscator
#混淆js文件,参数的含义参考https://obfuscator.io
javascript-obfuscator [输入js文件路径] --output [输出js文件路径] --self-defending true --disable-console-output true --debug-protection true --control-flow-flattening true --dead-code-injection ture --string-array true --string-array-rotate true --string-array-shuffle true --string-array-index-shift true
#--control-flow-flattening true:混淆效果好,但是此选项会极大地影响性能,运行时速度会降低 1.5 倍。用于controlFlowFlatteningThreshold设置受控制流扁平化影响的节点百分比。启用代码控制流扁平化。控制流扁平化是一种阻碍程序理解的源代码结构转换。
#--dead-code-injection:使用此选项,随机的死代码块将添加到混淆代码中。显着增加混淆代码的大小(高达 200%),仅在混淆代码的大小无关紧要时使用。
#debugProtection:这个选项使得几乎不可能使用debugger开发者工具的功能
#--disable-console-output:禁止console输出
#--string-array等:对常量字符串和变量名等做特殊处理

js解混淆测试

混淆后,可以使用这个工具测试解混淆的效果

项目和文档地址:https://github.com/relative/synchrony

#安装javascript解混淆工具
sudo npm install -g deobfuscator
synchrony deobfuscate [要解混淆的js文件路径]
#解混淆后,新生成的文件是在同一目录下的xxxx.clean.js

标签:npm,反编译,混淆,obfuscator,javascript,--,true
From: https://www.cnblogs.com/Ping697/p/17477639.html

相关文章

  • Javascript中的内存(垃圾)回收机制
    JavaScript具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行常见的垃圾回收方式:标记清除、引用计数方式。一、标记清除方法1、工作原理:【标记“离开环境”的就回收内存】当变量进入环境时,将这个变量标记为“进入环境”。当变量离开环境时,则将其标记为“......
  • this 之谜揭底:从浅入深理解 JavaScript 中的 this 关键字(二)
    前言系列首发于公众号『前端进阶圈』,若不想错过更多精彩内容,请“星标”一下,敬请关注公众号最新消息。this之谜揭底:从浅入深理解JavaScript中的this关键字(二)调用位置在理解this的绑定过程之前,首先要理解调用位置:调用位置就是函数在代码中被调用的位置(而不是声明的......
  • 乘风破浪,遇见最美Windows 11之现代Windows桌面应用开发 - .NET反编译神器dotPeek,免费
    什么是dotPeekhttps://www.jetbrains.com/decompiler/dotPeek是由鼎鼎有名的JetBrains开发的免费.Net反编译软件。其界面和VisualStudio一样现代。获取dotPeekhttps://www.jetbrains.com/decompiler/download/download-thanks.html?platform=windowsWebJetBrains.dotP......
  • V8是如何执行JavaScript代码的?
    前言一般来讲,电脑是不能直接运行我们的javascript代码的,它需要一个翻译程序将人类能够理解的编程语言JavaScript,翻译成机器能够理解的机器语言。目前市面上有很多种JavaScript引擎,诸如SpiderMonkey、V8、JavaScriptCore等。而由谷歌开发的开源项目V8是当下使用最广泛的Ja......
  • Javascript考试复习
    登录页面<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>登录页面</title><style>html{background:#bde0ff;}form{text-align......
  • [Javascript] Rendering process
     DOM(DocumnetObjectModel)Tree:Whenawebpageisloaded,thebrowserreadstheHTMLandbuildstheDOMtree.TheDOMisatree-likestructurethatrepresentsthecontentofthewebpage.EachHTMLtagbecomesanodeinthetree,andthesenodescanh......
  • [Javascript] async / defer
     normalscript,withoutasyncdefer:Scriptfetchedandexecutedimmediately,beforebrowsercontinuesparsingthepage(ItstopsHTMLparsing).Ifthescriptislarge,thiscancausenoticeabledelaysinpageloading. async:Scriptisfetchedasynchr......
  • JavaScript模块化实现方式详解
    前言JavaScript是一门非常灵活的编程语言,但是在开发大型应用时,代码的组织和管理变得非常重要。为了解决这个问题,JavaScript社区提出了模块化的概念。模块化可以将代码分割成小的、独立的模块,每个模块只关注自己的功能,这样可以提高代码的可维护性和可重用性。在JavaScript中,有多种......
  • Odoo 通过Javascript调用模型中自定义方法
    实践环境Odoo14.0-20221212(CommunityEdition)代码实现在js脚本函数中调用模型中自定义方法:this._rpc({model:'demo.wizard',//模型名称,即模型类定义中_name的值method:'action_select_records_via_checkbox',//模型中自定义名称args:['arg_value......
  • JavaScript学习笔记:Web安全模型
    为了保证安全,浏览器中的JavaScript不能读写设备中的文件,也不能访问任意的服务器。同源策略同源策略指的是脚本只能访问与包含它的文档同源资源。源是指文档URL中的协议、主机与端口部分,完全相同则是同源,任意一项不同都不是同源。脚本文件的URL与同源策略毫不相干,同源策略至于......