Adb 授权过程分析

Posted 小源子2016

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Adb 授权过程分析相关的知识,希望对你有一定的参考价值。

adbkey与adbkey.pub

adbkey与adbkey.pub_caibaihui的博客-CSDN博客_adbkey是什么文件

实验证明:手机上的公钥和电脑上的私钥配对成功即可,即使后期我修改电脑上的公钥,不影响之前的授权

例如手机内置了公钥,我电脑上生成配对的私钥即可完成授权

adb pull /data/misc/adb/adb_keys .  里面存放的就是公钥

授权弹窗显示的是RSA密钥指纹应该是根据公钥来的,怎么算出来的还不知道

adb keygen cc 可用于生成RSA公钥和私钥

该信息框中一般会显示主机公钥的指纹(MD5),而不是主机
公钥本身

ADB公钥私钥认证机制_羊舒克的博客-CSDN博客_adb 公钥私钥

可用如下命令生成主机公钥指纹:

$ awk "print $1" < adbkey.pub | openssl base64 -A -d -a | openssl md5 -c | awk "print $2" | tr "[:lower:]" "[:upper:]"
23:B2:47:E1:08:DE:5A:3B:58:5A:A5:A6:FA:98:E0:50
 

实际上我使用这个命令发现生成的和我看到的弹窗不一样,准备放弃,发现新的文章

windows - 如何在Windows上获取RSA公钥的MD5指纹? - Thinbug

重点就是我需要修改下.rsa文件,去除最后的user@domain.com文本信息,然后再我的mac电脑

执行awk "print $1" < adbkey.pub | openssl base64 -A -d -a | openssl md5 -c | awk "print $2" | tr "[:lower:]" "[:upper:]",结果显示,生成的指纹信息和弹窗上的指纹信息就完全一致了

总的来说就是要先分别base64和md5处理才可以

为此,我需要知道文件中的实际密钥是base64编码的部分,即long cryptic string of characters。在我的情况下,键字段后面总是跟着用户 - 主机字段,即类似user@domain.com(也是unknown@unknown)的字符串,在某些字符串中案例前面有一个包含ssh-rsa的字段。

在后一种情况下,我需要过滤第二个字段。在Windows中,显然,这是使用for循环完成的。我还将输出发送到文件以便certUtil进行后续消解,其输出再次进入文件 - 包含不再是base64编码但以字节为单位的密钥 - 最后使用MD5进行哈希处理。

id_rsa.pub的第二个字段中的密钥提取到名为tmp.key_base64的文件中:

以上是关于Adb 授权过程分析的主要内容,如果未能解决你的问题,请参考以下文章

Adb 授权过程分析

adb 连接时候不弹出授权对话框

如何解决 Android ADB 主机设备中未经授权的 ADB 设备?

android默认开启adb调试方法分析

appium界面运行过程(结合日志截图分析)

adb授权root权限,adb能否获得root权限