2012-04-06 23 views
12

Czy istnieje prosty opis struktury pliku słownika w programie Proguard?Niestandardowe nazewnictwo proguard dla klas, członów i parametrów zaciemnianie

Przeczytałem o -?obfuscationdictionary, ale nie mogłem znaleźć nic na temat samych plików.

Poza tym, chciałbym zmienić schemat nazewnictwa do czegoś bardziej skomplikowanego, a nie tylko a, itd. I paramXb, paramY ... Chciałbym losowy ciąg znaków, jeśli to możliwe.

I tak, wiem, że to tylko wizualna różnica, którą można przebudować (refaktoryzować?) Na coś łatwiejszego do odczytania. Mimo to, tylko pytam ...

Dzięki

Odpowiedz

21

Słownik format pliku jest bardzo prosta:

  1. jedno słowo na linię
  2. Puste linie ignorowane
  3. Linie zaczynające się # ignorowane

Jeśli chcesz utworzyć słownik losowych ciągów znaków, możesz rytuuj prosty program, aby je wygenerować i zrzuć do pliku tekstowego, lub użyj http://www.random.org/strings, który ma ładny prosty interfejs sieciowy do tworzenia losowych ciągów. Pluje je po jednym wierszu, więc możesz użyć jego danych wyjściowych bezpośrednio jako plik słownika.

Oto niektóre przykładowe dane wyjściowe (można generować ciągi o dowolnej wielkości):

 
HISPj7KHQ7 
Wja3o2vx62 
eyd3OXAZgV 
DxDJysLV5r 
BsUTWEAMAI 
R7N8DF4OVS 
4q7UsoAgP4 
cWbN6pumKk 
SJowARcXwM 
OyIbF7L6XB 

Oto przykład znalazłem:

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

Nie sądzę, że istnieje sposób na zrobienie tego losowo, prawda? – davidcesarino

+2

Cóż, możesz napisać prosty program do generowania pliku słownika, który jest pełen losowo wygenerowanych ciągów znaków. – ulmangt

+0

W rzeczywistości http://www.random.org/strings/ ma generator formularzy internetowych, który robi dokładnie to za Ciebie. I wypluwa to w formacie, który można użyć do pliku słownika. – ulmangt

3

Każdy plik tekstowy będzie działać. ProGuard używa wszystkich prawidłowych identyfikatorów w pliku. Ignoruje linie rozpoczynające się od "#". Przykłady katalogów/słowniki w dystrybucji ProGuard zawierają kilka przykładów (w tym przykład wklejony przez ulmangt).