Avatar billede simonvalter Praktikant
14. august 2004 - 06:23 Der er 8 kommentarer og
1 løsning

java bytecode

Jeg leder efter et værktøj til at gå fra bytecode til en .class eller evt bare ændre direkte i bytecoden.
De værktøjer jeg har kunnet finde har enten ikke virket med nyere class filer eller ville ikke compile.
Er det virklig ikke nogen der har lavet noget af nyere dato som bare virker?

jeg har lige hurtigt skimtet bcel (http://jakarta.apache.org/bcel/) men har ikke sat mig ind i den og hvis der ikke findes andet må jeg jo prøve den. Jeg vil dog foretrække noget mere i retning af bytecode fra
javap -c fil > fil.bc
til
fil.bc > fil.class


Den der kommer tættest på det jeg leder efter er
http://www.bestuff.com/html/mirrors/javaa/
og den vil ikke compile på min fbsd box ;(
Avatar billede arne_v Ekspert
14. august 2004 - 09:06 #1
Det er jo FreeBSD kravet som er problemet. Der er masser til Windows og Linux.

DJ Java Decompiler eller an anden GUI overbygning på JAD bør virke.

Jeg har aldrig haft problemer med JAD.

Jeg har lige checket http://kpdus.tripod.com/jad.html - der er faktisk
en:

Jad 1.5.8c for FreeBSD 4.0 (322311 bytes) - statically linked.

Har du prøvet den ?
Avatar billede arne_v Ekspert
14. august 2004 - 09:08 #2
Andet bud: http://jode.sourceforge.net/

Den er selv i Java så ...
Avatar billede simonvalter Praktikant
14. august 2004 - 17:29 #3
jeg bruger jad i forvejen men som jeg kan se det så er den eneste måde at gøre det på at tage .jad filen og omdøbe den til en .java og compile den på normal måde med alt hvad den er afhængig af. nogen af de ting som jeg sidder og undrer mig over er f.eks hvis man obfuscerer er at man vil kunne kalde objekter reserverede ord som
new if case osv. Men man kan ikke compile en klasse sådan så det må vel blive gjordt direkte i bytecoden?
windows tools kan jeg iøvrigt også bruge hvis det er.
Avatar billede arne_v Ekspert
14. august 2004 - 17:35 #4
Vil du bruge:

.class --(decompiler)--> .java --(whatever)--> .java --(javac)--> .class

eller:

.class --(program)--> .class

?

Hvis det sidste så er BCEL en fremragende løsning. Og så vidt jeg ved en meget brugt
løsning.

Jeg mener at de fleste obfuscatorer bruger sidste model også.

Det er bare lidt nemmere at modificere source code og så bruge standard værktøjer.
Avatar billede simonvalter Praktikant
14. august 2004 - 17:47 #5
Det er denne model jeg leder efter
.class --(program)--> .class

Det var nu heller ikke fordi det skulle være nemt men for at lege lidt direkte med
de instruktioner der er i bytecoden og så se om det virker bagefter
man skulle bare tro der var nogen der havde et godt værktøj til det.

men jeg prøver becl.

Du må godt smide et svar.
Avatar billede arne_v Ekspert
14. august 2004 - 17:59 #6
Alternativer til Jakarta BCEL er:
  ObjectWeb ASM (http://asm.objectweb.org/)
  SERP (http://serp.sourceforge.net/)
  CGLIB (http://cglib.sourceforge.net/)
Avatar billede arne_v Ekspert
14. august 2004 - 17:59 #7
svar
Avatar billede simonvalter Praktikant
14. august 2004 - 18:17 #8
ok tak
Avatar billede simonvalter Praktikant
15. august 2004 - 06:55 #9
fandt http://classeditor.sourceforge.net/ som er udemærket men kan ikke håndtere alt så bcel er at foretrække når man først får sat sig lidt ind i det.
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