草庐IT

java - 方法和类的smali结构

我最近研究了一些smali代码,很想学习它。我已经检查了dalvik字节码引用,但我找不到关于何时/如何使用这些的结构引用.locals.local.registers.prologue.line.annotation.parameter你知道其他资源来解释更多的smali结构吗? 最佳答案 除了.locals、.registers和.annotation之外,其中大部分都是作为方法的一部分存储的调试信息的一部分。您可以在dex-format的debug_info_item部分找到有关这些的更多信息。文档。对于.locals和.re

android - packed-switch 在 Android 上如何作为 apktool 生成的 smali 工作?

我正在尝试使用apktoold对apk进行逆向工程,它生成的smali包含我不完全理解的packed-switch语句。一个方法包含:packed-switchv0,:pswitch_data_0随后在代码中使用:pswitch_X之类的标签其中X是一个数字,在方法的末尾有::pswitch_data_0.packed-switch0x7f060395:pswitch_4:pswitch_5:pswitch_1.endpacked-switch这到底是做什么的?它看起来像一个跳转到的地方列表,但在什么条件下呢?它对0x7f060395有什么作用? 最佳答案

android - Android 上有 apktool 吗?我想在 Android 应用程序中组装 ".smali"并制作新的 ".apk"

我想在Android应用程序中组装“.smali”并制作新的“.apk”。我没有太多时间来做这件事,所以我必须使用一些已经存在的源代码。有一个可以在Windows/MacOSX/Linux上构建的Apktool项目,但我想在Android上构建它。我还尝试将“apktool.jar”作为外部库包含在Eclipse的Android应用程序项目中,但失败了。经过一些研究,我似乎更清楚我只需要在Android上运行以下两个项目:Smali(独立项目)JarSigner(来自OpenJDK)而且,Apktool不是必需的。这个项目有我需要的:https://code.google.com/p/

android - 将 .java 直接转换为 .smali。可能的?

我正在使用baksmali/smali工具。但有时我需要将.java类编译为.smali文件。所以我必须首先使用Eclipse编译它,然后将.APK反汇编为一组.smali文件。是否可以使用一种工具直接将.java编译成.smali?我自己找不到解决方案... 最佳答案 “javac”或类似程序可用于将源代码转换为.class。Android的“dx”用于将.class转换为Dalvik.dex。可以使用Smali工具处理其结果。您应该能够直接从脚本调用所有这些。 关于android-将

java - smali代码语法中的 ".line"是什么意思? (Android-Smali代码)

Pleasetakealookatthisquestion反编译的smali代码包含诸如.line3或.line7之类的东西。我不明白.line应该是什么,请详细说明用法。 最佳答案 .linen标记用于调试和堆栈跟踪。当未捕获异常或需要填充堆栈跟踪时,行号取自.line语句。如果缺少此项,则堆栈跟踪将缺少行号。 关于java-smali代码语法中的".line"是什么意思?(Android-Smali代码),我们在StackOverflow上找到一个类似的问题:

java - 学习 Smali 的最佳方式是什么(以及如何/何时使用 Dalvik VM 操作码)?

我知道Java,也学过C,但从未使用过。我不知道任何形式的组装,无论是虚拟机还是真实的。学习如何破解Smali的最佳方法是什么? 最佳答案 更新:正如我昨天promise的那样,我在列表中添加了更多链接。呃。周围没有太多文档!最好的建议?反编译、阅读、调整,看看它是怎么做的,然后一次又一次地开始循环。但你没有征求那个建议,对吧?;)现在,有几个地方会有点帮助:http://androidcracking.blogspot.com/search/label/smali这是最好的一个。我什至问了那家伙一个问题,他回答得很快,你去看看吧。

java - 学习 Smali 的最佳方式是什么(以及如何/何时使用 Dalvik VM 操作码)?

我知道Java,也学过C,但从未使用过。我不知道任何形式的组装,无论是虚拟机还是真实的。学习如何破解Smali的最佳方法是什么? 最佳答案 更新:正如我昨天promise的那样,我在列表中添加了更多链接。呃。周围没有太多文档!最好的建议?反编译、阅读、调整,看看它是怎么做的,然后一次又一次地开始循环。但你没有征求那个建议,对吧?;)现在,有几个地方会有点帮助:http://androidcracking.blogspot.com/search/label/smali这是最好的一个。我什至问了那家伙一个问题,他回答得很快,你去看看吧。

java - 反编译 APK 上的 .smali 文件

这个问题在这里已经有了答案:IsthereawaytogetthesourcecodefromanAPKfile?(31个回答)关闭5年前。我下载了APKManager这让我可以解压APK文件。但它只是将其解包,不会将.smali文件反编译为.java。.smali可以反编译成.java吗? 最佳答案 不,APK管理器将.dex文件反编译为.smali和二进制.xml以供人类阅读xml。顺序(基于APKManager4.9)是22选择包,然后9反编译。如果您按1而不是9,那么您只需解压它(仅当您想交换.png图像时才有用)。没有可用