0x00
由于微信封闭了URL Scheme,而且很多城市只能使用小程序的健康码,很不方便。最初实现是直接简单粗暴使用root打开intent,后来发现除了自己谁都用不了,没办法帮别人弄,尝试了两天,终于找到了完全免root的方法。另,intent提取之后就随你发挥用途了,我是直接嵌入了ColorOS的“指纹速启”中,解锁时继续长按指纹就能打开健康码。除此之外还可以写进Macrodroid或Tasker中作为自动任务的一部分,但是需要注意,提取后的intent只适用于自己的手机,换一台设备就要重新提取。
0x01 准备工作
- 能正常开机的Android手机和微信(废话)
- 需要一台电脑并且有adb工具包(别问我adb怎么装)
- 需要手机打开开发者选项并且打开USB调试(同样,别问我怎么打开……)
- Anywhere-【点击下载】或同类程序
- 可以正常工作的脑子和手
0x02 手机上的准备
- 确认桌面上没有其他微信小程序的快捷方式(如果有其他的提取时就分不清哪个是哪个了)
- 打开微信,打开你要提取的小程序,点击右上角的三个点(我拿公众平台助手举例),点击“添加到桌面”,确认之后回到桌面确认一下是否添加上了
0x03 提取Intent
- 将手机使用数据线插到电脑上,国产手机最好在弹出来的弹窗中选择传输文件
- 打开电脑的Powershell,输入
adb shell
,回车 - 输入
dumpsys shortcut | grep WX_SHORTCUT
,回车,此时应该只打印一行,要是发现有多行,那就是桌面上还有其他快捷方式,最好删掉只保留需要提取的,否则就得一个一个尝试。把打印出来的所有文字复制出来备用 - 提取完成,可以删掉手机上的快捷方式了
0x04 数据处理
- 需要用到的只有以下四项:ext_info,digest,id,token。记下来待会要用
- 以anywhere软件为例,要么直接把以上几项都按照图填进去保存,要么按照接下来的步骤直接生成软件对应的导入链接
- 复制以下内容,并把四个中括号替换成刚获取到的四个内容
{"app_name":"测试","category":"","color":-298331,"description":"","execWithRoot":0,"iconUri":"","id":"1667398688491","param_1":"","param_2":"","param_3":"{\"data\":\"\",\"action\":\"com.tencent.mm.action.WX_SHORTCUT\",\"category\":\"\",\"extras\":[{\"type\":\"--ei\",\"key\":\"ext_info_1\",\"value\":\"0\"},{\"type\":\"--ei\",\"key\":\"type\",\"value\":\"1\"},{\"type\":\"--es\",\"key\":\"token\",\"value\":\"【token】\"},{\"type\":\"--es\",\"key\":\"id\",\"value\":\"【id】\"},{\"type\":\"--es\",\"key\":\"digest\",\"value\":\"【digest】\"},{\"type\":\"--es\",\"key\":\"ext_info\",\"value\":\"【ext_info】\"}]}","time_stamp":"1667388984633","type":1}
- 使用在线AES网站,如https://oktools.net/aes,把修改过的内容填进去,然后修改选项:模式——CFB,填充——NoPadding,偏移量——不填,密文编码——base64,密钥——
absintheeeeeeeeeeeeeeeeeeeeeeeee
,然后点加密,复制密文 - 在刚刚复制的密文前面加
anywhere://share/
,用各种方式发给手机,并拷贝到手机的剪贴板中,打开Anywhere-软件会直接弹出页面,先点击左下角的三角右箭头测试一下,能打开的话直接保存就ok了,如果不能打开的话,肯定是操作哪里出了问题,重新试试吧
0x05 后记
使用骚操作嵌入ColorOS的指纹速启
在Anywhere-的编辑页面,点击左下角的三横,点击第一个“添加Shortcuts”,确认后进入系统的设置-密码与安全-指纹-输入锁屏密码-指纹速启-编辑,然后就能在Anywhere的部分找到刚刚添加的项目了
不想使用第三方软件调用并且你有Root
直接用ShortCut应用【点击下载】就可以直接提取出shell命令,使用起来更方便
提取其他Shortcut的Intent
使用命令dumpsys shortcut | grep intent
查看所有或dumpsys shortcut | grep 【应用包名】
查找单个应用的intent