2010-11-27 7 views
0

Mit yguard Ich bin ein Projekt verschleiern und ich würde gerne wissen, ob es möglich ist, Dateien außerhalb des Gebäudes aufzunehmen, um nur die Bibliotheken und Funktionen neues Benennungsschema zu erhalten?Externe Dateien hinzufügen, um die Umbenennung von Bibliotheken zu erhalten?

Zum Beispiel, ich verschleiern die Klasse com.MyClass.MyInternalClasses und außerhalb meines Projekts habe ich die Datei mysql.java und innerhalb mysql.java Ich benutze einige Klasse von MyInternetClasses aber seit ich es verschleiert, hat der Name wurde geändert zu etwas anderes sagen wir com.AB

Also was es tun würde ist, dass Java-Datei lesen und ersetzen Sie die Namen aller verschleierten Namen geändert auf sie.

Oder was wäre die beste Annäherung daran?

Antwort

0

Im Allgemeinen ist der Ansatz, die Hauptmasse Ihres Codes zu verschleiern, aber lassen Sie die öffentlichen Schnittstellen nicht offen - geben Sie sie mit dem keep Element. Auf diese Weise muss der Benutzer des Codes die Verschleierung nicht bemerken. Wenn Sie feststellen, dass Ihre öffentlichen Schnittstellen Code enthalten, den Sie verschleiern möchten, dann sollten Sie durch ein kleines Redesign (ein wenig Delegierung verwenden oder eine minimale öffentliche Fassade erstellen) die Öffentlichkeit von dem "Geheimnis" trennen.

Alternativ können Sie das Element map verwenden, um die Umbenennung für die Schnittstellen, die Sie extern verwenden möchten, manuell festzulegen. Dann können Sie den aufrufenden Code ändern, um diese Namen zu verwenden. Die Umbenennungen, die yGUARD anwendet, werden protokolliert, so dass Sie die Namen von dort extrahieren können - aber das wird unordentlich.

+0

Das Problem ist, dass ich so viele Dateien aus den öffentlichen Dateien verknüpft habe, dass, wenn ich sie von obfuscating überspringen würde, würde ich überhaupt nicht verschleiern, weshalb ich mich fragte, ob ich etwas wie das Umbenennungsschema machen könnte Auswirkungen auf Dateien außerhalb der Hauptmasse. – Prix

Verwandte Themen