假设我有一个恶意软件应用程序,我从设备获得并使用smali或dedexter或dex2jar将其反转是可以的,但我想实际调试它,而不仅仅是执行静态分析。
甚至可能吗?我不确定dalvik VM调试功能是如何工作的,因为他们应该知道单步执行哪一行代码属于哪个dalvik操作码行,我不确定元数据所在的位置,任何人都有使用它的经验? 当然我可以尝试使用dex2jar并创建一个eclipse项目,但我正在寻找一种方法来实现dalvik,这意味着能够逐步通过dalvik byecode行。
无法找到任何这样做的开源项目,我甚至不确定Ida Pro是否允许它。
任何人都有线索?
答案 0 :(得分:1)
您当然可以这样做,并且可以毫无问题地调试恶意软件应用。 Ida允许您以非常流畅和温和的方式完成它,您只需要打开apk中的classes.dex到IDA PRO并配置Davilk调试器。但是,如果您使用eclipse编写应用程序,也可以像执行此操作一样执行此操作。
仅限制,因为应用程序清单不允许您对其进行调试(让我们假设最糟糕的情况和智能恶意软件),您需要拥有一个工程师设备,以便您可以附加您的IDA Pro或Debugger,我的意思是设备
$ 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
答案 1 :(得分:0)
我没有尝试这种方法,但它是可能的。为此,您需要下载apktool 1.4.1和netbeans 6.8的旧版本。据称,在较新版本中,该方法不起作用。
您可以观看视频here如何执行此操作,另请阅读this文章,其中介绍了如何使用smali代码执行调试。
我读到了俄罗斯流行的IT网页上的方法。以下是这些文章的链接:first和it's extension。如果您了解俄语,则会逐步说明如何执行调试。如果你没有Google翻译可以帮助你理解这个想法。
如果你有一些不清楚的地方,我会尽力帮助你。