2011-12-18 40 views
9

Tôi đã sử dụng bộ đệm obfuscators java trong quá khứ và một số là dễ dàng để đảo ngược kỹ sư. Tôi đã nghĩ có lẽ nó không đủ can đảm.Có sai khi làm xáo trộn mã bị xáo trộn không?

Có sai hoặc có vấn đề khi áp dụng obfuscation hai giai đoạn?

  1. xáo trộn với ProGuard
  2. Kết thúc nó đi với một sản phẩm thương mại Zelix Klassmaster

-

Hoặc là một cách tiếp cận xấu? Chỉ nên sử dụng một obfuscator?

+0

Đó là "không sao" theo nghĩa là không có gì xấu sẽ xảy ra. –

+4

Tôi nghĩ đó là một câu hỏi hay. Không biết tại sao nó có một "đóng" phiếu bầu. Có lẽ nên được lặp lại một chút. – MByD

+0

Tôi đã bỏ phiếu để đóng bởi vì nó không rõ ràng "okay" so với "xấu" có nghĩa là, theo nghĩa khách quan. –

Trả lời

4

Miễn là mã vẫn chạy đúng, thì dù bạn sử dụng số obfuscator nào thì cũng không sao. Hãy nhớ rằng mối quan tâm chính của việc sử dụng obfuscator là làm cho mã không đọc được càng nhiều càng tốt trong khi vẫn duy trì tính chính xác của nó.

2

re-obfuscating mã obfuscated là một phương pháp cũng biết mã unobfuscating. ví dụ: bạn có thể xáo trộn các lớp có tên mà không hình thành cửa sổ hợp lệ tên tập tin như

class COM1 { ... } 

dịch ngược mà sẽ cho kết quả trong một file có tên COM1.java, mà không phải là một cửa sổ tên tập tin hợp lệ và do đó phá vỡ nhiều phần mềm ăn cắp.

Giải pháp sẽ là lần đầu tiên làm xáo trộn lại bằng cách sử dụng từ điển các tên như class1, class2, method1, method2, field1, field2 và sau đó dịch ngược lại. Mã được biên dịch sẽ không chỉ hợp lệ hơn để dịch ngược, mà còn dễ đọc hơn.

Sử dụng bộ obfuscators trong nối tiếp thường sẽ dẫn đến mã bị xáo trộn mạnh như bộ obfuscator cuối cùng được sử dụng. (ví dụ: chuỗi mạnh như liên kết cuối cùng)

Tôi đề nghị bạn nên dính vào một obfuscator nhưng chắc chắn rằng bạn hiểu từng tùy chọn trong quá trình làm xáo trộn và dễ dàng hoàn tác.

+0

Hãy tưởng tượng obfuscater cuối cùng chỉ cần sao chép mã. Làm thế nào mà có thể làm cho các bước obfuscation trước đó ít hiệu quả hơn? Tôi nghĩ nó mạnh bằng liên kết mạnh nhất. –

+0

@IraBaxter Tôi hiểu ý của bạn là gì, nhưng rất nhiều kỹ thuật làm xáo trộn có thể được hoàn tác bằng cách tái làm xáo trộn. – Matiaan

+0

'Sử dụng obfuscators trong nối tiếp thường sẽ dẫn đến mã obfuscated mạnh như obfuscator cuối được sử dụng. (tức là chuỗi mạnh như liên kết cuối cùng) 'Tại sao? – EJP

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