#批量混淆支付宝小程序脚本

news2024/9/22 7:21:09

保存为 obfuscate-all.js文件,建议放在 zfb-mini-tools同级目录

const fs = require('fs');
const path = require('path');
const { minify } = require('terser');

// 主文件夹路径
const mainDir = path.resolve(__dirname, 'zfb-mini-tools'); // 替换成你的主文件夹路径

// 生成随机混淆配置
function generateRandomConfig() {
    return {
        compress: Math.random() > 0.5 ? true : {
            drop_console: Math.random() > 0.5,
            drop_debugger: Math.random() > 0.5
        },
        mangle: Math.random() > 0.5 ? true : {
            toplevel: Math.random() > 0.5
        }
    };
}

// 递归读取目录并混淆文件
function obfuscateDirectory(directory, config) {
    const files = fs.readdirSync(directory);
    files.forEach(file => {
        const filePath = path.join(directory, file);

        if (fs.lstatSync(filePath).isDirectory()) {
            if (file === '.git' || file === '.idea') {
                console.log(`Skipping directory: ${filePath}`);
            } else {
                obfuscateDirectory(filePath, config);
            }
        } else if (file.endsWith('.js')) {
            const code = fs.readFileSync(filePath, 'utf8');
            minify(code, config).then(result => {
                fs.writeFileSync(filePath, result.code, 'utf8');
                console.log(`Obfuscated ${filePath}`);
            }).catch(error => {
                console.error(`Error obfuscating ${filePath}:`, error);
            });
        }
    });
}

// 遍历主文件夹中的每个子文件夹
function processProjects(mainDir) {
    const subdirs = fs.readdirSync(mainDir);
    subdirs.forEach(subdir => {
        const subdirPath = path.join(mainDir, subdir);
        if (fs.lstatSync(subdirPath).isDirectory()) {
            console.log(`Processing project: ${subdir}`);
            const config = generateRandomConfig();
            obfuscateDirectory(subdirPath, config);
        }
    });
}

// 开始处理所有项目
processProjects(mainDir);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1814110.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LLVM Cpu0 新后端8 尾调用优化 Stack Overflow Exception异常

想好好熟悉一下llvm开发一个新后端都要干什么,于是参考了老师的系列文章: LLVM 后端实践笔记 代码在这里(还没来得及准备,先用网盘暂存一下): 链接: https://pan.baidu.com/s/1yLAtXs9XwtyEzYSlDCSlqw?…

Matlab进阶绘图第59期—棒棒糖图

​棒棒糖图本质上是柱状图的一种变体。 棒棒糖图通过在每根柱子顶端添加圆点,以表示数据之间的相对位置。 此外,一般还会对每根棒棒糖按数值大小进行排序,从而更加方便阅读。 本文利用自制的Lollipop工具进行棒棒糖图的绘制,先…

计算机网络(2) 网络层:IP服务模型

一.Internet Protocol在TCP/IP四层模型中的作用 第三层网络层负责数据包从哪里来到哪里去的问题。传输层的数据段提交给网络层后,网络层负责添加IP段,包含数据包源地址与目的地址。将添加IP段的数据包交由数据链路层添加链路头形成最终在各节点传输中所需…

双tab 栏 实现表格高度自适应 遇到的一些问题

默认的显式的tab高度自适应无问题,但是另外的显式有问题 原因 非active的tab默认是不加载的,所以读取到的table是0,基于此计算出来的高度自适应必然会出问题 第一步解决:避免懒加载 使用el-tab中自带的lazy属性,避免懒…

【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版9(附带项目源码)

最终效果 系列导航 文章目录 最终效果系列导航前言选择植物简单绘制选择植物面板渲染卡牌数据 点击选中和移除卡牌修改UI代码控制 开始战斗源码结束语 前言 本节主要实现添加选择植物功能 选择植物 简单绘制选择植物面板 每个卡牌插槽和前面植物卡牌类似,并配置…

3D处理关键点检测之ISS(内蕴形状特征)

定义 ISS(Intrinsic Shape Signatures)是由Yu Zhong于2009年提出的一种三维形状描述子,用于描述局部或者半局部区域的点云,局部区域可以理解为以一个点云中某点为球心,以一定半径构成的可以包含多个内点的球形区域,半局部则是半个…

linux驱动学习(十)之内存管理

