Java Code Byte Reverse Engineering

July 29

Java Code Byte Reverse Engineering


Il reverse engineering è l'arte di scarico singoli, comandi a livello macchina che compongono un programma compilato e usarlo per ricreare il suo codice sorgente originale. Mentre ogni programma compilato può essere reverse engineering, il codice di byte che compone compilato programmi Java mantengono diverse caratteristiche di identificazione che lo rendono il reverse engineering molto più facile rispetto ad altri codice compilato.

Codice byte

Java non compila direttamente in codice leggibile a macchina, ma piuttosto in quello che viene chiamato "byte code." Il programmatore distribuisce il codice di byte, e quando gli utenti finali avviare il programma, la Java Virtual Machine compila il bytecode in codice macchina specifico per la piattaforma. Anche se questo dà Java il vantaggio di consentire un unico set di codice sorgente di lavorare su più macchine, il bytecode conserva diverse caratteristiche descrittive del codice sorgente che rendono più facile per gli hacker di ricostruire il codice sorgente originale.

Reverse Engineering

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

attacchi

Dopo un hacker ingegneri invertire un programma particolare, ci sono diversi modi si può sfruttare questo per ottenere l'accesso a macchine che eseguono il programma. Questi includono le vulnerabilità da sfruttare per rendere il programma eseguire codice dannoso con il permesso dell'utente, o l'esecuzione di un "man in the middle" attacco. In quest'ultimo caso, l'hacker dovrebbe aggiungere il 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 Reverse Engineering

A causa della natura di codice Java byte, è quasi impossibile fermare chiunque di visualizzare il codice di byte nucleo. Mentre i metodi come la crittografia in grado di fornire un grado di protezione, tanto più efficace quanto la crittografia è, meno indipendente dalla piattaforma il programma diventa. I programmatori possono, però, buttare ingegneri inversa off con alcuni trucchi di codifica. Questi includono le funzioni di scrittura che sono irrilevanti per l'esecuzione effettiva del programma, che può buttare fuori coloro che cercano di reverse engineering del programma.