Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Ricompilazione file .class
Forum - Java - Ricompilazione file .class

Avatar
modder91 (Normal User)
Newbie


Messaggi: 3
Iscritto: 24/11/2009

Segnala al moderatore
Postato alle 21:57
Martedì, 24/11/2009
Questo topic è stato chiuso dal moderatore

spero possiate essermi utili:
ho decompilato un file class (originariamente era in un jar di un gioco per cell, che aveva l'accelerometro al contrario) con Cavaj e ora quando vado a ricompilarlo con javac mi da 23 errori.. forse ha decompilato male?:d

PM
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 23:25
Martedì, 24/11/2009
Testo quotato

Postato originariamente da modder91:
javac mi da 23 errori.. forse ha decompilato male?:d



a questa domanda si può solo rispondere si :asd:

PM
Avatar
modder91 (Normal User)
Newbie


Messaggi: 3
Iscritto: 24/11/2009

Segnala al moderatore
Postato alle 15:06
Mercoledì, 25/11/2009
Praticamente ho solo bisogno di cambiare delle cordinate (se la mia ipotesi è giusta), non c'è altro metodo oltre a decompilare e ricompilare?!

PM
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 21:21
Mercoledì, 25/11/2009
generalmente no; a meno di andare a modificare a mano il bytecode se conosci il linguaggio pseudocompilato della jvm.

cmq se il programma non è stato ofuscato (il che vuol dire che stai violando la licenza per modificarlo) decompilare e ricompilare, se si conosce il linguaggio java si intende, è fattibilissimo salvo eventualmente qualche imprevisto dove la decompilazione genera codice non proprio esatto (può capitare ma basta dare una sistemata).

PM
Avatar
modder91 (Normal User)
Newbie


Messaggi: 3
Iscritto: 24/11/2009

Segnala al moderatore
Postato alle 15:11
Giovedì, 26/11/2009
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx è il file decompilato. Per invertire l'accelerometro ho pensato di cambiare queste stringhe (ho messo il - davanti):
Codice sorgente - presumibilmente Java

  1. case 1: // '\001'
  2.                 double ad[] = this[i].getDoubleValues();
  3.                 float f3 = 0.0F;
  4.                 int l = ad.length;
  5.                 for(int i1 = 0; i1 < l; i1++)
  6.                 {
  7.                     f3 = (float)ad[i1];
  8.                 }
  9.  
  10.                 if(channelinfo.getName().equals("[b]-axis_x[/b]"))
  11.                 {
  12.                     f = f3;
  13.                 }
  14.                 if(channelinfo.getName().equals("[b]-axis_y[/b]"))
  15.                 {
  16.                     f1 = f3;
  17.                 }
  18.                 if(channelinfo.getName().equals("[b]-axis_z[/b]"))
  19.                 {
  20.                     f2 = f3;
  21.                 }
  22.                 break;



Ecco gli errori che mi da:
http://img510.imageshack.us/i/catturai.jpg/

Ultima modifica effettuata da netarrow il 26/11/2009 alle 18:12
PM
Avatar
netarrow (Admin)
Guru^2


Messaggi: 2502
Iscritto: 12/05/2004

Segnala al moderatore
Postato alle 18:08
Giovedì, 26/11/2009
la modifica non so se è giusta; cioè posso dirti che sintatticamente è giusta in Java, ma dovresti studiarti tu la libreria microedition per sapere come si usano i metodi delle varie classi.
Ad esempio cercando documentazione:
http://library.forum.nokia.com/index.jsp?topic=/Java_Devel ...
O leggendo qualche testo ad esempio mokabyte ha un libro in formato elettronico sullo sviluppo JME.

Per quanto riguarda gli errori sono per lo più di tipo "strano" appunto derivanti dalla decompilazione.

Ad esempio la presenza di goto e di comandi riferiti a codici come:

JVM INSTR dup;
adata;
j;

Metodi quindi palesemente ofuscati, con label nidificate e nomi a caso e parti di codice che il decompilatore non ha ritradotto correttamente (unica soluzione sistemare a mano tutto: un lavorone).

Quindi le cose da dire sono:
- Prima di fare modifiche alla cieca devi studiare il linguaggio e le librerie usate dall'appliccazione (in questo caso JME)

- Stai modificando un software che essendo ofuscato è palese che ha una licenza che non permette di modificarlo e quindi questo forum non può più esserti di supporto.

Ultima modifica effettuata da netarrow il 26/11/2009 alle 18:10
PM