22. august 2003 - 08:53Der er
27 kommentarer og 1 løsning
Beskytte min java kode?
Hvordan beskytter jeg min java kode for at blive decompileret og misbrugt? Vi er et par, der har forsøgt at bruge open source projektet RetroGuard, men uden held. Er der nogen der kender dette program og kan guide os igennem det? Eller måske kender et andet program vi kan bruge....
Det er dog stadigvæk en primitiv navne erstatning d.v.s. at det kan stadigvæk fint decompiles med de kendte decompilere, men store Java programmer med manglede navne og uden kommentarer er ikke specielt sjove at rette i.
Groft sagt så compiler man .java -> .class og så obfuscater man .class -> .class - man skal huske at have både sine klasser og evt. ljar-filer og jmange.jar i sin classpath. Options angives comamnd line. Og man skal nok lige fedte lidt med directory struktur og pakke navne inden det virker.
Ovenstående bruger struktur:
src\pakke\*.java med source temp\pakke\*.class med ikke-obfuscated pakke\*.class med obfuscated
Jamen jeg forsøger ihærdigt.. Hvis jeg kun havde en jar fil med navnet AslanRegnskab.jar og den indeholdt en mappe struktur,class filer,en enkelt .jar fil og diverse gif filer hvordan skulle jeg så execute?
C:\e>java -classpath build;\SUNJava\j2sdkee1.3.1\lib\j2ee.jar;\JMangle\jmangle.j ar jmangle -public +map obfu.map build\pakke obfu Jmangle 1.0 for jdk1.1 Copyright 1998 Russell Leighton, all rights reserved Please send comments to jmangle@elegant-software.com
Your class files have been modified. Extensive testing of your program is recommended.
// Decompiled by DJ v3.2.2.67 Copyright 2002 Atanas Neshkov Date: 22/08/2003 12:21:15 // Home Page : http://members.fortunecity.com/neshkov/dj.html - Check often for new version! // Decompiler options: packimports(3)
// Decompiled by DJ v3.2.2.67 Copyright 2002 Atanas Neshkov Date: 22/08/2003 12:21:00 // Home Page : http://members.fortunecity.com/neshkov/dj.html - Check often for new version! // Decompiler options: packimports(3)
package pakke;
import java.io.PrintStream;
public class Klasse {
public Klasse() { }
static void jm0() { int i = 1; byte byte0 = 2; System.out.println(i + " " + byte0 + " = " + (i + byte0)); } }
Jamen jeg kan ikke få den til det. Lad mig forklare nærmere. Jeg har i mappen C:\Documents and Settings\aslan1\Skrivebord\jmangle en mappe som hedder aslan med java filer. Denne mappes struktur seer sådan ud:
Jeg vil gerne at vi lige først prøver med en enkelt mappe.
Når det virker så forsøger vi at få alle mapperne til at virke.
Jeg antager at dine pakker hedder bilag.gui, bilag.model etc. (hvis de hedder aslan.bilag.gui, aslan.bilag.model skal det være en lille bitte smule anderledes).
Du står i jmangle directory.
Først compiler vi (fordi jmangle kører på class filer ikke på java filer).
I første commando javac -classpath aslan;aslan\bilag\gui\*.java giver den denne fejl
C:\Documents and Settings\aslan1\Skrivebord\jmangle>javac -classpath aslan;aslan \bilag\gui\*.java javac: no source files Usage: javac <options> <source files> where possible options include: -g Generate all debugging info -g:none Generate no debugging info -g:{lines,vars,source} Generate only some debugging info -nowarn Generate no warnings -verbose Output messages about what the compiler is doing -deprecation Output source locations where deprecated APIs are us ed -classpath <path> Specify where to find user class files -sourcepath <path> Specify where to find input source files -bootclasspath <path> Override location of bootstrap class files -extdirs <dirs> Override location of installed extensions -d <directory> Specify where to place generated class files -encoding <encoding> Specify character encoding used by source files -source <release> Provide source compatibility with specified release -target <release> Generate class files for specific VM version -help Print a synopsis of standard options
Jeg har ikke taget hsqldb.jar med da den ikke behøver at beskyttes....
Når jeg forsøger således: javac -classpath aslan aslan\bilag\gui\*.java
Får jeg denne fejl:
C:\Documents and Settings\aslan1\Skrivebord\jmangle>javac -classpath aslan aslan \bilag\gui\*.java aslan\kontoplan\funktion\ConnectDB.java:6: package org.hsqldb does not exist import org.hsqldb.*; ^ 1 error
C:\Documents and Settings\aslan1\Skrivebord\jmangle>
Jeg kan hurtig få netbeans til at lave alle class filerne hvis det er?
C:\Documents and Settings\aslan1\Skrivebord\jmangle>java -classpath aslan;hsqld .jar;jmangle.jar jmangle +map obfu.map aslan\bilag\gui obfuversion Jmangle 1.0 for jdk1.1 Copyright 1998 Russell Leighton, all rights reserved Please send comments to jmangle@elegant-software.com Creating: C:\Documents and Settings\aslan1\Skrivebord\jmangle\obfuversion
Your class files have been modified. Extensive testing of your program is recommended.
C:\Documents and Settings\aslan1\Skrivebord\jmangle>
Det gør jeg imorgen... jeg siger tak og opretter lige et nyt spørgsmål så du kan få resten af points. Du er som sædvanligt til stort hjælp arne :-) tak
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.