Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Conversione da codice java (o da bytecode) a codice nativo

    Salve a tutti,
    premetto che ho letto abbastanza in rete su conversione da codice java (o anche da bytecode) a codice nativo, e anche su offuscatori free e non.

    Espongo il mio problema: ho scritto un programma java e quando lo stavo terminando mi sono accorto (girando in rete) che risalire dal bytecode al codice java non e' cosi' difficile.
    Mi sono quindi imbattuto sugli offuscatori che alla fine modificano solo il codice rendendolo illeggibile...ma un malintenzionato, anche se il codice e' illeggibile, puo' usare lo stesso codice modificando qualche nome di variabile qua e la o modificando leggermente qualche ciclo while o for, ottenendo cosi un nuovo programma (COPIATO) da utilizzare per scopi commerciali, con una nuova licenza...in pratica se io lavoro per esempio 5 mesi per creare un programma, il malintenzionato ci lavora 5 giorni e in piu' puo' difendersi legalmente in quanto il codice ha molte variabili e molti cicli while cambiati (e questa secondo me e' una pecca di java, che si contrappone al vantaggio della sua portabilita').
    Quindi mi sono detto che il metodo migliore per risolvere il probleme e' quello di compilare il mio programma in codice nativo per varie macchine...rinunciando alla portabilita' di un solo file jar...(lo so mi conveniva scrivere il programma in un altro linguaggio, ma ormai l'ho finito di scrivere in java).
    Dunque mi sono messo a cercare in rete i modi (free) per convertire programmi java in codice nativo e ho trovato gcj...ma adesso viene il bello: gcj non e' compatibile con java6 (infatti durante la compilazione mida errore perche' non trova la classe javax.activation.DataContentHandler, che ho visto appartenere a java6).

    Utilizzo gcj cosi:
    gcj --main="packageClasseMain.nomeClasseMain" nomeProgramma.jar -o progCompilato.exe

    La domande sono:
    sbaglio nel modo di usare gcj?
    esiste un metodo alternativo free e legale per compilare in codice nativo i programmi java?

    Grazie a tutti per le vostre risposte.

  2. #2
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    ciao ti do unamezza risposta..
    noi usiamo distribuire come exe i programmi in java..
    in questo modo il malintenzionato non vede nessun codice da decompilare..
    i ma sono 2..
    1) il programma di trasformazione in exe è a pagamento (poco però).. secondo me li vale tutti..
    2) in realtà l'exe al momento dell'esecuzione scompila tutto quanto in una cartella temporanea nascosta nel sistema.. al termine dell'esecuzione la elimina.. ecco non garantisce sicurezza massima ma insomma fa trafficare un po'.. il malintenzionato deve sapere questa cosa dell'exe, recuperarsi i class, decompilarli (e si perde tutti i commenti che potrebbero esser utili) e smanettare sul codice (che non sempre è semplice)

    non so quanto poi bisogna modificare il codice.. mi sembrava di ricordare che deve esser cambiato oltre il 25%.. e mi sembra parecchio... più che qualche nome di variabile e qualche ciclo for..
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  3. #3
    Grazie tantissimo morphy79!
    Quindi un wrapper come exe4j potrebbe essere una garanzia quasi sicura.
    Cercando in rete ho trovato un'altro wrapper gratuito che fa anche il download della macchina virtuale in automatico e permette l'inserimento di opzioni della jre e molto altro;
    si chiama launch4j:

    http://launch4j.sourceforge.net/

    per launch4j dovrebbe valere lo stesso livello di garanzia di exe4j, essendo entrambi dei wrapper.

    Una domanda: hai detto di ricordare che il malintenzionato dovrebbe cambiare il 25% di codice...ma questo vale anche se il mio software non e' registrato e non ha nessun copyright sul codice? (in pratica io non sto registrando il mio software)
    Un'altra domanda: questi wrapper non offuscano il codice; mi dovrei porre il problema di offuscarlo oppure mi consigli di fidarmi solo del wrapper?(ho gia' offuscato qualcosa manualmente con metodi e chiamate inutili che pero' non riducono le prestazioni)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.