Obecnie zajmuję się kodowaniem Dalvik, ale ponieważ brakuje mi tła kompilatora, stwierdzam, że trochę trudno jest uchwycić projekt. Jestem prawie pewien, że nikt nie napisał książki o Dalvik (albo mógłbym się mylić), więc czy ktoś może zaproponować mi odniesienie do VM Java, które zawiera kilka praktycznych przykładów? Konkretnie, co jestem zainteresowany to:Odniesienie do maszyn wirtualnych Dalvik lub Java?
- Zrozumieć jak interpretować wygenerowany bajtowego kodu
- Korzystanie specyfikacji VM (Dalvik lub Java) dekompilować kod bajtowy do pośredniej reprezentacji, a następnie skompilować go z powrotem
W skrócie, prawdopodobnie to, czego szukam, to poznanie kodu bajtu inżynierii wstecznej, aby móc go analizować pod kątem luk. Jakieś sugestie?
Dla normalnego java '.class' pliki istnieją dekompilatory, które produkują kod źródłowy java, który jest bardzo czytelny. – CodesInChaos
@CodeInChaos: Tak. Mogłem znaleźć kilka dekompilatorów, ale staram się nauczyć, jak napisać prosty dekompilator, aby poczuć, jak działa. – Legend
@CodeInChaos Dekompilatory dla normalnych plików .class nie pomagają zbytnio w Dalvik VM Androida, ponieważ używają zupełnie innej architektury maszyn wirtualnych i całkowicie różnych kodów bajtowych. –