Android 自定义混淆字典

news/2025/1/14 17:29:50/

添加下面的代码,用新的混淆字典,随机大小写字母组合

package com.jiuhong.mbtirgtest.util;import java.io.FileWriter;
import java.io.IOException;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;public class ObfuscationDictionaryGeneratorUtil {public static void generateObfuscationDictionary(String filePath, int count) {Set<String> uniqueWords = new HashSet<>();  // 使用 Set 确保唯一性while (uniqueWords.size() < count) {uniqueWords.add(generateRandomWord(3, 10));}try (FileWriter writer = new FileWriter(filePath)) {for (String word : uniqueWords) {writer.write(word + "\n");}System.out.println("混淆字典已生成: " + filePath);} catch (IOException e) {System.err.println("生成混淆字典失败: " + e.getMessage());}}private static String generateRandomWord(int minLength, int maxLength) {Random random = new Random();int wordLength = random.nextInt(maxLength - minLength + 1) + minLength;StringBuilder word = new StringBuilder(wordLength);for (int i = 0; i < wordLength; i++) {char randomChar = (char) (random.nextBoolean() ? 'A' + random.nextInt(26) : 'a' + random.nextInt(26));word.append(randomChar);}return word.toString();}
}

生成字典文件

        // 调用方法生成混淆字典String filePath = this.getFilesDir().getAbsolutePath() + "/obfuscation_dictionary.txt";int count = 10000; // 生成 10000 条记录ObfuscationDictionaryGeneratorUtil.generateObfuscationDictionary(filePath, count);

在Device Explorer找到这个文件

/data/user/0/com.j.mt/files/obfuscation_dictionary.txt

拖到APP目录下
在这里插入图片描述
在混淆文件中添加规则
在这里插入图片描述

#用于字段名和方法名混淆。
-obfuscationdictionary obfuscation_dictionary.txt
#用于类名混淆。
-classobfuscationdictionary obfuscation_dictionary.txt
#用于包名混淆。
-packageobfuscationdictionary obfuscation_dictionary.txt

http://www.ppmy.cn/news/1563085.html

相关文章

相机小孔成像模型与透视变换

0 背景 本文用于记录小孔相机成像的数学模型推导&#xff0c;并讨论特定条件下两个相机之间看到图像的变换关系。 1 小孔成像模型 小孔成像模型如上图所示。物理世界发光点P&#xff0c;经过小孔O投影到物理成像平面&#xff0c;形成像点I’。 简易起见&#xff0c;构造虚拟成…

全栈面试(一)Basic/微服务

文章目录 项目地址一、Basic InterviewQuestions1. tell me about yourself?2. tell me about a time when you had to solve a complex code problem?3. tell me a situation that you persuade someone at work?4. tell me a about a confict with a teammate and how you…

回归预测 | MATLAB实MLR多元线性回归多输入单输出回归预测

回归预测 | MATLAB实MLR多元线性回归多输入单输出回归预测 目录 回归预测 | MATLAB实MLR多元线性回归多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 回归预测 | MATLAB实MLR多元线性回归多输入单输出回归预测。 程序设计 完整代码&#xff1a;回…

32单片机从入门到精通之安全性与可靠性——防护措施(十八)

在人生的道路上&#xff0c;我们会遇到各种困难和挑战。但是&#xff0c;只要我们保持积极的态度和坚定的信念&#xff0c;我们就能够战胜一切困难&#xff0c;实现自己的梦想。不要害怕失败&#xff0c;因为失败是成功的基石。当我们遭遇挫折时&#xff0c;要坚持不懈地努力&a…

嵌入式系统Linux实时化(四)Xenomai应用开发测试

1、Xenomai 原生API 任务管理 Xenomai 本身提供的一系列多任务调度机制,主要有以下一些函数: int rt_task_create (RT_TASK task, const char name, int stksize, int prio, intmode) ; 任务的创建;int rt_task_start(RT_TASK task, void(entry)(void cookie), void cookie…

【Uniapp-Vue3】使用defineExpose暴露子组件的属性及方法

如果我们想要让父组件访问到子组件中的变量和方法&#xff0c;就需要使用defineExpose暴露&#xff1a; defineExpose({ 变量 }) 子组件配置 父组件配置 父组件要通过onMounted获取到子组件的DOM 传递多个属性和方法 子组件 父组件

以太坊(概念与原理)

特点 以太坊是”世界计算机“&#xff0c;开源的、全球分布的计算机基础设施。执行称为智能合约的程序使用区块链来同步和存储系统状态以及名为以太币的加密货币&#xff0c;以计量和约束执行资源成本本质是一个基于交易的状态机以太坊平台使开发人员能够构建具有内置经济功能…

Cesium入门学习6(2025年版本)----- 卫星轨迹

1.完整学习衔接&#xff1a; cesium入门学习一_cesium入门难吗-CSDN博客https://blog.csdn.net/Jinyizhi2233/article/details/144713925 cesium入门学习二-CSDN博客https://blog.csdn.net/Jinyizhi2233/article/details/144723617 cesium入门学习三_cesium 点击事件-CSDN博…