- 积分
- 460
- 金钱
- 411
- 威望
- 0
- 贡献
- 0
- HASS币
- 0
中级会员
- 积分
- 460
- 金钱
- 411
- HASS币
- 0
|
本帖最后由 leetangs 于 2018-12-25 01:51 编辑
手上有三个阿里的杜亚窗帘,一直想接入HA,分析了硬件,还对设备抓包,都没有突破,晚上看了阿里的一些开发文档,发现阿里智能APP提供了开放平台厂测包,采用的是目前线上最新版本阿里智能APP,多了一些调试功能
安卓版的,可以通过摄像头扫二维码,载入远程页面,进行插件开发.
具体文档在这里:
https://open.aliplus.com/docs/h5/guide/
IOS版有日志输出,http抓包信息
根据文档,我简单写了个插件,成功调用设备,再完善一下,勉强能接入HA
写个简单的步骤:
本地局域网新建三个文件
./curtains/main.js 空文件
./curtains/app.js (设备ID通过IOS 版操作设备的时候,查看日志可以得到)
require(['./main.js'],function(main) {
DA.onReady(function(){
DA.uuid = '设备ID';
DA.setDeviceStatus(DA.uuid, {
"scroll":{
"value": "10"
},
});
// DA.loadPage("http://taobao.com/b/app.html", {b:2})
console.log("hi>6");
})
});
./curtains/app.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>杜亚</title>
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport">
<meta content="yes" name="apple-mobile-web-app-capable">
<meta content="black" name="apple-mobile-web-app-status-bar-style">
<meta content="telephone=no" name="format-detection">
<!-- build:css -->
<!-- endbuild -->
<link rel="stylesheet" href="http://api.alink.aliyun.com/sdk/v1/component.css">
<link rel="stylesheet" href="./styles/main.css">
</head>
<body>
<!-- 主视图-->
<!-- build:js -->
<script type="text/javascript" data-main="./app.js" src="http://api.alink.aliyun.com/sdk/v2/sdk.js"></script>
<!-- endbuild -->
<script src="http://api.alink.aliyun.com/sdk/v1/component.js"></script>
</body>
</html>
安卓手机 ADB连接,通过chrome 调试
可以看到APP对服务器的请求:
{api: "mtop.alink.app.core.device.set.status", param: {…}, v: "1.0", post: "1"}api: "mtop.alink.app.core.device.set.status"param: {uuid: "设备ID", setParams: "{"scroll":{"value":"10"},"attrSet":["scroll"]}", target: "", requestContext: "{"alink":"1.0","jsonrpc":"2.0","requestId":1545661141000,"lang":"en","time":1545662117000}"}post: "1"v: "1.0"__proto__: Object "MtopWVPlugin params"
随后窗帘打开10%
以上是非常粗糙的分析和试验
基本验证了,可以通过这种方式间接的操控阿里设备,进而接入HA
如果更进一步,根据开发文档和日志文件,,再加上抓包,分析出阿里智能APP的协议,就可以直接接入HA
退一步,利用阿里智能APP,和一个闲置的安卓手机,调用自己写的JS插件,也能勉强接入
很匆忙,抛砖引玉,希望能有人一起分析完善
---------------------------------------
补充一些信息:
如果扫码打开出错,替换以下相关参数,然后址生成二维码
http://192.168.1.115/curtains/app.html?uuid=设备ID&model=DOOYA_LIVING_CURTAINMOTOR_DT900TE_WA&version=1.0.0&mac=MAC&sn=12345678&category=LIVING&name=DT900TE%2FWA%28D6B2%29&env=jssdk
发现IOS也可以扫码加载插件
-----------------------------------------------------------
安卓抓包更新
有些请求走TCP ,有些走HTTPS
好像设备的操作是走TCP,TCP的协议分析比较麻烦
场景走的是HTTPS,我直接把抓包的数据重放攻击,成功执行
|
评分
-
查看全部评分
|