17

是否有关于 Proguard 中的字典文件应该如何构建的简单描述?

我已经阅读过-?obfuscationdictionary,但我找不到有关文件本身的任何信息。

此外,我想将命名方案更改为更复杂的东西,而不仅仅是abparamXparamY...如果可能的话,我想要一个随机的字符系列。

是的,我知道这只是一种视觉上的差异,可以被改造(重构?)成更容易阅读的东西。不过,只是问...

谢谢

4

2 回答 2

28

字典文件格式非常简单:

  1. 每行一个字
  2. 空行被忽略
  3. #以忽略开头的行

如果你想创建一个随机字符串的字典,你可以编写一个简单的程序来生成它们并将它们转储到一个文本文件中,或者使用http://www.random.org/strings它有一个很好的简单网络界面来创建随机字符串。它每行吐出一个,因此您可以将其输出直接用作字典文件。

这是一些示例输出(您可以生成任何大小的字符串):

HISPj7KHQ7
wja3o2vx62
eyd3OXAZgV
DxDJysLV5r
BSUTWEAMAI
R7N8DF4OVS
4q7UsoAgP4
cWbN6pumKk
SJowARcXwM
OyIbF7L6XB

这是我发现的一个例子:

https://trac.openxdata.org/browser/trunk/j2me/openxdata-mobile/epihandy-lite/proguard/examples/dictionaries/keywords.txt?rev=1156

#
# 这个混淆字典包含保留的 Java 关键字。他们不能
# 在Java源文件中使用,但它们可以在编译的类文件中使用。
# 请注意,这几乎不会改善混淆。体面的反编译器可以
# 自动替换保留关键字,效果可以很简单
# 通过使用更简单的名称再次混淆来撤销。
# 用法:
# java -jar proguard.jar ..... -obfuscationdictionary keywords.txt
#

做
如果
为了
整数
新的
尝试
字节
案子
字符
别的
去
长
这
空白
休息
抓住
班级
常量
最终的
漂浮
短的
极好的
扔
尽管
双倍的
进口
本国的
上市
返回
静止的
转变
投掷
布尔值
默认
延伸
最后
包裹
私人的
抽象的
继续
严格的fp
易挥发的
界面
受保护
短暂的
工具
实例
同步的
于 2012-04-06T16:27:38.733 回答
3

任何文本文件都可以。ProGuard 使用文件中的所有有效标识符。它忽略以“#”开头的行。ProGuard 发行版中的目录 examples/dictionaries 包含一些示例(包括 ulmangt 粘贴的示例)。

于 2012-04-06T21:13:09.467 回答