Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di pireda
    Registrato dal
    Jul 2001
    Messaggi
    654

    [JAVA] Java è decompilabile, rischio tutto?

    Vorrei sapere come potrei proteggere un'applicazione Java che presto sarà scaricabile gratuitamente da internet. Mi da molto fastidio sapere che chiunque può decompilarsela e modificarla per utilizzarla a suo piacere.
    Vorrei sapere in particolare se esiste qualche tool di criptazione del codice visto tra l'altro che nell'applicazione saranno presenti i dati per effettuare una connessione FTP sul mio server.
    Maddalena... Perché proprio Iacchetti!...

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Mi spiace, ma il bytecode non è criptabile... altrimenti la JVM come fa ad interpretarlo?
    Diciamo, però, che se il programma è distribuito sotto particolari licenze che vietino la decompilazione e la manipolazione del codice, chiunque non rispetti tale licenza è passibile di provvedimenti legislativi.

    In pratica non puoi impedire la decompilazione in modo "fisico", ma lo puoi fare in modo legale.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di pireda
    Registrato dal
    Jul 2001
    Messaggi
    654
    Non è possibile nemmeno usare algoritmi come MD5 almeno per proteggere i dati più pericolosi?
    Maddalena... Perché proprio Iacchetti!...

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Se non hai necessità di portabilità del tuo programma su S.O. differenti, puoi sempre utilizzare i metodi nativi (per esempio, per l'algoritmo MD5): sono dei metodi che prendono la loro implementazione da librerie esterne compilate (come, per esempio, una DLL).
    In questo modo puoi far sì che i dati più sensibili vengano criptati e che il tuo programma, per poterli utilizzare, si basi su un metodo nativo per la decriptazione.

    Io, personalmente, non ho mai fatto uso di metodi nativi perchè non ne ho mai sentito l'esigienza né ho mai avuto la possibilità di utilizzarli, ma so che esistono (vengono usati anche dalle classi stesse del JDK), però per maggiori informazioni io non ti so aiutare (magari qualcun altro in questo forum ha già avuto a che fare con essi).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    scusa lele, e per la portabilità si possono creare pacchetti diversi :in windows si usano le dll, in mac purtroppo non lo so,cosi' come in linux e cosi' via?
    grazie.

  6. #6
    Tieni presente che il caricamento dei moduli nativi va fatto esternamente a Java.
    In pratica, crei una classe che incapsuli le funzioni che vuuoi richiamare dall'esterno, segnando i metodi con la parola chiave native.
    Quindi compili con javac e crei un header file con javah, dopodiche tutto dipende dal linguaggio che vuoi utilizzare per implementare il codice nativo.
    Folle e' l'uomo che parla alla luna.
    Stolto chi non le presta ascolto.

  7. #7
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    MD5 in Java lo puoi usare usando java.security

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    scusate,ma cos'è md5?

  9. #9
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Originariamente inviato da giuseppe500
    scusate,ma cos'è md5?
    un algoritmo d'impronta di messaggio, ogni stringa in entrata all'algoritmo darà una stringa in uscita univoca per la stringa data.
    Non è possibile tornare indietro dal risultato al sorgente; serve essenzialmente per fare due cose:

    1) Controllare l'integrità dei dati(anche un semplice spazio in + o in meno al sorgente modifica TUTTA l'impronta)
    2) Salvare dati in modo sicuro e confrontarli con dati immesi a run-time, ad esempio se hai una password "ciao" salvi l'impronta di ciao e quando viene inserito a run time la pass viene ricalcolata l'impronta e confrontata con quella vecchia.

    In questo modo è molto più sicuro che salvare la lassword "ciao" in chiaro, senò la si vedrebbe subito.

    E' aggirabile solo con un bruteforce, ma tramite i salt e le interazioni è un algoritmo molto sicuro e usato, come concorrente ha SHA-1, ma c'è una leggenda che dice che per lui ci sia un algoritmo di ritorno... bhà....

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  10. #10
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    da quanto ne so' esistono molti decompilatori di bytecode che funzionano troppo bene, ma esistono anche molti "offuscatori di codice", questi programmi prendono in pasto il tuo programma compilato normalmente, e lo ricompilano, sempre in bytecode, ma stravolgendo il codice in modo da confondere il decompilatore e rendere impossibile da leggere il listato decompilato

    sono tutti programmi commerciali anche abbastanza costosi, non me ne viene in mente nessuno ma se fai una ricerca su google magari trovi qualcosa

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.