Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Referencia sobre Dalvik o Java Virtual Machines?

Estoy buscando en bytecode Dalvik actualmente, pero como me falta un fondo de compilador, estoy encontrando un poco difícil de entender el diseño. Estoy bastante seguro de que nadie ha escrito un libro sobre Dalvik (o podría estar equivocado) por lo que alguien puede sugerirme una referencia en la máquina virtual Java que contiene algunos ejemplos prácticos? En concreto, lo que me interesa son:

  • Entender cómo interpretar el código de byte generado
  • Utilizar las especificaciones de VM (Dalvik o Java) para descompilar el código de bytes en una representación intermedia y luego compilarlo de nuevo

En resumen, probablemente lo que estoy buscando es aprender código de bytes de ingeniería inversa para poder analizarlo por vulnerabilidades. ¿Alguna sugerencia?

  • Cómo tomar imágenes de vídeo o imágenes fijas desde el mismo botón utilizando Android Camera Intent
  • Crea un menú de estilo "ok glass", dentro de la aplicación glass
  • Transiciones de elementos compartidos entre vistas (no actividades o fragmentos)
  • Acerca de RenderScript
  • ¿Cómo agregar divisores y espacios entre los elementos de RecyclerView?
  • Agregando barra de acciones a listactivity
  • Parse Error: Parse # enableLocalDatastore (Context) `debe invocarse antes de` Parse # initialize (Context) `
  • ¿Por qué mi SVG no se carga en Vector Asset Studio
  • RecycleView estableció una altura incorrecta para los elementos
  • Implementación de NotificationListenerService
  • Cómo cambiar el color de la barra de progreso en Android? - (Traté de una manera, y no funciona)
  • Facebook shareDialog no muestra nada
  • 2 Solutions collect form web for “Referencia sobre Dalvik o Java Virtual Machines?”

    Para el material de referencia, nada mejor que los documentos dalvik. Usted puede encontrar estos en el subproyecto dalvik en AOSP, o ahora están disponibles en línea en http://s.android.com/tech/dalvik/index.html

    El formato Bytecode (o dalvik-bytecode.html en el proyecto dalvik) es probablemente el que más le interesa. Formato .dx (dex-format.html) también es útil, al igual que Formatos de instrucciones (instruction-formats.html )

    Para obtener información más general sobre el bytecode, consulta http://code.google.com/p/smali/wiki/Registers y http://code.google.com/p/smali/wiki/TypesMethodsAndFields

    Definitivamente querrá algunas herramientas. Estoy naturalmente muy parcial a smali / baksmali , que es el único ensamblador / desensamblador par actualmente disponible. También hay un desensamblador llamado dedexer (pero no ensamblador), y dexdump, que viene con la base de código AOSP y proporciona un volcado de bajo nivel de archivos dex – no sólo el bytecode, pero todas las estructuras dex también (baksmali tiene salida similar , Con la opción -D).

    También podría interesarle apktool , que utiliza smali / baksmali, pero también tiene la capacidad de revertir los archivos "xml compilados" en un apk.

    Hay un par de herramientas por ahí que convierten bytecode dalvik de nuevo a bytecode java, aunque no creo que estén 100% todavía – undx y dex2jar

    Ya hay herramientas para los archivos .dex de ingeniería inversa para generar una representación legible por humanos de los códigos de bytes. Uno de los más populares es baksmali, que puede encontrar aquí: http://code.google.com/p/smali/ .

    Una descripción de los códigos de bytes se puede encontrar fácilmente por Googling. Aquí estaba el tercer resultado: http://www.netmite.com/android/mydroid/dalvik/docs/dalvik-bytecode.html .

    Si usted es diseños de ingeniería inversa, necesitará un convertidor binario-xml-to-xml también. Hay otra pregunta de desbordamiento de pila que menciona algunas herramientas para hacer eso: Parse versionCode de archivos androide apk

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.