adb协议模拟实现静默安装apk

0x0 参考源码

https://github.com/tananaev/adblib

https://github.com/tananaev/rootless-logcat


0x1 原理

第一步,最重要的,一切的前提:Adb tcpip 5555。连接手机,执行命令后,adb deamon会监听0.0.0.0:5555,通过自己的app和这个5555端口通信,模拟adb消息让deamon执行相应的命令。

 

0x2 实现

作者将adb源码里的几个重要的结构用java写了一遍,主要是

1.adb协议的标志头(OKAY,CLSE,OPEN,AUTH等)

2.adb消息的结构(命令、参数、payload长度,payload的checksum、magic以及payload)

3.adb加密方式(RSA加密消息)

大致通信过程如下:

adb协议模拟实现静默安装apk_第1张图片

0x3 拓展

作者用到了adb shell logcat来读取log日志,如何改成install安装?通过查看adb源码:


adb协议模拟实现静默安装apk_第2张图片adb协议模拟实现静默安装apk_第3张图片

作者发送命令为“shell:logcat–v time”,改成“shell:pm install –r my.apk”即可变成静默安装apk。

AdbStream stream = connection.open("shell:logcat -v time");

改为

AdbStream stream = connection.open("shell:pm install -r /storage/emulated/0/HookVulnerable.apk");
 
  


你可能感兴趣的:(Android安全)