Nwlapcug.com


Codice Byte Java ingegneria d'inversione

Codice Byte Java ingegneria d'inversione


Il reverse engineering è l'arte di dumping i comandi individuali, a livello di macchina che compongono un programma compilato e utilizzarlo per ricreare il codice sorgente originale. Mentre qualsiasi programma compilato può essere inversa progettato, il codice di byte che compongono i programmi Java compilati conservare diverse caratteristiche identificative che rendono decodificazione molto più facile che altro codice compilato.

Codice byte

Java non viene compilato direttamente nel codice leggibile dal computer, ma piuttosto in quello che viene chiamato "codice byte." Il programmatore distribuisce questo codice di byte, e quando gli utenti finali lanciare il programma, la Java Virtual Machine compila il bytecode in codice macchina specifico della piattaforma. Mentre questo dà Java il vantaggio di permettere un codice sorgente singola messo al lavoro su più macchine, il byte code conserva diverse variabili descrittive del codice sorgente che lo rendono più facile per gli hacker di ricostruire il codice sorgente originale.

Reverse Engineering

Gli hacker possono leggere codice byte di un'applicazione Java direttamente, utilizzando la libreria "java.io.inputstream". Con questo, possono visualizzare i componenti di base e comandi di livello del codice byte che costituiscono tale file di classe particolare. Gli hacker possono quindi tenere traccia di diverse variabili attraverso diversi metodi per ricostruire gradualmente il flusso di controllo del programma. Una volta che gli hacker fanno questo, si può replicare il codice sorgente dell'applicazione per diversi scopi dannosi.

Attacchi

Dopo che un hacker inverso ingegneri un particolare programma, ci sono diversi modi si può sfruttare questo per ottenere l'accesso a macchine che eseguire il programma. Questi includono vulnerabilità da sfruttare per rendere il programma di eseguire codice dannoso con autorizzazione dell'utente, o l'esecuzione di un attacco "man in the middle". Nel secondo scenario, l'hacker aggiungerebbe suo proprio codice dannoso codice sorgente dell'applicazione, ricompilarlo e metterlo su Internet con il pretesto del programma originale. Gli utenti inconsapevoli possono quindi scaricare l'applicazione ed eseguire direttamente il codice dell'hacker.

Prevenire il Reverse Engineering

A causa della natura del bytecode di Java, è quasi impossibile impedire a chiunque di visualizzare il codice di byte di nucleo. Mentre i metodi come crittografia è in grado di fornire un grado di protezione, il più efficace è la crittografia, la meno piattaforma-indipendente il programma diventa. I programmatori possono, tuttavia, generare reverse engineer con alcuni trucchi per la codifica. Questi includono la scrittura di funzioni che sono irrilevanti per l'esecuzione effettiva del programma, che può buttare fuori coloro che cercano di decodificare il programma.