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


¿Cuál es la mejor manera de aprender Smali (y cómo / cuándo usar los opcodes de Dalvik VM)?

Conozco Java, y aprendí C pero nunca lo usé. No conozco ninguna forma de montaje, ya sea para una máquina virtual o para una máquina real.

¿Cuál es la mejor manera de aprender a hackear Smali?

  • Reemplazar el nuevo método dexlib2 fallando
  • ¿Hay apktool en Android? Quiero ensamblar ".smali" y hacer nuevo ".apk" en una aplicación de Android
  • Decompile archivos .smali en un APK
  • Cómo depurar código smali de una aplicación de Android?
  • Conversión directa .java a .smali. ¿Posible?
  • Transformación automática del código dex de Android
  • ¿Cuál es la diferencia de invoke-virtual e invoke-direct en android
  • Modificación de archivos .smali
  • 3 Solutions collect form web for “¿Cuál es la mejor manera de aprender Smali (y cómo / cuándo usar los opcodes de Dalvik VM)?”

    ACTUALIZACIÓN: Como prometí ayer, he añadido más enlaces a la lista.

    Ufff. No hay mucha documentación alrededor! ¿Mejor consejo? Decompile, y lea, y pellizque, y vea cómo lo hizo, e inicie el ciclo una y otra vez. Pero no pediste ese consejo, ¿verdad? 😉

    Ahora, hay unos cuantos lugares por ahí que le ayudarán un poco:

    http://androidcracking.blogspot.com/search/label/smali Este es el mejor. Incluso le pregunté al chico una pregunta y él respondió muy rápidamente, así que ve a echar un vistazo.

    http://pallergabor.uw.hu/androidblog/dalvik_opcodes.html Muy amplia tabla – buena referencia!

    http://webchat.freenode.net/?channels=smali Nunca lo probé, pero está en la página de código de google del autor de baksmali ( http://code.google.com/p/smali/ )

    http://forum.xda-developers.com/showthread.php?t=777707 Por último, este es un post que hice hace un tiempo describiendo algunos hacks a la cámara Captivate. Usted puede seguir las diffs adentro allí como comento un poco en qué cada archivo de .diff está haciendo. Las cosas buenas comienzan en el puesto # 20.

    http://www.slideshare.net/paller/understanding-the-dalvik-bytecode-with-the-dedexer-tool Interesante presentación de diapositivas con algunos conceptos básicos. Buena manera de empezar.

    http://sites.google.com/site/haynesmathew/home/projects/dalvik-notes Nivel aún más bajo que el típico .smali. Una referencia para más tarde, pero una buena lectura.

    http://jasmin.sourceforge.net/guide.html La sintaxis de Smali se basa en Jasmin, por lo que esto da buenos conceptos.

    http://groups.google.com/group/apktool?pli=1 Hay algunas discusiones que vale la pena leer. También es un buen lugar para buscar cuando estás atrapado en algo.

    Y por último, pero no menos importante, el truco más útil que he utilizado: empezar a codificar las clases y métodos muy básicos en java, compilarlos y luego baksmali su propio código. Usted sabe exactamente lo que hace, por lo que será mucho más fácil de seguir.

    ¡Buena suerte!

    Sigo siendo sorprendido que la gente no utilice los documentos oficiales del formato de Dalvik como referencia primaria. En versiones anteriores, los documentos de Dalvik se encuentran en la fuente de Android bajo dalvik / docs. El archivo en particular que querrá ver se llama dalvik-bytecode.html. Algunas versiones de nuevo la definición de bytecode se convirtió en parte de los desarrolladores android.com docs:

    Dalvik-bytecode.html en source.android.com

    Como una comodidad adicional, de vez en cuando reflejo estos documentos en mi sitio web personal. En este caso:

    Dalvik-bytecode.html en milk.com

    Tengo un par de páginas wiki en el sitio smali con alguna información:

    http://code.google.com/p/smali/wiki/Registers

    http://code.google.com/p/smali/wiki/TypesMethodsAndFields

    Y hay ejemplos de código smali que usan cada código de operación en las pruebas de integración para smali / baksmali:

    Pruebas de integración smali

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