问题标签 [smali]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 直接将 .java 转换为 .smali。可能的?
我正在使用 baksmali/smali 工具。但有时我需要将 .java 类编译为 .smali 文件。所以我必须先用 Eclipse 编译它,然后再将 .APK 反汇编成一组 .smali 文件。
是否可以用一个工具直接将 .java 编译成 .smali ?
我自己找不到解决方案...
java - 学习 Smali 的最佳方式是什么(以及如何/何时使用 Dalvik VM 操作码)?
我知道Java,也学过C,但从未使用过。我不知道任何形式的组装,无论是虚拟机还是真实的。
学习如何破解 Smali 的最佳方法是什么?
java - 使用 baksmali 进行 Deodexing - 缺少 java 类 android 实现?
我正在尝试对我的三星 Galaxy S2 设备附带的 ROM 进行拆卸/解译。
我正在使用 baksmali,但无法正确获取两个文件,Email.odex 和 MobilePrint.odex。他们都想要那些似乎没有包含在 ROM 上的任何其他东西的 java 类——javax.swing.abstracttable 和 java.awt.image。
有谁知道这些类的实现是否可用于 Android/DalvikVM?
三星一定用过一些东西。
android - 平板电脑屏幕问题
我正在尝试重写一个应用程序以适应我的屏幕.. 现在一切都可以全屏显示,但控制界面屏幕:(
所以这是我的屏幕图片
http://www.mediafire.com/imageview.php?quickkey=j6r0okbmbfd3a24&thumb=4
红色的布局应该是全屏的,但是框架正在锁定它..所以我看不到完整的布局
http://www.mediafire.com/?p300cpn0t7634v5
apk 文件.. 帮助!!!!
java - 在 Android 源代码中替换/重建 framework.jar
这可能是一个相当疯狂的问题,但在我花时间尝试之前,我想先了解一下。
是否可以重建framework.jar(比如从MIUI中提取framework.jar),将其反编译为smali,然后从头开始重建(通过阅读并将其自己重新制作成java)?
我计划这样做+从 Cyanogen mod 中获取类似的文件作为构建的参考。我对做这一切感兴趣的原因是因为我有一部手机或多或少需要重建无线电接口层,而直接编辑 smali 和调试它变得太麻烦了。
我想我会在这里问,因为人们不会那么快地判断这是否可能。如果您正确添加所有内容(理论上)并在源代码中重建 classes.dex 文件,我不明白为什么它不起作用。
我问的主要原因是将 MIUI 移植到我的手机的一部分。我认为,与编辑 MIUI 附带的 framework.jar 以使其正常工作相比,更令人头疼的是重写 java 并重建一个工作 framework.jar(其中的部分不在 CM7 或 AOSP 源中)。
android - smali 生成的 classes.dex 在 .apk 中不起作用
我试图从 samli 生成的 classes.dex 生成 .apk。但我得到了这些错误:
失败 [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE](当我尝试在模拟器上安装 .apk 时)
失败 [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES](当我尝试在手机上安装 .apk 时)。
以下是我所做的步骤:
- 从现有 .apk 中提取的 classes.dex
- ./baksmali classes.dex
- ./smali out
- mv out.dex classes.dex
- 提取文件夹中的整个 .apk 内容并替换新的 classes.dex
- 生成一个 .zip 文件并将其重命名为 *.apk
- 签署应用程序:jarsigner -verbose -keystore my-release-key.keystore MyFieldTest.apk mykey
这是清单的开头:
我知道该应用程序最初由 HTC 开发人员签名,现在由我签名。但是有没有可能解决这个问题?
谢谢!菲利克斯
java - DalvikVM 操作码的 Smali 语法
序幕
我正在尝试使用用于 dex 文件的 Smali/Baksmali 汇编器/反汇编器来了解 DalvikVM 指令。
问题
从这个java文件
我已经生成了以下 smali 汇编文件:
我的问题是关于以下行。
据我了解,这会将类的静态对象加载PrintStream
到java.lang.System
寄存器v0
中。现在,这是什么out:
意思?
java - 从 APK 反编译的 Java - 什么都不做的 while 循环
我反编译了一个 apk,看到许多 while 循环立即返回,后面跟着其他代码:
如果您想在反编译中生成此代码,您会编写什么 Java 代码来实现这一目标?
笔记。反编译过程是apktool -> baksmali -> smali -> dex2jar
编辑
我实际上无法从 Android APK 获取原始 Java 字节码(至少我不知道如何)。可能是我的工具在逆向工程方面做得很差,但以下是 smali 的输出:
对应于:
android - Android 调试(重新设计的 APK 和 waitForDebugger)
我正在尝试使用 APKTOOL、Smali 等工具以及 Eclipse 和 NetBeans 等 IDE 制定黑盒测试 APK 的方法。我有我需要的大部分东西——我可以反编译/调试仪器/重新编译/签名/对齐并在设备上运行。
我遇到的问题是在附加调试器后设置断点(断点在 Smali 代码中设置)。看来断点没有提交给 Dalvik 或 Dalvik 没有遵守断点。无论哪种方式,当程序遇到断点时,调试器都不会捕捉。一些研究表明我可能需要Debug.waitForDebugger
. (http://stackoverflow.com/questions/3107587/android-with-jdb-confusion-using-waitfordebugger)。
假设是下一个障碍,我可以在调整本地堆栈后waitForDebugger
使用 Smali 语法插入它。invoke-static {}, Landroid/os/Debug;->waitForDebugger()V
我的问题是,我在哪里插入呼叫waitForDebugger
?我应该在静态构造函数 ( )、实例构造函数 ( )还是其他地方选择MainActivity
(来自清单) ?诸如 Eclipse、NetBeans 等 IDE 如何在其调试版本中做到这一点?clinit
init
onCreate