js混淆算法 java_JAVA动态混淆JS
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相关推荐
- js des加密 java_Java实现与JS相同的Des加解密算法完整实例
本文实例讲述了Java实现与JS相同的Des加解密算法.分享给大家供大家参考,具体如下: 这里演示java与js实现相同的des加解密算法,不多说,不废话,直接上代码 一.java实现 package ...
- 猿人学试题(非常简单js混淆、雪碧图、样式干扰 css加密、js混淆源码乱码、js混淆动态cookie、访问逻辑)
学习目标: python学习-猿人学试题 学习内容: 1.非常简单js混淆 2.雪碧图.样式干扰 css加密 3.js混淆源码乱码 4.js混淆动态cookie 5.访问逻辑 1.非常简单js混淆 试 ...
- JS逆向之去哪儿旅行 - - - 动态混淆
声明:本文仅限交流学习使用,请勿使用在任何非法商业活动,禁止用于非法用途.否则后果自负.如有侵权,请告知删除,谢谢! 我们来玩个游戏吧, 看谁先接口加密参数, 游戏开始咯! 简介: 一 ...
- 前端清单:Vue2 响应式原理,RN 运行内置 Node,JS 巧用 Proxy 反混淆,GraphQL 优劣思辨...
前端每周清单第 25 期:Vue2 响应式原理,RN 运行内置 Node,JS 巧用 Proxy 反混淆,GraphQL 优劣思辨,深入 React 动画 作者:王下邀月熊 编辑:徐川 前端每周清单专 ...
- 13-爬虫之js加密,解密,混淆,逆向破解思路
url:https://www.aqistudy.cn/apinew/aqistudyapi.php 分析思路: 原图 现图 1,我们点击查询按钮后发现抓取到了2个一样的数据包,包含请求url和pos ...
- js混淆加密,通过混淆Js代码让别人(很难)还原,js代码加密
使用js的混淆加密,其目的是为了保护我们的前端代码逻辑,对应一些搞技术吃饭的公司来说,为了防止被竞争对手抓取或使用自己的代码,就会考虑如何加密,或者混淆js来达到代码保护. 1.为什么需要js混淆 在 ...
- python爬虫处理js混淆加密_Python爬虫—破解JS加密的Cookie
專 欄 ❈Jerry,Python中文社区专栏作者. blog:https://my.oschina.net/jhao104/blog github:https://github.com/jhao10 ...
- js混淆加密,通过混淆Js代码让别人(很难)无法还原
1.为什么需要js混淆 在web系统发展早期,js在web系统中承担的职责并不多,只是简单的提交表单,js文件非常简单,也不需要任何的保护. 随着js文件体积的增大,为了缩小js体积,加快http传输 ...
- JS 逆向 --- 过无限debugge、hook、js混淆还原、控制流混淆
访问这个网站的时候,cookie 里面会有一个 sign 值,这个sign 值是通过 JavaScript 代码生成的,JS 代码是用 ob 混淆的, 当打开 "开发者工具" 时, ...
最新文章
- mysql latid1_【转】mysql触发器的实战经验(触发器执行失败,sql会回滚吗) | 学步园...
- CSS实现垂直居中的常用方法
- 《极速切水果游戏》有Python版了,曾风靡一时的手游能否富过“二代”?
- linux 修改默认路径吗,linux中vsftp修改默认路径
- 5.Vue 计算属性和侦听器
- 用SAP BSP应用实现图片灰度效果
- 两张趣图助你理解状态码的含义~
- AtCoder Regular Contest 125
- swoole中退出、异常与错误的处理笔记
- java 实验张智,java实验指导书
- LeetCode解题思路—滑动窗口法
- RK3288_Android7.1增加自定义的红外遥控按键流程记录
- YUV420数据格式详解
- MySQL自增主键值回溯问题
- maven离线(offline)构建时无法找到本地依赖 Non-resolvable import POM: Cannot access nexus
- 计算机科学博士点,全国计算机博士点排名(全国前70名)
- MySQL笔记(狂神说)
- 文件夹删不掉?有种文件夹叫 畸形文件夹
- 用c语言写一个简易的四则运算计算器
- PowerApps使用Excel生成应用的要求
热门文章
- Intel(R) 6 Series/C200 Series Chipset Family USB Enhanced Host Controller 1c2d
- (附源码)计算机毕业设计jsp疫情物资管理系统
- 深度:震惊世间的惊人代码(附完整代码)
- 湖南芒果代理php,芒果商城系统GSHOP php网店系统 UTF8
- xp计算机找不到音量调节,XP系统桌面右下角的音量开关图标不见了,怎么恢复?...
- 微信小程序配置npm构建详细解读
- Python实现整蛊、木马等黑客软件!
- 同济大学2022年计算机考研复试是什么时候
- 【区块链 | 智能合约】Ethereum源代码 - 智能合约地址生成算法
- CRT的安装步骤。学不会来打我