JAVA动态混淆JS

相关项目依赖

主要流程

js代码调用javascript-obfuscator实现对指定文件的混淆

使用pkg将js打包成mac/linux/windows都可以执行的程序

在java中使用命令行进行js文件混淆

pkg打包

打包命令

npm install pkg -g

cd /打包目录 #目录中需要包含pkg配置文件

pkg ./JavaScriptObfuscator4File.js

可执行程序

在新的环境中运行前需要修改文件的权限,让它成为一个可执行的文件

chmod 755 ./file_name

使用打包程序进行js混淆

#使用绝对路径

./bin conf.file input.js output.js

相关文件

混淆js的脚本

let JavaScriptObfuscator = require('javascript-obfuscator');

let fs = require('fs');

let path = require('path');

//入参

const argv = process.argv;

if (argv.length <= 2) {

console.log('请指定待处理的文件地址');

return

}

const process_conf_file_path = argv[2];

const process_in_file_path = argv[3];

const process_out_file_path = argv[4];

let data = get_js_content();

let conf = get_obfuscate_conf();

let obfuscate_data = obfuscate(data, conf);

output_file(obfuscate_data);

console.log("混淆js成功");

function output_file(data) {

fs.writeFileSync(path.join(process_out_file_path), data);

}

function get_obfuscate_conf() {

let data = fs.readFileSync(path.join(process_conf_file_path), "utf8");

return JSON.parse(data);

}

function get_js_content() {

let data = fs.readFileSync(path.join(process_in_file_path), "utf8");

return data;

}

function obfuscate(source_code, conf) {

let obfuscationResult = JavaScriptObfuscator.obfuscate(source_code, conf);

return obfuscationResult.getObfuscatedCode();

}

混淆配置文件(conf.file)

{

"compact": true,

"controlFlowFlattening": true,

"controlFlowFlatteningThreshold": 0.75,

"deadCodeInjection": true,

"deadCodeInjectionThreshold": 0.4,

"debugProtection": true,

"debugProtectionInterval": true,

"disableConsoleOutput": false,

"identifierNamesGenerator": "mangled",

"log": false,

"renameGlobals": true,

"rotateStringArray": true,

"selfDefending": true,

"stringArray": true,

"stringArrayEncoding": "base64",

"stringArrayThreshold": 0.75,

"unicodeEscapeSequence": false,

"transformObjectKeys": false

}

pkg配置文件(package.json)

{

"name": "obfuscate",

"version": "1.0.0",

"description": "",

"bin": "JavaScriptObfuscator4File.js",

"main": "JavaScriptObfuscator4File.js",

"scripts": {

"test": "echo \"Error: no test specified\" && exit 1"

},

"keywords": [],

"author": "",

"license": "ISC",

"dependencies": {

"javascript-obfuscator": "^0.25.2"

}

}

