如何使用 proguard 混淆 war 文件

2024-02-10

我想使用 proguard 混淆 war 文件,我该怎么做?
请解释一下步骤


这个问题我很疑惑。

与其他 Java 混淆器一样,Proguard 通过重命名每个它认为可以安全重命名的变量、方法等来混淆已编译的字节码(.class 文件)。我想你知道这一点并且知道如何使用 Proguard 来处理类文件,因为你特别询问过它。如果没有,请阅读 proguard 手册。

对于war文件,您可以通过解压war(或jar)来提取类文件。 (是的,war 是一个普通的 zip 文件)。然后你可以通过 Proguard 运行它们并再次将其压缩。您可以使用 Winzip、unzip 或任何您喜欢的 zip 程序。您甚至可以使用 JDK 压缩和解压该 war (jar -xvf tobe_extracted.war)。

这种混淆不会影响 war 中的其他文件,例如属性文件、xml 文件等。战争没有加密。此后您的软件可能无法工作,因为基于反射的东西可能会被破坏。 Proguard 无法知道您的框架是否会利用其强大的反射魔法来访问某些内容,以及重命名它是否真的安全。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 proguard 混淆 war 文件 的相关文章

  • Java new Date() 打印

    刚刚学习 Java 我知道这可能听起来很愚蠢 但我不得不问 System out print new Date 我知道参数中的任何内容都会转换为字符串 最终值是 new Date 返回对 Date 对象的引用 那么它是如何打印这个的呢 Mo
  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • 如何默认将 Maven 插件附加到阶段?

    我有一个 Maven 插件应该在编译阶段运行 所以在项目中consumes我的插件 我必须做这样的事情
  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 给定两个 SSH2 密钥,我如何检查它们是否属于 Java 中的同一密钥对?

    我正在尝试找到一种方法来验证两个 SSH2 密钥 一个私有密钥和一个公共密钥 是否属于同一密钥对 我用过JSch http www jcraft com jsch 用于加载和解析私钥 更新 可以显示如何从私钥 SSH2 RSA 重新生成公钥
  • Android:捕获的图像未显示在图库中(媒体扫描仪意图不起作用)

    我遇到以下问题 我正在开发一个应用程序 用户可以在其中拍照 附加到帖子中 并将图片保存到外部存储中 我希望这张照片也显示在图片库中 并且我正在使用媒体扫描仪意图 但它似乎不起作用 我在编写代码时遵循官方的Android开发人员指南 所以我不
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 为什么HashMap不能保证map的顺序随着时间的推移保持不变

    我在这里阅读有关 Hashmap 和 Hashtable 之间的区别 http javarevisited blogspot sg 2010 10 difference Between hashmap and html http javar
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • simpleframework,将空元素反序列化为空字符串而不是 null

    我使用简单框架 http simple sourceforge net http simple sourceforge net 在一个项目中满足我的序列化 反序列化需求 但在处理空 空字符串值时它不能按预期工作 好吧 至少不是我所期望的 如
  • 当我从 Netbeans 创建 Derby 数据库时,它存储在哪里?

    当我从 netbeans 创建 Derby 数据库时 它存储在哪里 如何将它与项目的其余部分合并到一个文件夹中 右键单击Databases gt JavaDB in the Service查看并选择Properties This will
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 如何以编程方式访问iOS系统字体

    我正在尝试更改导航栏标题的字体大小 我知道我可以使用以下方法设置其属性 var attributes NSForegroundColorAttributeName UIColor blackColor NSFontAttributeName
  • Solr 4.0 是否能够对多核使用“join”?

    我注意到 Solr 4 0 为具有关系的文档引入了 连接 功能 这很棒 但是 我注意到给出的例子http wiki apache org solr Join http wiki apache org solr Join适用于单核 所有文档都
  • 从多模块 pom 构建单个模块

    可以做吗 环境 多模块pom由3个模块组成 mm1 mm2 mm3 模块 mm2 有 mm1 作为依赖项 可以没有任何错误地构建父 pom 问题 是否可以在不将 mm1 安装到本地存储库的情况下构建单个模块 mm2 即从 mm2 基本目录运
  • 切换到 Android 应用程序包分发后,应用程序有时会崩溃并出现 Resources$NotFoundException

    App每月活跃用户超过20000人 它已经在 Google Play 上发布几个月了 在我最近从 apk 发行版切换到 aab 发行版后 我开始在 crashlytics 和 google play store 上收到随机崩溃的消息 在导致
  • 更少的变量:这可能吗

    所以我的代码在类型方面存在重大问题 但我似乎无法解决它 每当我减去1从线8有问题 我该如何解决这个问题 max columns 2 column 1 width min 30 column 2 width min 40 loop colum
  • .NET DB2 OLEDB 先决条件

    我用 C NET Framework 2 0 编写了一个 Windows 窗体应用程序 它使用System Data OleDb与 SQL Server 2000 数据库对话 该数据库运行良好 我现在需要增强应用程序以与DB2 http e
  • 使用聚合将多个函数应用于数据框中的每一列

    当我需要将多个函数按顺序应用于多个列并按多个列聚合并希望将结果绑定到我通常使用的数据框中时aggregate 通过以下方式 bogus functions foo1 lt function x mean x var x foo2 lt fu
  • npm start 如何指定index.js以外的启动文件

    我运行 create react app 然后切换到目录并运行 npm start 只是想知道如何指定一个与 index js 不同的文件在服务器上启动 这是我的 package json 文件 name todo version 0 1
  • 错误:联合中不允许复制赋值运算符

    当出现以下错误时 我正在编译下面的代码 我找不到原因 typedef union struct const int j tag X int main return 0 error member lt anonymous union gt l
  • Django 模板内部总结

    我在 django 中有以下模板 我想获取每个文档对象的最后 2 列的总计 for documento in documentos for cuenta in documento cuentasxdocumento set all tr i
  • 通过蓝牙将文件从 PC 传输到其他设备代码示例 C++ [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Stackoverflow 用户大家好 问题 我正在寻找一些代码示例 这些示例展示了如何找到连接到我的计算机的蓝牙设备 我正在寻找一些
  • 是否有可用的 WPF“WrapGrid”控件或创建控件的简单方法?

    本质上我想要一个wrapPanel 但我希望项目能够捕捉到网格而不是被压到左侧 这样我就可以获得一个漂亮的统一外观的网格 它会自动消耗可用空间 WrapPanel 处理调整大小部分 WPF Contrib AutoGrid 处理一个很好的自
  • Android XML 属性中的星号 (*) [重复]

    这个问题在这里已经有答案了 谁能解释一下 Android XML 属性中星号的含义 允许您访问私有资源 私有资源之所以私有是有原因的 因为它们的名称将来可能会作为固件或皮肤更新的一部分而
  • 在php中对对象数组进行排序

    嗨 我想对一个对象数组进行排序 它采用数组的形式 其中包含对象 每个对象都有键 值 我想根据值对对象进行排序 问题是值包含其中有空格的数字之间 有些也是空数字 所以我无法使用 usort 对其进行排序 任何帮助将不胜感激 这是一个代码片段
  • 浏览器文本框自动完成事件,什么时候发生?

    If i dont put autocomplete off on my
  • 使用 fread 将文件内容读取到结构中

    在 Unix 环境中的高级编程 一书中 有一部分 第 8 14 章 第 251 页 作者向我们展示了 acct 结构 用于存储会计记录信息 的定义 然后 他展示了一个程序 在该程序中 他将文件中的会计数据读取到结构中 其关键部分是 frea
  • 如何更新反冲状态对象的特定值

    我有这个反冲状态对象 export const LivePolygon atom key LivePolygon default radii coordinates tilt 在另一个文件上 我像这样导入它 import LivePolyg
  • 如何在用户点击react.js中的按钮时动态添加输入字段

    我有两个问题 gt 第一个是我想在用户单击react js中的 按钮时动态添加用户输入字段 如果用户点击次数越多 表单中就会添加更多的字段 如何在react js中做到这一点 第二个当用户更改其值时 我想将每个输入字段的相应值存储到我的组件
  • 尽管 UseColumnTextForButtonText 设置为 true,但 DataGridView 按钮文本未显示

    我已向 DataGridView 添加了一个按钮列 并希望在其上显示文本 比较 我已经设置了Text比较和属性UseColumnTextForButtonValue为 True 但不显示任何文本 这在运行时也是如此 所以它不仅仅是不显示在设
  • 如何使用 proguard 混淆 war 文件

    我想使用 proguard 混淆 war 文件 我该怎么做 请解释一下步骤 这个问题我很疑惑 与其他 Java 混淆器一样 Proguard 通过重命名每个它认为可以安全重命名的变量 方法等来混淆已编译的字节码 class 文件 我想你知道