Portal > Foren > Java > Allgemeine Java-Programmierung > Sourcen verschleiern
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 14.12.2004, 09:59 Nach oben    #1
Tramp
Gast
 
Beiträge: n/a
Standard Sourcen verschleiern

Hi Leute,

wenn ich meine Java Applikationen veräußere, möchte ich gern verhindern, dass mann meine Classfiles decompilieren kann.
Wie, bzw. womit kann ich das bewerkstelligen ?

Es wäre gut, wenn es ein Programm gäbe, welches mir die internen Variablen in der classdatei refactoriert und die Dateinamen.

Habt Ihr da einen Lösungsansatz?

Gruß,
Stefan
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2004, 18:47 Nach oben    #2
Sym
Chefkoch-Mod
 
Benutzerbild von Sym
 
Registriert seit: 30.05.2004
Beiträge: 432
Standard

Ich wusste gar nicht, dass eine Dekompilation bei Java möglich ist. Hast Du dazu nähere Hinweise?
__________________
Denk mal darüber nach...

Lars

ACHTUNG: wenn ich von Klassen spreche, könnte ich auch deren Instanzen meinen.
www.linuxforen.de +++ www.macuser.de +++ www.mrunix.de +++ www.lmprojects.de
Sym ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2004, 19:08 Nach oben    #3
Tramp
Gast
 
Beiträge: n/a
Standard

zumindest werden Namen von Variablen sichtbar, wenn man die .class Dateien in einem Hex Editor öffnet und genau das möchte ich verhindern.
Meine Projekte sind etwas zu umfangreich um die Variablen von Hand zu refactorieren....
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 14.12.2004, 21:14 Nach oben    #4
bluelight
Gast
 
Beiträge: n/a
Standard

Ich hab schonmal ein Decompiller gesehen, weiß nicht mehr genau wie der heißt, den hat man nur die class atei zu füttern gegeben und schwup hatte man den Quelltext, sogar ordentlich formatiert, ...
Zu deinem Problem gabs da nicht ein tool von sun.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 15.12.2004, 12:38 Nach oben    #5
Soulfly
Gast
 
Beiträge: n/a
Standard

Googlet einfach mal nach JAD, das ist der Decompiler und nein man kann den Bytecode nicht verschleiern.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 16.12.2004, 09:16 Nach oben    #6
LordOfCodes
Gast
 
Beiträge: n/a
Standard

Um deinen code zu verschleiern gibt es sogenannte obfuscatoren.
Suche einfach bei google nach obfuscator.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.02.2005, 13:54 Nach oben    #7
McSnoop
Gast
 
Beiträge: n/a
Standard

Aber selbst wenn du sogenannte "obfuscatoren" verwendest bist du nicht davor gefeid das dir einer deine Quellen kopiert.

Denn die gesamten schnittstellen bleiben erhalten, somit braucht es halt nur mehr zeit bis der komplette Quelltext fehlerfrei rekonstruiert ist. Sicher es schreckt viele ab, aber eine endgültige Lösung sind solche "obfuscatoren" nicht.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.02.2005, 13:56 Nach oben    #8
Sym
Chefkoch-Mod
 
Benutzerbild von Sym
 
Registriert seit: 30.05.2004
Beiträge: 432
Standard

Zitat:
Zitat von McSnoop
Aber selbst wenn du sogenannte "obfuscatoren" verwendest bist du nicht davor gefeid das dir einer deine Quellen kopiert.

Denn die gesamten schnittstellen bleiben erhalten, somit braucht es halt nur mehr zeit bis der komplette Quelltext fehlerfrei rekonstruiert ist. Sicher es schreckt viele ab, aber eine endgültige Lösung sind solche "obfuscatoren" nicht.
Soweit ich das jetzt überblickt habe, sind die Dinger schon ziemlich gut geworden. Was genau meinst Du denn mit "Schnittstellen"?
__________________
Denk mal darüber nach...

Lars

ACHTUNG: wenn ich von Klassen spreche, könnte ich auch deren Instanzen meinen.
www.linuxforen.de +++ www.macuser.de +++ www.mrunix.de +++ www.lmprojects.de
Sym ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.02.2005, 14:07 Nach oben    #9
McSnoop
Gast
 
Beiträge: n/a
Standard

"obfuscatoren" ersetzen nur die Identifier (Klassen-, Variablennamen usw.) das erschwert zwar das lesen, aber die Strukturen(Schnittstellen, Interfaces usw.) bleiben ja erhalten, weil ja sonst kein funktionierendes Programm rauskommen würde.

Der "obfuscator" wäre dann "perfekt" wenn er es noch fertig bringen würde die struktur so durcheinander zu bringen das die decompiler nichts damit anfangen könnten, aber das Programm trotzdem noch ausführbar bleibt.
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.02.2005, 14:21 Nach oben    #10
McSnoop
Gast
 
Beiträge: n/a
Standard

Hier mal ein kleine Auflistung von "obfuscatoren":

