Avatar billede zubmit Nybegynder
30. juni 2003 - 23:07 Der er 11 kommentarer og
1 løsning

Fra class til java

Jeg har tænkt over om man kan lave en class fil om til en java fil lige som den var før den blev komplieret?

på forhånd tak

//zubmit
Avatar billede a-torsten Nybegynder
30. juni 2003 - 23:10 #1
Bruge en decompiler... fx Dj Decompiler....

http://members.fortunecity.com/neshkov/dj.html

Det eneste den ikke tager med er kommentare, da de heller ikke bliver compilet til class-filer...

-Anders
Avatar billede a-torsten Nybegynder
30. juni 2003 - 23:11 #2
DeCafe er også go...

http://decafe.hypermart.net/

-Anders
Avatar billede simonvalter Praktikant
01. juli 2003 - 00:07 #3
jad er nice brugte den da jeg skulle klare et level på try2hack.nl
http://www.geocities.com/zz_xu/jad.html

dj er vist nok en frontend til jad
Avatar billede arne_v Ekspert
01. juli 2003 - 07:36 #4
Det er ikke kun DJ men også adskillige andre gratis decompilere
der kun er en GUI frontend til JAD.

Hvis man vil gøre decompiling mere vanskeligt, så skal
ens Java programmer obfuscates.

Kommentarer forsvinder som sagt altid.

Med obfuscering, så erstattes alle ikke public navne
typisk med noget i retning af n1, n2, ... - det er
forbløffende som det gør koden svær at læse.
Avatar billede fgsupermand Nybegynder
20. juli 2003 - 19:33 #5
Øhm hvorfor er det overhovet muligt at decompile bytecode ?, det ser jeg som en meget stor grund til ikke at bruge java :/
Avatar billede arne_v Ekspert
20. juli 2003 - 19:41 #6
Hvorfor skulle det ikke være muligt at decompile ?

VB6 og .NET sprogene har samme problem.

Klassisk C/C++/Pascal/Fortran har ikke helt problemet, fordi ganske vist
er det rimeligt nemt at deassemble en executable til assembler kode, men
det er meget svært at generere C/C++/Pascal/Fortran kode.

Forskellen ligger bl.a. i hvor optimeringen ligger. En Java compiler
er en ret simpel compiler - optimeringen foregår først i JVM'en. En C++
compiler er en meget avanceret compiler som laver optimeringen.

Det er jo åbenlyst nemmere a decompile noget der ikke er optimeret
end noget der er optimeret.

Så obfuscating er noget man skal lære at bruge hvis man leverer
Java software til andre og man er bekymret for decompilering.
Avatar billede fgsupermand Nybegynder
20. juli 2003 - 19:55 #7
tjaa obfuscering burde være nok. Det kunne bare være fedt hvis noget af optimeringen (det der er platformsudafhængigt) var op til compileren (det er det måske også ?)
Avatar billede arne_v Ekspert
20. juli 2003 - 20:30 #8
Ikke ret meget.

Og jeg tror at det er et ret bevidst valg.

Fordi class-filer kan jo køres på mange platforme. En gammel 200 MHz
Pentium med Linux, en Athlon XP 2000+ med Windows 2000, en SUN 15000
med 64 CPU'er og Solaris 9 har nok ikke så meget til fælles me dhensyn
til hvad der er en god optimering.
Avatar billede viciodk Praktikant
22. juli 2003 - 20:32 #9
Nøjagtig hvordan "opfuscater" man sine Java-programmer?
Avatar billede arne_v Ekspert
22. juli 2003 - 20:38 #10
Man bruger et obfuscating tool som tager "standard" .class filer
og konverterer til "obfuscated" .class filer.

Tools findes både som command line og som GUI.

I JBuilder kan man bare sætte flueben i Properties Build Obfuscate
så gør den det helt automatisk.
Avatar billede fgsupermand Nybegynder
22. juli 2003 - 21:39 #11
arne_v: hvordan får du den til det ? (hvilken version har du?)

jeg kører med version 9 og når jeg sætter hak i Obfuscate laver den præcis de samme filer som hvis jeg ikke gør det :(
Avatar billede arne_v Ekspert
22. juli 2003 - 22:04 #12
Version 8.

Og den genererer lidt anderledes kode når den obfuscater.

Men den er tilsyneladende ikke særligt god til det.

Jeg plejer at bruge jmangle til det og den kan man konfigurere til
at være ret hård.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester