2012-04-06 35 views
12

Có mô tả đơn giản về cách tệp từ điển trong Proguard phải được cấu trúc không?Đặt tên tùy chỉnh Proguard cho các lớp học, thành viên và tham số obfuscation

Tôi đã đọc khoảng -?obfuscationdictionary, nhưng tôi không thể tìm thấy bất kỳ điều gì về chính các tệp đó.

Bên cạnh đó, tôi muốn thay đổi lược đồ đặt tên cho một cái gì đó phức tạp hơn, và không chỉ a, b vv và paramX, paramY ... Tôi muốn một loạt ký tự ngẫu nhiên, nếu có thể.

Và có, tôi biết nó chỉ là một sự khác biệt trực quan có thể được remodeled (refactored?) Để một cái gì đó dễ đọc hơn. Tuy nhiên, chỉ hỏi ...

Cảm ơn

Trả lời

21

Định dạng tập tin từ điển được khá đơn giản:

  1. Một từ trên mỗi dòng
  2. dòng trống bỏ qua
  3. dòng bắt đầu với # lờ

Nếu bạn muốn tạo một từ điển các chuỗi ngẫu nhiên, bạn có thể rite một chương trình đơn giản để tạo ra chúng và đổ chúng vào một tập tin văn bản, hoặc sử dụng http://www.random.org/strings trong đó có một giao diện web đơn giản đẹp để tạo chuỗi ngẫu nhiên. Nó phát ra chúng trên mỗi dòng, vì vậy bạn có thể sử dụng trực tiếp đầu ra của nó làm tệp từ điển của bạn.

Dưới đây là một số lượng mẫu (bạn có thể tạo ra chuỗi của bất kỳ kích thước):

 
HISPj7KHQ7 
Wja3o2vx62 
eyd3OXAZgV 
DxDJysLV5r 
BsUTWEAMAI 
R7N8DF4OVS 
4q7UsoAgP4 
cWbN6pumKk 
SJowARcXwM 
OyIbF7L6XB 

Dưới đây là một ví dụ tôi tìm thấy:

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

Vì vậy, tôi không nghĩ rằng có một cách để ngẫu nhiên nó, là có? – davidcesarino

+2

Vâng, bạn có thể viết một chương trình đơn giản để tạo tệp từ điển có đầy đủ các chuỗi ký tự được tạo ngẫu nhiên. – ulmangt

+0

Trên thực tế, http://www.random.org/strings/ có trình tạo biểu mẫu web thực hiện chính xác điều đó cho bạn. Và nó phun nó ra trong một định dạng bạn có thể sử dụng cho tập tin từ điển của bạn. – ulmangt

3

Bất kỳ tập tin văn bản sẽ làm việc. ProGuard sử dụng tất cả các số nhận dạng hợp lệ trong tệp. Nó bỏ qua các dòng bắt đầu bằng '#'. Các ví dụ thư mục/từ điển trong bản phân phối ProGuard chứa một vài ví dụ (bao gồm ví dụ được dán bởi ulmangt).

Các vấn đề liên quan