一、linux内核启动过程中,关于内存信息 1、内核的内存的分区 [ 0.000000] Memory: 1024MB 1024MB total ---> 1G [ 0.000000] Memory: 810820k/810820k available, 237756k reserved, 272384K highmem [ 0.000000] Virtual kernel memory layout: 内…

鸿蒙元服务未来是能一“通”多端的前端形态?

2024年,华为鸿蒙的热度只增不减。 在2023年底就有业内人士透露,华为明年将推出不兼容安卓的鸿蒙版本,未来IOS、鸿蒙、安卓将成为三个各自独立的系统。 果不其然,执行力超强的华为,与2024年1月18日的开发者&#xff0…

Pixi.js学习 (六)数组

目录 前言 一、数组 1.1 定义数组 1.2 数组存取与删除 1.3 使用数组统一操作敌机 二、实战 例题一:使用数组统一操作敌机 例题一代码: 总结 前言 为了提高作者的代码编辑水品,作者在使用博客的时候使用的集成工具为 HBuilderX。 下文所有截…

LabVIEW故障预测

在LabVIEW故障预测中,振动信号特征提取的关键技术主要包括以下几个方面: 时域特征提取:时域特征是直接从振动信号的时间序列中提取的特征。常见的时域特征包括振动信号的均值、方差、峰值、峰-峰值、均方根、脉冲指数等。这些特征能够反映振动…

如何在Python中向Word文档插入图片

如何在Python中向Word文档插入图片 向Word文档插入图片添加前和添加后 在这篇博客文章中,我们使用Python向Word文档插入图片。通过本文,您将学习如何在文档中插入图片,并调整其大小和位置。 向Word文档插入图片 from docx import Document …

Redis脑裂问题详解及解决方案

Redis脑裂问题 Redis脑裂问题是指在主从集群中同时存在两个主节点,这会导致不同客户端往不同的主节点写入数据,最终导致数据不一致,甚至数据丢失。 哨兵主从集群脑裂 场景描述 假设有三台服务器:一台主服务器,两台…

据阿谱尔统计显示,2023年全球电动汽车充电设备市场价值为62.1亿美元

根据阿谱尔 (APO Research)的统计及预测,2023 年全球电动汽车充电设备市场价值为 62.1 亿美元,预计到 2030 年将达到 391.1 亿美元,预测期内(2024-2030 年)复合年增长率为 31.47%。 电动汽车 (EV) 充电设备…

如何有效处理服务器后台密码暴露

服务器后台密码的暴露是信息安全领域中的严重事件,它可能引发未经授权的数据访问、恶意软件植入或系统功能滥用等一系列问题。本文将探讨几种处理服务器后台密码暴露的有效策略,包括紧急响应步骤、密码安全增强措施及长期预防机制,并提供实际…

Unity射击游戏开发教程:(27)创建带有百分比的状态栏

创建带有弹药数和推进器百分比的状态栏 在本文中,我将介绍如何创建带有分数和百分比文本的常规状态栏。 由于 Ammo Bar 将成为 UI 的一部分,因此我们需要向 Canvas 添加一个空的 GameObject 并将其重命名为 AmmoBar。我们需要一个文本和两个图像对象,它们是 AmmoBar 的父级。…

如何使用 Vue.js 和 Java 开发一个完整的 Web 应用

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

测试基础12:测试用例设计方法-边界值分析

课程大纲 1、定义 经验发现,较多的错误往往发生在输入或输出范围的边界上,因为边界值是代码判断语句的点,一般容易出问题(数值写错、多加或丢失等号、写错不等号方向…)。所以增加对取值范围的边界数据的测试&#xff…

使引用作为函数参数将变量i和j的值互换

C之所以增加引用机制,主要是把它作为函数参数,以扩充函数传递数据的功能。 解题思路: 传递变量的地址。形参是指针变量,实参是一个变量的地址,调用函数时,形参(指针变量)得到实参变…

AI大模型时代:程序员如何面对“焦虑”并抓住“风口”

前言 最近,我和不少程序员朋友聊起了全网都在热议的大模型,如ChatGPT、GPT-4、文心一言等。大家的反应出乎我意料,普遍感到焦虑和迷茫。 这些大模型的出现,确实令人兴奋,仿佛一夜之间,AI就能做很多事情&…

专家解读 | NIST网络安全框架(3):层级配置

NIST CSF在核心部分提供了六个类别的关键功能和子功能,并围绕CSF的使用提供了层级(Tier)和配置(Profile)两种工具,使不同组织和用户更方便有效地使用CSF,本文将深入探讨CSF层级和配置的主要内容…