包含包名称的 Dex 文件中的 IDA Pro 搜索类

逆向工程 艾达 安卓
2021-07-03 22:55:14

让我们假设我们的 classes.dex 文件有一个类:

com.example.MyClass

其中有一个方法“meth”:

public final com.example.MyClass.meth(java.lang.String p0)

如何/在哪里可以使用字符串“com.example.MyClass.meth”搜索方法“meth”的代码?

因为在 Local Types 视图中我只能找到类但我无法访问代码,并且在 Names/Functions 窗口中我只能搜索以类名为前缀的方法名称(想想你可以用混淆代码得到什么)所以有很多重复。

仅供参考:IDA pro(我使用的是第 7 版)官方支持Dalvik 字节码反汇编和调试

2个回答

有效的是对字符串进行文本搜索,例如com.foo.bar.Method- 在反汇编中按 Alt+T,标记“Match case”、“Identifier”。这应该有助于找到实际的方法主体,至少这是我一直在使用的。

我不认为它是理想的,但我也不知道更好的方法。对于较大的 APK,这可能会很慢,但至少可以解决问题。

你在滥用 IDA Pro,最好是反编译/反汇编实际编译过的代码,而不是 Java。虽然 IDA Pro 有点支持 Java 反编译(我猜你对 Android 的东西感兴趣),但还有更方便的 Java 伪代码反编译器。在我看来,JEB 最适合 Android。不过我最近用得不多。

或者甚至通过grep将整个dex“反编译”成一个文本文件。

https://www.google.com.au/search?q=dex+decompiler

如果您正在查看纯 Java - 同样是大量的“反编译器”。甚至 IntelliJ 也有一个插件 :)