移动测试基础 Android 通过 adb 查看已连接的 WIFI 密码

Heyniu · 2016年07月20日 · 最后由 123456 回复于 2016年12月30日 · 4374 次阅读

解决痛点

  • 忘记 WIFI 密码,但是又有新设备要加入,怎么办?

前提

  • 一台 root 过的 Android 设备

知识点

  • WIFI 密码保存在/data/misc/wifi/目录下的conf文件中

解决方案一(有电脑推荐,方便快捷)

  • adb shell 连接手机获取 root 权限,如果返回的字符串中不包含 root 字样,再输入 su 命令回车
  • 继续输入cat /data/misc/wifi/*.conf命令,将会把文件打印出来
  • ssid 表示 WIFI 名称,psk 是 WIFI 密码
  • 此时把 psk 分享出去就完美解决
adb shell
shell@asdad:/ $ su
root@asdad:/ # cat /data/misc/wifi/*.conf

e.g.
network={
  ssid = "WIFI名称"
  psk = "WIFI密码"
  key_mgmt = WPA-PSK
  priortity = 19
  disabled = 1
}

解决方案二(无电脑使用)

  • 手机安装类似 RE 文件管理器的软件
  • 打开 RE 文件管理器,挂载为可读写模式,如果无权限,请授予该软件 root 权限
  • 进入到/data/misc/wifi/目录,打开对应的.conf 文件,如果打不开则复制到/sdcard/目录下打开
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 28 条回复 时间 点赞

这个之前搞过,不过没有记录,现在忘记了。。还是多记啊

#1 楼 @darker50 哈哈,一起加油

#2 楼 @heyniu 你知道 adb 命令访问安卓应用程序数据库怎么访问吗

—— 来自 TesterHome 官方 安卓客户端

#3 楼 @xuexi123 利用 adb shell 连接手机,cd 打开数据库目录,ls 查看当前目录下的数据库文件 db,然后 sqlite3 XX.db 打开这个数据库 可以使用.help 查看支持的命令。不过有些手机没有 sqlite3 这个命令,解决方案一安装 sqlite3,解决方案二数据库导入到电脑查看,解决方案三利用 RE 等文件管理器打开

#4 楼 @heyniu 谢谢你的回复,我执行到你说的打开数据库哪里了,/system/bin/sh: /system/xbin/sqlite3: not executable: magic 7F45 报这个错不知道怎么办 ,网上也找不到解决的办法?
root@dior:/data/data/com.ihydt_zzbank2 # cd databases
cd databases
root@dior:/data/data/com.ihydt_zzbank2/databases # ls
ls
chat
chat-journal
completedChat
completedChat-journal
contanctsdb
contanctsdb-journal
hmdb
hmdb-journal
logdb.db
logdb.db-journal
messagecenter
messagecenter-journal
myselfdb
myselfdb-journal
newMsg
newMsg-journal
person
person-journal
roomsdb
roomsdb-journal
root@dior:/data/data/com.ihydt_zzbank2/databases # sqlite3
sqlite3
/system/bin/sh: /system/xbin/sqlite3: not executable: magic 7F45

#4 楼 @heyniu i 我手机没有 sqlite3 我导入了一个,
1|root@dior:/data/data/com.ihydt_zzbank2/databases # sqlite3 myselfdb
sqlite3 myselfdb
/system/bin/sh: /system/xbin/sqlite3: not executable: magic 7F45

输入 su 之后显示 not found

#4 楼 @heyniu 实际情况有不少手机并没有 root 或者无法 root。
有些安卓浏览器安装后能把 ssid 和密码上传到云端,他们是怎么读取到这些敏感信息的?

#6 楼 @xuexi123 估计你的 sqlite3 并没有导入成功,adb push 路径 +sqlite3 /system/xbin/ 如果不行就是没权限,可以先导入 SD 卡,再 copy 过去

Heyniu #10 · 2016年07月20日 Author

#7 楼 @592861602 no found 是因为手机没 root 哦,这个的前提是手机要 root

Heyniu #11 · 2016年07月20日 Author

#8 楼 @toolsh 我觉得这不可能,WIFI 密码保存的路径必须要有 root 权限才可以操作。假设你的条件成立,那么有 2 种可能情况,第一这些浏览器拥有系统的签名,第二他们诱导了用户输入 WIFI 密码

小米直接扫码就行,哈哈

Heyniu #13 · 2016年07月21日 Author

#12 楼 @jack1785 这就是小米的套路啊,自家的软件签名都是系统签名,相当于有了 root 权限

#11 楼 @heyniu QQ 浏览器安卓版本 6.8.1.2555,设置 -> 扩展功能 -> 免费 WiFi 助手。这个蹭 WiFi 功能,显然是用到了保存在云端的密码等信息。

Heyniu #16 · 2016年07月21日 Author

#15 楼 @toolsh 这个啊,这个是用户分享出去的密码,也就是说是用户自己输入的密码,然后 QQ 浏览器保存在云端的,类似 WIFI 万年钥匙,你觉得呢

#16 楼 @heyniu 用户输入的密码是在系统设置里做的,QQ 浏览器怎么获取到的?

Heyniu #18 · 2016年07月21日 Author

#17 楼 @toolsh 你下载个 WIFI 万能钥匙,然后你分享你已经连接的 WIFI,一切你就明白了

#9 楼 @heyniu push 也操作过,可以成功,copy 也可以,目录下已经有 sqlite3.

—— 来自 TesterHome 官方 安卓客户端

好用么,回去试试看。

#20 楼 @cloudwind 这个用的会比较少

@heyniu 为毛我的手机客服端登录不了 testerhome。。

常用这个方法 解决 wifi 万能钥匙 破解后密码不可见的问题

adb 怎么快速找到 activity 啊?

Heyniu #28 · 2016年12月29日 Author

#26 楼 @friday 当前 activity?就是界面上显示的 Activity?

@heyniu 就是当前 APP 的

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册