2012-04-06 6 views
12

Gibt es eine einfache Beschreibung, wie die Wörterbuchdatei in Proguard strukturiert sein sollte?Proguard benutzerdefinierte Benennung für Klassen, Mitglieder und Parameter Verschleierung

Ich habe über -?obfuscationdictionary gelesen, aber ich konnte nichts über die Dateien selbst finden.

Außerdem würde ich gerne das Namensschema etwas komplexer, ändern und nicht nur a, b usw. und paramX, paramY ... Ich würde eine zufällige Folge von Zeichen mögen, wenn möglich.

Und ja, ich weiß, es ist nur ein visueller Unterschied, der umgestaltet werden kann (umgestaltet?), Um etwas leichter zu lesen. Dennoch nur fragen ...

Dank

Antwort

21

Das Format Wörterbuch-Datei ist ziemlich einfach:

  1. Ein Wort pro Zeile mit #
  2. ignoriert Start
  3. Leerzeilen ignoriert
  4. Linien

Wenn Sie ein Wörterbuch von zufälligen Zeichenfolgen erstellen möchten, könnten Sie w Rite ein einfaches Programm, um sie zu generieren und sie in eine Textdatei ablegen, oder verwenden Sie http://www.random.org/strings, die eine nette einfache Web-Schnittstelle zum Erstellen von zufälligen Strings hat. Sie spuckt sie pro Zeile aus, so dass Sie ihre Ausgabe direkt als Ihre Wörterbuchdatei verwenden können.

Hier einige Beispielausgabe (Sie Strings jeder Größe erzeugen können):

 
HISPj7KHQ7 
Wja3o2vx62 
eyd3OXAZgV 
DxDJysLV5r 
BsUTWEAMAI 
R7N8DF4OVS 
4q7UsoAgP4 
cWbN6pumKk 
SJowARcXwM 
OyIbF7L6XB 

Hier ist ein Beispiel, das ich gefunden:

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

 
# 
# This obfuscation dictionary contains reserved Java keywords. They can't 
# be used in Java source files, but they can be used in compiled class files. 
# Note that this hardly improves the obfuscation. Decent decompilers can 
# automatically replace reserved keywords, and the effect can fairly simply be 
# undone by obfuscating again with simpler names. 
# Usage: 
#  java -jar proguard.jar ..... -obfuscationdictionary keywords.txt 
# 

do 
if 
for 
int 
new 
try 
byte 
case 
char 
else 
goto 
long 
this 
void 
break 
catch 
class 
const 
final 
float 
short 
super 
throw 
while 
double 
import 
native 
public 
return 
static 
switch 
throws 
boolean 
default 
extends 
finally 
package 
private 
abstract 
continue 
strictfp 
volatile 
interface 
protected 
transient 
implements 
instanceof 
synchronized 
+0

Also, ich glaube nicht, dass es eine Möglichkeit gibt, es zu randomisieren, oder? – davidcesarino

+2

Nun, Sie könnten ein einfaches Programm schreiben, um eine Wörterbuchdatei zu generieren, die aus zufällig generierten Zeichenketten besteht. – ulmangt

+0

In der Tat, http://www.random.org/strings/ hat einen Web-Formular-Generator, der genau das für Sie tut. Und es spuckt es in einem Format aus, das Sie für Ihre Wörterbuchdatei verwenden könnten. – ulmangt

3

Jede Textdatei arbeiten. ProGuard verwendet alle gültigen Bezeichner in der Datei. Es ignoriert Zeilen, die mit '#' beginnen. Die Verzeichnisbeispiele/Wörterbücher in der ProGuard-Distribution enthalten einige Beispiele (einschließlich des von ulmangt eingefügten Beispiels).

Verwandte Themen