Attualmente sto cercando nel bytecode di Dalvik ma, poiché mi manca uno sfondo di compilatore, trovo un po 'difficile capire il progetto. Sono abbastanza sicuro che nessuno abbia scritto un libro su Dalvik (o potrei sbagliarmi) quindi qualcuno può suggerirmi un riferimento sulla Java VM che contiene alcuni esempi pratici? In particolare, ciò che mi interessa in sono:Riferimento su Dalvik o Java Virtual Machines?
- capire come interpretare il byte-codice generato
- Utilizzando specifiche VM (Dalvik o Java) per decompilare il codice di byte in una rappresentazione intermedia e quindi compilare nuovamente
In breve, probabilmente quello che sto cercando è di imparare codice byte di reverse engineering in modo da poterlo analizzare per le vulnerabilità. Eventuali suggerimenti?
per Java normale 'file .class' ci sono decompilatori che producono codice sorgente java che è molto leggibile. – CodesInChaos
@CodeInChaos: Sì. Potrei trovare un paio di decompilatori ma sto cercando di imparare come scrivere un semplice decompilatore per avere un'idea di come funzionano le cose. – Legend
@CodeInChaos I decompilatori per i normali file .class non sono di grande aiuto per la macchina virtuale Dalvik di Android, poiché utilizza un'architettura della macchina virtuale completamente diversa e codici byte completamente diversi. –