Nar*_*aki 3 security android malware software-packaging
我一直在阅读很多关于恶意软件编写者如何重新打包现有的benigh android .apk并重新打包它以添加恶意功能.
现在,根据我对.apk文件结构的理解,每个.apk文件都包含一个.dex文件,该文件基本上是java字节转换为.dex格式.此外,该应用程序还有一个名为manifest.xml的二进制XML以及其他资源文件和资产.如果我们必须向应用程序添加额外的恶意功能,那么我们必须修改manifest.xml(可以通过将二进制xml转换回普通xml轻松完成),资源(可以直接替换)和.dex文件.
但.dex文件具有特定的结构.据我所知,对它做的任何修改都应该破坏代码.这些工具使用哪些技术来防止代码破坏,因为如果向原始应用程序添加一些恶意功能,我们实际上是添加一个额外的模块.
有哪些工具可以支持.apk文件重新打包?
谢谢.
编辑:有些成员可能会发现讨论有关逆向工程的问题.Iam研究Android安全工作的学生.我需要知道.apk文件重新打包是如何工作的,因为这是我的研究课题.此外,公开谈论逆向工程并不是恶意行为 - 书籍是关于逆向工程的 - 使用逆向工程进行恶意攻击是恶意的:)
在发布模式下启用proguard.这将使逆向工程变得更加困难.还要检查安全这一开发人员培训文档.
(来自对这个问题的评论)
您可以通过检查签名来验证是否已重新打包包.一些文章可以帮助你:
在运行时检索APK签名.
自我检查APK签名.
如何检查APK签名.
(最初发布广告验证Android apk尚未重新包装?)
我回答了一个关于过去反编译DEX代码的问题.我原来的答案现在可能已经过时,但其他人一直在追问这个问题.以下是其中列出的一些工具的概述.
手动方式
首先,您需要一个工具将DEX上的所有(已编译)类提取到JAR.有一个名为dex2jar,由中国学生制作.
然后,您可以使用JD-GUI来反编译的JAR源代码的类.结果源应该是可读的,因为dex2jar应用了一些优化.
1:http://code.google.com/p/dex2jar/
2:http://java.decompiler.free.fr/?q = jdgui自动方式
你可以使用APKTool.它将自动提取所有类(
.dex),资源(.asrc),然后它将二进制XML转换为人类可读的XML,它也 将为您解组类.
反编译总是比反编译更强大,特别是对于使用Pro Guard进行模糊处理的JAR!只需告诉APKTool 将APK 解码为目录,然后修改 您想要的内容,最后将其编码回APK.就这样.
重要提示: APKTool 无法解决.它不反编译.生成的代码不是Java源代码.但是你应该能够阅读它,如果你熟悉jasmin,甚至可以编辑它 .如果您需要Java源代码,请查看手动方式.
(原始问题:将DEX反编译成Java源代码)