4

假设我有一个从设备获取的恶意软件应用程序,使用 smali 或 dedexter 或 dex2jar 对其进行逆向是可以的,但我想实际调试它,而不仅仅是执行静态分析。

甚至可能吗?我不确定 dalvik VM 调试功能是如何工作的,因为他们应该知道单步执行哪一行代码属于哪一个 dalvik 操作码行,我不确定元数据在哪里,有人有经验吗?当然,我可以尝试使用 dex2jar 并创建一个 eclipse 项目,但我也在寻找一种从 dalvik 执行此操作的方法,这意味着能够单步执行 dalvik byecode 行。

找不到任何这样做的开源项目,我不确定即使 Ida Pro 允许它。

有人有线索吗?

4

2 回答 2

2

您当然可以这样做,并且毫无问题地调试恶意软件应用程序。Ida 允许您以非常流畅和温和的方式进行操作,您只需将 apk 中的 classes.dex 打开到 IDA PRO 并配置 Davilk 调试器。但是,您也可以像使用 eclipse 编写应用程序一样执行此操作。

唯一的限制,由于应用程序清单不允许您调试它(假设最坏的情况和智能恶意软件),您需要有一个工程师设备,以便您可以连接您的 IDA Pro 或调试器,我的意思是一个设备

$ getprop ro.debuggable
1
$ getprop ro.secure
0

如果您可以解锁设备的引导加载程序并在 initfiles 中编辑 ramdisk 设置 ro.debuggable=1 和 ro.secure=0,那么满足这些条件也非常容易。或者,如果您的设备已植根,则可以使用 setpropex 以这种方式轻松更改只读属性。

# ./setpropex ro.debuggable 1
# ./setpropex ro.secure 0

github 到 setpropex https://github.com/poliva/rootadb/blob/master/jni/setpropex.c

于 2015-12-14T16:24:39.093 回答
0

我没有尝试这种方法,但这是可能的。为此,您需要下载旧版本的apktool 1.4.1netbeans 6.8据称,在较新的版本上,该方法不起作用。

您可以在此处观看如何执行此操作的视频,也可以阅读这篇描述如何使用 smali 代码执行调试的文章。

我在一个流行的俄罗斯 IT 网页上阅读了这些方法。以下是这些文章的链接:首先扩展名。如果您懂俄语,有分步说明如何执行调试。如果您不这样做,谷歌翻译可以帮助您抓住这个想法。

如果您有一些不清楚的地方,我会尽力帮助您。

于 2013-03-05T14:45:21.803 回答