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

Track-聂风   ·   发表于 2018-08-02 10:52:05   ·   漏洞文章

写在前面的话

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

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

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

审计代码

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

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

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


该应用程序还会分离子进程并调用“ptrace”来附加到父进程,以防止调试器进行任何附加尝试。多个进程相互跟踪以确保子进程存活

该应用程序并且会监视/proc文件系统中的值以检查进程的状态。


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

以下是解密函数:


在绕过反调试后,功能为“p34D946B85C4E13BE6E95110517F61C41”的模块将解密数据。其中寄存器R0包含文件位置,由标题字节“PK\x03\x04”标识.R1存储文件的大小。


我们可以转储内存:


解压缩文件后,我们得到可以正常查看的DEX文件:

总结

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

*参考来源:trustlook,转载自FreeBuf.COM


打赏我,让我更有动力~

0 条回复   |  直到 2018-8-2 | 1235 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.