问题标签 [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.

0 投票
2 回答
3486 浏览

eclipse - 将 APK 文件从 Android 手机恢复到 Eclipse

不幸的是,我的电脑被盗了,自动云服务备份似乎是自动的,但它在几个月前就停止了。所以我丢失了我的 Android 应用程序的所有 Eclipse 源文件。

我正在尝试恢复所有这些文件,并希望您能帮助我完成最后的步骤。

所以,我做了什么:

  1. 从 Play 商店下载的 Astro 文件管理器:https: //play.google.com/store/apps/details?id=com.metago.astro&hl=en

  2. 使用 Astro 文件管理器备份我的应用程序并将它们从我的 SD 卡复制到计算机。

  3. 下载 APK 工具:http ://code.google.com/p/android-apktool/ (apktool-install-windows-r04-brut1.tar.bz2apktool1.4.3.tar.bz2)并将它们解压缩到c:\windows文件夹中。

  4. 解码apk:apktool d name.apk

到目前为止一切顺利,但我在这里卡住了。由于我对 Android 编程很陌生:

我得到以下文件夹:ressmali

res 文件夹包含我所有的资源,但是...

我可以看到我以前在src文件夹中的 Eclipse 中的所有文件现在都在smali文件夹中并具有.smali扩展名,但它们看起来完全不同。

有什么方法可以让它们恢复“正常”(Java 代码)?逐步使用某种工具/技巧?

谢谢!

我来到了这个博客:http: //jack-mannino.blogspot.com.es/2010/09/reversing-android-apps-101.html

但是在提取dex2jar 文件后,Eclipse 无法打开.class 文件。有谁能帮忙吗?另外,文件名后面的 $1、$2 等是什么意思?


好的,基本上,我做了什么,但我错过了最后一步(我猜):

  • 安装 Astro 文件管理器
  • 备份应用程序
  • 复制 APK 并使用 dex2jar: 'd2j-dex2jar c:\apk\myappname.apk' 创建 jar 文件
  • 使用 JD (http://java.decompiler.free.fr/?q=jdgui) 创建一个 zipfile
  • 提取压缩文件

所以我可以看到所有的源代码,但是 Manifest 似乎不见了,所以 Eclipse 仍然没有将它作为项目打开。

谁能给我最后的提示?非常感谢!

0 投票
1 回答
1064 浏览

android - Smali 指令具有误导性

我有一个APK。
我使用 apktool.jar 来获取 smali 资源。
但是生成的 smali 文件很奇怪,因为它包含所有针对 v0 的指令。

示例说明:

每个方法最后都有 .array-data 。
对理解这一点有任何帮助吗?

0 投票
4 回答
26846 浏览

android - 修改 .smali 文件

我对一些 android apk 进行了逆向工程,以添加一些用于功能测试的工具。我想知道给定一个 smali 如下我如何添加类似的东西

到 .smali 文件中的每个方法。

0 投票
5 回答
2036 浏览

android - Android的dex代码自动转换

我想转换/检测 Dex 文件。转换的目标包括测量代码覆盖率。请注意,源文件不可用。所以检测 Dex 是唯一的选择。

我想知道是否有任何现有的代码库可以作为示例来编写工具来实现我的目标。

我知道 Smali 项目和许多其他基于 Smali 的项目。但是,这些项目都不是我的目的的好例子。

我正在寻找自动转换 smali 代码或 dexlib 表示的代码,从中生成 smali。出于我的目的,后一个选项是首选,因为可以避免生成 smali 的开销。

0 投票
1 回答
360 浏览

android - 通过检查Android应用的smali代码识别泄露的隐私信息

我试图通过检查 Android 应用程序的 smali 代码来检测私人信息的泄漏。到目前为止,我的策略是.. 搜索将个人信息(例如 IMEI、电话号码)替换为变量的代码,然后跟踪该变量直到它被发送到 Internet 或不再使用的地方。

有什么好的工具可以做到这一点吗?

我试过了

  • apkinspector (http://code.google.com/p/apkinspector/)
  • androguard (http://code.google.com/p/androguard/)
  • androwarn (https://github.com/maaaaz/androwarn)

,但这些都不可能做我想做的事。

0 投票
1 回答
1218 浏览

bytecode - 混淆了 smali 代码和 dalvik 字节码规范以及 dex 文件中操作码的真实十六进制

我定义了一个名为DefineFields. 它有一个空的构造函数。当我编译它时,classes.dex文件中的十六进制代码显示如下:

之后我搜索字节码规范,我找到了

我阅读了规范。但我无法完全理解什么是35c. (我知道 c,x 在规范中有解释表。)我想知道的是如何解释 the和 中的10十六进制70100C050C

这些东西与规范操作码不匹配。

0 投票
1 回答
1563 浏览

android - smali (Android):对实例变量进行操作

我正在尝试使用 smali 执行以下操作:

  1. 将私有实例ArrayList字段添加到类
  2. 在类的构造函数中实例化实例字段
  3. add在类的方法之一中对字段进行操作。

这些是相关的代码片段。(我的班级名称是com.mypackage.MyClass(即com/mypackage/MyClass))

# instance fieldssmali 代码部分,我添加了该行

在公共构造方法(.method public constructor <init>()V)中,我添加了这些行

最后,在我想要执行add方法调用的实例方法中,我添加了这些行

然而,线

给我错误(根据logcat)

我将我所做的与在同一方法中的类似方法调用进行了比较,但无法找出问题所在。

任何想法?

谢谢!

0 投票
1 回答
136 浏览

android - smali:处理参数化类

假设我有一个List<E>,我想调用它的add(E object)方法,而我的列表实际上是一个List<String>,我应该如何在 smali 中表示这个调用?

应该是

或者

或者是其他东西?

0 投票
2 回答
6295 浏览

android - smali:字符串常量

除了执行以下操作之外,是否还必须执行其他操作才能将 String 常量加载到寄存器中,然后在方法调用中使用它:

?

以下指令块

给了我以下 logcat 错误消息:

0 投票
1 回答
4695 浏览

java - 如何从 android APK 生成调用图?

我从 Google Play 下载了一些 Android 应用程序。我Smali通过逆向工程工具获得了代码apktool。我想为这些应用程序生成调用图。我在堆栈溢出和谷歌上看到了很多链接,大多数建议的工具要么是 for ,要么c/c++是 for Java,当然,它们需要我没有的源代码。

有没有办法自动生成调用图?谢谢。