-
Hallo,
ist es möglich die Variablen in einer Methode zu verschleiern? Ich möchte nicht, dass man erkennt, wie die Methode arbeitet.
z.B. aus
Code :1 2 3 4 5 6 7 8
public void checkCounter() { int counter = user.getCounter(); if(counter >= 10) { Signature sig = Signature.getInstance("MD2withRSA", "SunRsaSign"); } }
sollte dann sowas werden:
Code :1 2 3 4 5 6 7 8
public void a() { int x = s.as(); if(x >= 10) { v sd = v.kj("MD2withRSA", "SunRsaSign"); } }
Der ideale Fall wäre es, wenn man "MD2withRSA" und "SunRsaSign" auch nicht in Klartext sehen könnte. Ist so etwas möglich und wenn ja, wie?
-
Hi
Unter anderem das macht ein Obfuscator.Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Hi sheel,
vielleicht habe ich mich nicht korrekt ausgedrückt. Ich benutze bereits ProGuard. Dadurch wird auch sehr viel obfuscated, allerdings nicht die Methodenvariablen. Im ganz Speziellen sind es denke ich die Java-spezifischen, also Strings, Integer, Signature etc. Das sollte eigentlich auch verschleiert werden. In den wichtigen Methoden werden allerdings gar keine Variablennamen verschleiert, auch nicht was es für ein Variablentyp ist. Das würde ich gerne ändern
-
10.11.11 23:21 #4
- Registriert seit
- Jun 2009
- Beiträge
- 870
Dann solltest du dir einen besseren (d.h. korrekt funktionierenden) Obfuscator zulegen. Allerdings ist das Obfuscaten von Code nicht besonders sinnvoll, da man sowieso wieder an den Code ran kommt
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
Vielleicht hab ich ja die Einstellungen von ProGuard einfach nur noch nicht komplett korrekt. Ich weis aber momentan nicht, wie ich es einstellen soll, dass Javaklassen nicht gekeept werden.
Was für einen Obfuscator würdest Du mir denn empfehlen? Er muss allerdings auch mit Android funktionieren. Und was würdest du dann machen, um den Code zu sichern?
-
11.11.11 08:17 #6
Hi,
schau dir doch mal den yGuard an. Mit dem habe ich selber auch schon ein paar mal gearbeitet. Funktioniert echt super. Die Deopfuscater-Programme haben danach kein leichtes Spiel mehr.
Allerdings weiß ich nicht ob das auf für Android funktioniert. Würde mich allerdings wundern wenn nicht, da das schließlich auch nur Java-Code ist.
Gruß
FabioBitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Guten Morgen Fabio,
dank dir schonmal. yGuard werd ich mir definitiv anschauen. Ich hätte allerdings noch eine Frage zu den Einstellungen. Ich habe eine View und die erstellt eine Variable vom Object Auto. Die View muss ich keepen, sonst wird sie gelöscht und meine App startet nicht. Durch dieses keepen wir automatisch auch die Klasse Auto gekeept, was wiederrum bedeutet, dass man sie fast komplet einsehen kann(mein oben schon beschriebenes Problem mit den Methodenvariablen). Ist es möglich die Klasse Auto vom löschen zu schützen, ohne, dass sie umbenannt wird(incl variablen)?
-
11.11.11 10:22 #8
Klar gibt es diese Möglichkeiten. Du kannst yGuard auch jede Methode einzeln nennen, die er nicht obfuscaten soll.
In diesem Beispiel würdest du alle Klassen, Methoden und Fieldvariablen die protected oder public sind vor der Obfuscation ausschließen. Das kannst du variable einstellen. Auch für jede Klasse, Methode und Fieldvariable einzeln wenn du möchtest. Eine Tabelle dazu, bei welcher Sichtbarkeit diese von der Obfuscation ausgeschlossen werden findest du hier.
Sieh dir am Besten mal die Beispiel auf der Homepage von yGuard an. Da wird dir dann bestimmt einiges klarer.Code xml:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
<target depends="jar" name="yguard"> <taskdef name="yguard" classname="com.yworks.yguard.YGuardTask" classpath="yguard.jar"/> <!-- the following can be adjusted to your needs --> <yguard> <inoutpair in="${jar}" out="${obfjar}"/> <shrink logfile="${shrinklog}"> <keep> <class classes="protected" methods="protected" fields="protected"></class> </keep> </shrink> </yguard> </target>
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Ok, vielen dank. Ich werde mich nächste Woche mit yGuard beschäftigen. Heute geb ich ProGuard noch ne Chance
-
Hallo,
falls es euch interessiert, schreib ich noch, wie die Sache jetzt ausging. Als ich bleibe bei ProGuard erstmal. Die localen Variablen in einigen methoden wurden obfuscated, allerdings hat der Dekompiler sie wieder ersetzt durch eigene Namen: local... z.B.. Ach und Standardbibliotheken wie java.security können nicht obfuscated werden!
Nun versuch ich weiterhin meinen Code zu sichern. Habe diese Pdf gefunden und probier einmal mein Glück:
http://users.rowan.edu/~tang/courses...Obfuscator.pdf
-
15.11.11 07:54 #11
Du solltest beim obfuscaten noch beachten, dass du nur deinen Code obfuscatest! Alle Libraries die in deinem Projekt eingebunden sind, müssen - außer es steht anders in den Lizenzen - kenntlich bleiben!
Das nur als kleiner Tipp am Rande.
Gruß
FabioBitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Ja, danke, meine libs sind nicht obfuscatet. Meinst du, weil es sonst nicht funktioniert, oder weil es rechtlich vorbestimmt ist?
-
15.11.11 08:41 #13
Funktionieren tut das schon. Es geht hier wirklich nur ums rechtliche.
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Dachte ich mir schon. Noch mal viiiiiiiielen Dank für die Hilfe************!!
-
15.11.11 09:16 #15
Keine Ursache. Kannst du das Thema dann noch als erledigt markieren, wenn keine weiteren Fragen bestehen? Danke
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
Ähnliche Themen
-
Variablen Zuweisung in einer Methoden-Übergabe
Von 3Cyb3r im Forum JavaAntworten: 4Letzter Beitrag: 05.12.10, 11:29 -
Was bedeuten @ und & vor Variablen und Methoden?
Von Homer Simpson im Forum PHPAntworten: 2Letzter Beitrag: 27.06.08, 14:02 -
variable Methoden mit variablen Parametern
Von Samuel im Forum PHPAntworten: 2Letzter Beitrag: 16.01.08, 09:16 -
Einheitliche Bennung von Variablen, Methoden etc...
Von PsychoSam im Forum PHPAntworten: 9Letzter Beitrag: 13.04.04, 19:00 -
[C#] Methoden + Variablen
Von Badgott im Forum C/C++Antworten: 6Letzter Beitrag: 15.10.02, 11:40



3Danke

Zitieren

Login