2LKit : www.2lkit.com
--------------------------------------------------------------------------------
BLOAT : www.cs.purdue.edu/s3/projects/bloat/
--------------------------------------------------------------------------------
Condensity : www.condensity.com
--------------------------------------------------------------------------------
DashO : www.preemptive.com/tools/index.html
--------------------------------------------------------------------------------
Elixir : http://elexirtech.com/ElixirIDE/
--------------------------------------------------------------------------------
jarg : http://sourceforge.net/projects/jarg
--------------------------------------------------------------------------------
JAX : www.alphaworks.ibm.com/tech/JAX?
--------------------------------------------------------------------------------
JCloak : www.force5.com/JCloak/ProductJCloak.html?
--------------------------------------------------------------------------------
JProofLite : www.jproof.com/?
--------------------------------------------------------------------------------
jPresto : www.s5systems.com/jPresto.htm?
--------------------------------------------------------------------------------
JODE : http://jode.sourceforge.net
--------------------------------------------------------------------------------
Jshrink : www.e-t.com/jshrink.html?
--------------------------------------------------------------------------------
JZipper : www.vegatech.net/jzipper/?
--------------------------------------------------------------------------------
Zelix KlassMaster : www.zelix.com/klassmaster/?
--------------------------------------------------------------------------------
The Marvin Obfuscator : http://drjava.de/obfuscator/?
--------------------------------------------------------------------------------
ProGuard : http://proguard.sourceforge.net
--------------------------------------------------------------------------------
Retroguard : www.retrologic.com
--------------------------------------------------------------------------------
Shroudit : www.lnk.com/products.html?
--------------------------------------------------------------------------------
Smokescreen : www.leesw.com
--------------------------------------------------------------------------------
Saffeine : www.saffeine.com
--------------------------------------------------------------------------------
CodeShield : www.codingart.com/codeshield.html?
--------------------------------------------------------------------------------
JObfuscator : www.jobfuscator.com
--------------------------------------------------------------------------------
JavaGuard : http://sourceforge.net/projects/javaguard/?
--------------------------------------------------------------------------------
JGuard : www.yworks.com/en/products_yguard_about.htm?
-------------------------------------------------------------------------------
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.02.2005, 16:11 Nach oben    #11
Tramp
Gast
 
Beiträge: n/a
Standard

Super danke... das war ja mal ne Liste.....

Welcher ist denn empfehlenswert ?

Ich neige allerdings dazu sourceforge Projekte zu preferrieren, da diese nicht nur kostenlos sind, sondern auch lehrreich
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.02.2005, 16:52 Nach oben    #12
Erfahrener Benutzer
 
Registriert seit: 02.02.2005
Beiträge: 539
Standard

Gibt mittlerweile aber auch schon decompiler für die das (fast) kein Problem mehr ist! Jaja der Fortschritt der Technik ...
Gottzilla ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.02.2005, 17:55 Nach oben    #13
McSnoop
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Hobbit_im_Blutrausch
Gibt mittlerweile aber auch schon decompiler für die das (fast) kein Problem mehr ist! Jaja der Fortschritt der Technik ...
so in der art hab ich es ja auch schon beschrieben, es gibt einfach keinen perfekten
"obfuscator"

dieser müsste es irgendwie fertig bringen die strukturen so zu zerlegen das das proggie trotzdem ausfürbar bleibt aber für De-Compiler keinen Sinn machen. =)

aber bis das der stand der technik wird denk ich mal wird noch ein weilchen vergehen. =)

als Decompiler nutze ich :

DJ Java Decompiler

naja und geben gibt es auch noch ne Menge: z.b. JAD (imom wohl der schnellste =))

obfuscatoren: setze ich im mom noch nicht ein, ich lese sehr viel über das thema

bei den Projecten die ich im mom bearbeite macht es keinen Sinn dort die quellen durcheinander zu wurschteln, weil sie eh für alle intern zugänglich sind. =)

Alle nicht internen Personen haben eh keinen zugriff auf die Quellen. =)
 
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.02.2005, 19:23 Nach oben    #14
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 582
Standard

Hallo,

also zum Thema Obfuscator:

Ich verwende ProGuard für meine Handyprogramme.
Allerdings nicht damit der Code verschleiert wird, sondern weil die .class-Datei dadurch kleiner wird. Und bei j2me kämpft man unter Umständen um jedes Byte.

Das DeCompilieren von Java-Programmen ist kein Problem.
FrontEnd ist ein Decompiler, basierend auf JAD, der bei einer .class-Datei ohne Obfuscater unter Umständen sogar wieder die Original Variablennamen wiederherstellt.
Proguard ersetzt Methoden-, Klassen- und Variablennamen komplett und sorgt dabei sogar noch für einen "sauberen" Code, nicht verwendete Methoden werden einfach nicht mit kompiliert.
Außerdem sind hinterher goTo Anweisungen im Quelltext.... lustich.

Aber der Quelltext wird daher nicht unmöglich zu lesen.
Deshalb frage ich ja z. B. im Datenbank-Forum auch nach einer sicheren Möglichkeit Passwörter "hardcoded" im Proggi unterzubringen.

Gruß

Sparrow
sparrow ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45