Questo sito utilizza cookie di terze parti per inviarti pubblicità in linea con le tue preferenze. Se vuoi saperne di più clicca QUI 
Chiudendo questo banner, scorrendo questa pagina, cliccando su un link o proseguendo la navigazione in altra maniera, acconsenti all'uso dei cookie. OK

Tecniche di protezione del software in Java Bytecode

In questa tesi vengono presentate alcune tecniche completamente originali, cioè ideate dall'autore, di offuscamento e watermarking di programmi Java Bytecode.

La tecnica di offuscamento presentata sfrutta la difficoltà presente in tutti i decompilatori Java testati (Jad, Jode, Source Again, Soot) di tradurre ad alto livello un particolare tipo di istruzioni Java Bytecode. La potenza di questa tecnica sta nel fatto che il codice ad alto livello generato dai decompilatori che operano su programmi Java Bytecode offuscati è o non ricompilabile, in quanto sintatticamente errato, oppure sintatticamente corretto ma semanticamente differente rispetto al codice originale.

La tecnica di watermarking sfrutta alcune caratteristiche dell'offuscamento introdotto in precedenza e sfrutta inoltre l'operazione della composizione di offuscamenti, la quale, usata in modo opportuno, porta a dei risultati molto interessanti.

Mostra/Nascondi contenuto.
Introduzione Il Java e` ormai divenuto uno dei linguaggi di programmazione piu` diffusi e apprezzati. I programmi scritti in Java, infatti, godono di almeno due caratteristiche che la maggior parte degli altri linguaggi non riescono a sod- disfare: la portabilita`, cioe` la possibilita` di eseguire lo stesso programma su piattaforme hardware e software differenti, e la sicurezza, poiche´ la politica di questo linguaggio impedisce alla gran parte dei codici malevoli di creare danni nel computer su cui sono eseguiti. Questa seconda caratteristica, in particolare, e` quella che ha favorito la grande diffusione delle applet Java, cioe` vero e proprio codice Java che viene inserito all’interno di una pagina WEB e viene in seguito scaricato ed eseguito nel computer del client che visualizza questa pagina. D’altro canto, il linguaggio Java presenta anche una caratteristica che in molti casi non e` desiderabile, cioe` la relativa facilita` con cui, dato un codice eseguibile, e` possibile risalire al codice ad alto livello originario. Un programma scritto in Java, infatti, una volta compilato viene trasformato in un altro programma, avente la stessa semantica, scritto nel linguaggio inter- medio (cioe` ne´ ad alto ne´ a basso livello) Java Bytecode, solitamente salvato in un file con l’estensione .class. Il problema e` che questi file .class con- tengono al loro interno una grande quantita` di informazione su quello che era il proprio codice sorgente, quindi e` relativamente facile creare dei pro- grammi, chiamati decompilatori, che, partendo da un file .class, riescano a ricostruire il suo codice ad alto livello. Abbiamo detto che questo non e` un fatto apprezzabile, in quanto permette ad un possibile nostro concorrente di impossessarsi della nostra proprieta` intellettuale, e magari di “rubarci” qualche pezzo di codice particolarmente innovativo al fine di inserirlo in un proprio programma e di farci concorrenza sleale. L’obbiettivo principale di questa tesi sara` quello di presentare alcuni metodi per contrastare i “furti” di questo tipo in due modi: attraverso l’offuscamento di codice e attraverso il watermarking. La finalita` dell’offu- scamento di codice e` quella di applicare ad un programma alcune trasforma- zioni che non influiscano sulla sua semantica, ma che introducano un certo grado di confusione e di incomprensibilita` della sua logica interna, al fine di ostacolarne la comprensione e quindi lo scippo delle nostre idee. Il water- marking invece e` l’introduzione all’interno di un programma di una sorta di xiii

Laurea liv.II (specialistica)

Facoltà: Scienze Matematiche, Fisiche e Naturali

Autore: Alessandro Brunelli Contatta »

Composta da 99 pagine.

 

Questa tesi ha raggiunto 3966 click dal 11/12/2007.

 

Consultata integralmente una volta.

Disponibile in PDF, la consultazione è esclusivamente in formato digitale.