首页
论坛
专栏
课程

[原创] VirtualApp食用新姿势(RatelVa)

2019-6-24 20:42 3569

[原创] VirtualApp食用新姿势(RatelVa)

2019-6-24 20:42
3569
声明:这个东西仅限学习研究使用

1. 起源

之前有一个小姐姐给我看了这个文章:
(VirtualApp技术黑产利用研究报告 ): https://www.freebuf.com/articles/paper/152091.html
其实一直想实现一边,然后找了个周末写了些,我感觉还是一个新的使用姿势

2. 简介

RatelVa是基于virtualAPP实现一个一个单APK改包框架,他利用VA可以打开没有安装的apk的特性,实现对单一APK的二次封包。也就是使用VA作为虚拟化容器再运行另一个APP。这样的话,可以有如下功能


1. 病毒隐藏,项目灵感来源就是哪篇*VirtualApp技术黑产利用研究报告*,可以很容易把一个有毒的APK放置到这个容器里面,然后使用容器运行。这样可以很容易绕过杀毒软件查杀

2. 多开分身,和virtualApp本身的多开使用方式不一样的是。这种方案把va和app糅合在一起了,用户只需要下载一个apk。就可以支持多开了。更加适合普通人使用

3. apk包裹伪装,输出的apk,和原来的apk的的名字logo一样,普通用户可能无法区分。

4. 注入控制,和va一样。由于app运行在我们容器环境中,所以可以轻松控制他。

3. 效果






4. 使用方法

1. 代码环境,使用脚本处理apk

./script/buildAndSign.sh -n 25 ~/Desktop/app/base.apk

上述命令,将会带 ``dist``目录产生25个安装包,切app内容为``~/Desktop/app/base.apk ``

代码环境产生的包,将会自动签名


2. 生产环境,

java -jar script/container-builder-va-1.0.0.jar -n 25 ~/Desktop/app/base.apk

生产环境产生的apk,需要自行签名。不过生产环境不会进行源码构建动作。处理速度会快一些

5.引用


VirtualApp(va引擎): https://github.com/asLody/VirtualApp


VirtualAppEx(va的一个扩展,支持Android9) :https://github.com/xxxyanchenxxx/VirtualAppEx


6. 附源码地址:
https://github.com/virjar/RatelVa



[公告]安全服务和外包项目请将项目需求发到看雪企服平台:https://qifu.kanxue.com

最后于 2019-6-24 20:43 被virjar编辑 ,原因:
最新回复 (20)
Superoot 2019-6-24 21:38
2
0
牛逼,, 先码再看
Elice 2019-6-25 09:36
3
0
先码再看
xxRea 2019-6-25 09:56
4
0
很棒!
roysue 3 2019-6-25 15:45
5
0
有点太666~
bambooqj 2019-6-25 15:54
6
0
66666666
lookaside 2019-7-1 15:52
7
0
随便试了下,crash了....
SunnySmart 2019-7-1 20:08
8
0
意思是,用va去包裹微信?va 1对多变成1对1启动?
virjar 1 2019-7-2 08:55
9
0
lookaside 随便试了下,crash了....
还只是demo,在我的手机好的。所以有日志么?
virjar 1 2019-7-2 08:57
10
0
其实还有各种变种,我只会开源demo
huuio 2019-7-4 16:33
11
0
加 -k参数 运行不了 art环境 好像找不到class 
virjar 1 2019-7-4 21:13
12
0
huuio 加 -k参数 运行不了 art环境 好像找不到class
不加就不会有问题么?
huuio 2019-7-5 08:57
13
0
virjar 不加就不会有问题么?
是的 加k 不是2个包名一样 查找类会不会造成混乱?
virjar 1 2019-7-5 09:50
14
0
huuio 是的 加k 不是2个包名一样 查找类会不会造成混乱?
我去,会混乱。va不支持宿主和内部apk包命相同。不修改package会冲突。。。。这个flag在这种方案下会出问题
huuio 2019-7-5 15:02
15
0
virjar 我去,会混乱。va不支持宿主和内部apk包命相同。不修改package会冲突。。。。这个flag在这种方案下会出问题
那k参数没有意义啊
virjar 1 2019-7-5 16:56
16
0
huuio 那k参数没有意义啊
是的,我拍脑门写的一个,从原理来说。基于VA作为底层引擎的话,必须rename。这个是我的锅了
huuio 2019-7-5 23:18
17
0
virjar 是的,我拍脑门写的一个,从原理来说。基于VA作为底层引擎的话,必须rename。这个是我的锅了
这个问题应该可以解决的 大佬更新下啊!
virjar 1 2019-7-6 01:34
18
0
huuio [em_13]这个问题应该可以解决的 大佬更新下啊!
可以解决,不过基本无法使用VA了。底层有一个contextMap,使用package作为Key。VA在创建app的context的时候,直接走的系统API。系统API再检查的时候,发现同样package已经创建过context,会直接使用缓存。也就是还是拿到VA容器的classloader。直接基于VA修改的话,改动量有点大。弄出来我也不会开源了
huuio 2019-7-6 09:51
19
0
virjar 可以解决,不过基本无法使用VA了。底层有一个contextMap,使用package作为Key。VA在创建app的context的时候,直接走的系统API。系统API再检查的时候,发现同样packag ...
可以改base.apk 的包名安装,然后base获取包名的时候 用va返回原来的包名  这样行不行?
virjar 1 2019-7-6 10:27
20
0
huuio 可以改base.apk 的包名安装,然后base获取包名的时候 用va返回原来的包名 这样行不行?
这样VA的framework层需要适配个遍
miyuecao 2019-7-30 17:10
21
0
mark下
游客
登录 | 注册 方可回帖
返回