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?

  • Error de GCM - googleCloudMessaging.register
  • ¿Los dispositivos Android tienen una dirección IP estática?
  • ¿Cómo quitar el texto emergente de la búsqueda del android de búsqueda mientras que busca?
  • Método checkSelfPermission no funciona en targetSdkVersion 22
  • ¿Cómo agregar divisores entre elementos de menú específicos?
  • Fuentes personalizadas en Android
  • Android enviando muchos mensajes SMS
  • Cómo cambiar la etiqueta de actividad de Android
  • Firebase Notificaciones FCM click_action carga útil
  • Luz de punto libgdx no funciona en la malla generada
  • Android RelativeLayout Selector state_pressed no funciona
  • Altura mínima del botón de Android: 48dp = 9mm?
  • 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.