34

对恶意Android应用Bangle Android App Packer的分析

 5 years ago
source link: http://www.freebuf.com/vuls/178919.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

写在前面的话

近日Trustlook Labs发现了一个恶意安卓应用程序,它使用社会工程手法诱骗用户安装。这个应用程序(MD5:eb9d394c1277372f01e36168a8587016)使用Bangle packer打包。

触发该安装应用程序的主要活动为“com.goplaycn.googleinstall.activity.SplashActivity.”但是,神奇的是在反编译代码中的任何位置都找不到该行为: JNvIVbN.jpg!web

接下来就跟这我们一起来研究研究吧!

审计代码

我们从类SecAppWrapper开始审计,其中有一个“System.loadLibrary”调用load to load”secShell.“模块中的本机层代码,他主要负责从“assets\secData0.jar”中解密和加载应用程序的主要负载,并经过解密的压缩DEX文件。 fYvQRj3.jpg!webfMRVVj3.jpg!web

其中我们发现“secShell”模块中的大多数方法名称都经过混淆,并且在使用时会对其字符串进行解密。 uYBZ7nJ.jpg!web

该应用程序会检测手机中是否安装了框架,如Xposed。Xposed是一个用于在运行时操纵Android应用程序流的框架。 v6jq2mf.jpg!web

R3IbimF.jpg!web 该应用程序还会分离子进程并调用“ptrace”来附加到父进程,以防止调试器进行任何附加尝试。多个进程相互跟踪以确保子进程存活 AF7vUjb.jpg!webUfyqUnZ.jpg!webEvYBreN.jpg!web 该应用程序并且会监视/proc文件系统中的值以检查进程的状态。 FnEJRbF.jpg!web

要说得一点是“secShell”模块中的JNI_OnLoad函数具有两个分支。一个分支负责反调试,另一个分支(位于下面的0x7543EAE4)将主要的DEX模块进行解密。

VNzy6rQ.jpg!web 以下是解密函数: Bfyq2q3.jpg!webqaiA7zj.jpg!web 在绕过反调试后,功能为“p34D946B85C4E13BE6E95110517F61C41”的模块将解密数据。其中寄存器R0包含文件位置,由标题字节“PK\x03\x04”标识.R1存储文件的大小。 aUBJZba.jpg!webreeQBzI.jpg!web 我们可以转储内存: UfaUVbB.jpg!web 解压缩文件后,我们得到可以正常查看的DEX文件: 2uuIFnZ.jpg!web

总结

Android packers是保护合法移动应用开发者知识产权的有价值的工具。然而,它们也可以用于恶意目的,并使分析恶意应用程序更加困难。Trustlook Labs继续致力于识别恶意应用程序以保护我们的客户和移动生态系统。

*参考来源: trustlook ,由周大涛编译,转载请注明来自FreeBuf.COM


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK