「源码」JShaman本地部署专业版,批量加密工具

这是一个使用NodeJS编写的脚本,用于批量调用JShaman本地部署专业版对指定目录中的JavaScript文件进行混淆加密。脚本首先定义了混淆加密的配置选项,然后遍历指定文件夹中的所有JS文件,将每个文件的内容发送到JShaman服务器进行加密,最后将加密后的代码写回原文件。该工具适用于保护JavaScript代码的安全,防止被逆向工程分析。
摘要由CSDN通过智能技术生成
/*
	JShaman本地部署专业版 批量加密工具
-=[ JShaman是专业的JavaScript源代码混淆加密产品 ]=-

功能:调用JShaman本地部署专业版,对指定目录中的JS文件一次性全部加密
本工具在NodeJS环境中运行,如使用时提示缺少依赖,请根据提示使用“npm install 依赖名”进行安装 

使用方法:
	1、在代码中正确设置config、folder、jshaman_url三个变量
		config:混淆加密配置选项,各功能1为启用、0为不启用,各项含义参考产品介绍
		folder:目标文件夹,可含有任意文件,但仅会处理JS文件
		jshaman_url:JShaman专业版服务器地址及功能路径
	2、在NodeJS命令行中执行:node jf
	3、等待混淆加密完成
*/

/* 配置信息,可修改 */
var config = {
    "part_variable_function_identifier_obfuscate": 1,
    "global_variable_identifier_obfuscate": 0,
    "global_function_identifier_obfuscate": 0,
    "member_expression_encode": 1,
    "numberic_literal_encode": 1,
    "binary_express_obfuscate": 1,
    "boolean_encode": 1,
    "string_unicode_encode": 1,
    "zombie_code": 1,
    "eval_encode": 1,
    "control_flow": 1,
    "comma_operator": 1,
    "string_array": 1,
    "string_array_encode": 1,
    "vm_execute": 1,
    "ast_execute": 1,
    "no_beautifier": 1,
    "tamper_proof": 1,
    "comments": 0,
    "compress": 1,
    "reserved_word": ["jshaman","wlw"]
}
var folder = "C:\\Users\\WangLiwen\\Desktop\\test";
var jshaman_url = "http://127.0.0.1:2080/obfuscate/";

/* 主功能,勿修改 */
var fs = require("fs");
var path = require("path");
var request = require('sync-request');
(function jf(folder, config, jshaman_url){
	//同步读取路径
	var files = fs.readdirSync(folder);
	//遍历指定目录下各文件或目录
    for(var i=0; i<files.length; i++){
        //文件
        var file = folder + "\\" + files[i];
        //同步获取文件信息
		var file_info = fs.statSync(file)
        //如果是目录
		if(file_info.isDirectory()){
			//嵌套调用,继续遍历
			jf(file, config, jshaman_url);
		}else{
			//获取文件后缀
			var ext = path.extname(folder + file).toLowerCase();	 
			//只处理JS文件
			if(ext == ".js"){
				console.log("正在混淆加密文件:" +  file);
				//同步读取JS文件
				var js_code = fs.readFileSync(file, "utf-8");
				//同步请求,向JShaman提交JS代码,并获取返回数据
				var res = request("POST", jshaman_url, {json:{
					"js_code":js_code,
					"vip_code":"demo",
					"config":config
				}})
				var json_res = JSON.parse(res.getBody('utf8'));
				//同步写文件,把加密后的代码写入原文件
				if(json_res.state == 0){
					fs.writeFileSync(file, json_res.content);
					console.log("已混淆加密:", file);
				}else{
					console.log("混淆加密出现异常", file, json_res);
				}
			}
		}
    }
})(folder,config,jshaman_url);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值