js混淆算法 java_JAVA动态混淆JS相关推荐

  1. js des加密 java_Java实现与JS相同的Des加解密算法完整实例

    本文实例讲述了Java实现与JS相同的Des加解密算法.分享给大家供大家参考,具体如下: 这里演示java与js实现相同的des加解密算法,不多说,不废话,直接上代码 一.java实现 package ...

  2. 猿人学试题(非常简单js混淆、雪碧图、样式干扰 css加密、js混淆源码乱码、js混淆动态cookie、访问逻辑)

    学习目标: python学习-猿人学试题 学习内容: 1.非常简单js混淆 2.雪碧图.样式干扰 css加密 3.js混淆源码乱码 4.js混淆动态cookie 5.访问逻辑 1.非常简单js混淆 试 ...

  3. JS逆向之去哪儿旅行 - - - 动态混淆

    声明:本文仅限交流学习使用,请勿使用在任何非法商业活动,禁止用于非法用途.否则后果自负.如有侵权,请告知删除,谢谢! 我们来玩个游戏吧, 看谁先接口加密参数, 游戏开始咯! 简介:         一 ...

  4. 前端清单:Vue2 响应式原理,RN 运行内置 Node,JS 巧用 Proxy 反混淆,GraphQL 优劣思辨...

    前端每周清单第 25 期:Vue2 响应式原理,RN 运行内置 Node,JS 巧用 Proxy 反混淆,GraphQL 优劣思辨,深入 React 动画 作者:王下邀月熊 编辑:徐川 前端每周清单专 ...

  5. 13-爬虫之js加密,解密,混淆,逆向破解思路

    url:https://www.aqistudy.cn/apinew/aqistudyapi.php 分析思路: 原图 现图 1,我们点击查询按钮后发现抓取到了2个一样的数据包,包含请求url和pos ...

  6. js混淆加密,通过混淆Js代码让别人(很难)还原,js代码加密

    使用js的混淆加密,其目的是为了保护我们的前端代码逻辑,对应一些搞技术吃饭的公司来说,为了防止被竞争对手抓取或使用自己的代码,就会考虑如何加密,或者混淆js来达到代码保护. 1.为什么需要js混淆 在 ...

  7. python爬虫处理js混淆加密_Python爬虫—破解JS加密的Cookie

    專 欄 ❈Jerry,Python中文社区专栏作者. blog:https://my.oschina.net/jhao104/blog github:https://github.com/jhao10 ...

  8. js混淆加密,通过混淆Js代码让别人(很难)无法还原

    1.为什么需要js混淆 在web系统发展早期,js在web系统中承担的职责并不多,只是简单的提交表单,js文件非常简单,也不需要任何的保护. 随着js文件体积的增大,为了缩小js体积,加快http传输 ...

  9. JS 逆向 --- 过无限debugge、hook、js混淆还原、控制流混淆

    访问这个网站的时候,cookie 里面会有一个 sign 值,这个sign 值是通过 JavaScript 代码生成的,JS 代码是用 ob 混淆的, 当打开 "开发者工具" 时, ...

最新文章

  1. mysql latid1_【转】mysql触发器的实战经验(触发器执行失败,sql会回滚吗) | 学步园...
  2. CSS实现垂直居中的常用方法
  3. 《极速切水果游戏》有Python版了,曾风靡一时的手游能否富过“二代”?
  4. linux 修改默认路径吗,linux中vsftp修改默认路径
  5. 5.Vue 计算属性和侦听器
  6. 用SAP BSP应用实现图片灰度效果
  7. 两张趣图助你理解状态码的含义~
  8. AtCoder Regular Contest 125
  9. swoole中退出、异常与错误的处理笔记
  10. java 实验张智,java实验指导书
  11. LeetCode解题思路—滑动窗口法
  12. RK3288_Android7.1增加自定义的红外遥控按键流程记录
  13. YUV420数据格式详解
  14. MySQL自增主键值回溯问题
  15. maven离线(offline)构建时无法找到本地依赖 Non-resolvable import POM: Cannot access nexus
  16. 计算机科学博士点,全国计算机博士点排名(全国前70名)
  17. MySQL笔记(狂神说)
  18. 文件夹删不掉?有种文件夹叫 畸形文件夹
  19. 用c语言写一个简易的四则运算计算器
  20. PowerApps使用Excel生成应用的要求

热门文章

  1. Intel(R) 6 Series/C200 Series Chipset Family USB Enhanced Host Controller 1c2d
  2. (附源码)计算机毕业设计jsp疫情物资管理系统
  3. 深度:震惊世间的惊人代码(附完整代码)
  4. 湖南芒果代理php,芒果商城系统GSHOP php网店系统 UTF8
  5. xp计算机找不到音量调节,XP系统桌面右下角的音量开关图标不见了,怎么恢复?...
  6. 微信小程序配置npm构建详细解读
  7. Python实现整蛊、木马等黑客软件!
  8. 同济大学2022年计算机考研复试是什么时候
  9. 【区块链 | 智能合约】Ethereum源代码 - 智能合约地址生成算法
  10. CRT的安装步骤。学不会来打我