吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5292|回复: 19
收起左侧

[Python 原创] DSM 7 破解Surveillance Station 9 后,关于时间炸弹的一种解决方法

  [复制链接]
千人千面 发表于 2023-6-7 09:56
本帖最后由 千人千面 于 2023-12-9 11:59 编辑

某NAS DSM7.X版本的Surveillance Station破解授权数量后,基本上每隔30分钟~1小时,摄像机就会显示正在停止。然后就不工作了,这个时候把套件停止后再启用基本上就可以恢复正常了,但是这个方法会导致客户端断开连接,不过,只要你手动去停止摄像头,然后再手动启用摄像头,这个时候它又恢复正常了{:301_1001:}

  
cam1.png

于是我就想,有没有一种方法能自动化这个,停用→启用的过程。
答案是有的,我通过Wireshark抓包,获取了这个操作的POST。然后通过Python脚本来执行这个过程{:301_986:}
由于抓包分析的过程灰常的简单,我这里就不复现这个过程了,下面直接放出Python脚本
脚本很简单,通过自动登录获取cookie,然后发送post请求,自动化禁用,启用这两个操作。
from datetime import datetime
import json
import requests

print('run task',datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3])

# 服务器地址和端口
host = "http://192.168.1.5:5000/webapi/entry.cgi"

params = {
    "api": "SYNO.API.Auth",
    "method": "login",
    "version": "6",
    "account": "你的NAS账号",
    "passwd": "你的NAS密码",
    "format": "sid",
    "session": "SurveillanceStation",
}

loginResult = requests.get(url=host, params=params)
loginLoads = json.loads(loginResult.content.decode("utf-8"))
loginJson = loginLoads.get("data")
logindid = loginJson.get("did")
loginsid = loginJson.get("sid")

# cookie
headers = {
    "Cookie": "id="
    + loginsid
    + "; did="
    + logindid
    + "; svs_dual_auth=; SscLanguage=chs"
}

print("login success...")

# 参数
body = {
    "cameraIds": "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16",#这里你有多少个摄像头就填到多少
    "blIncludeDeletedCam": "false",
    "api": "SYNO.SurveillanceStation.Camera",
    "method": "",
    "version": "7",
}

# 发送请求,先停止
body["method"] = "Disable"
result1 = requests.post(url=host, data=body, headers=headers)
# 输出返回
result1Loads = json.loads(loginResult.content.decode("utf-8"))
result1Json = loginLoads.get("success")

if result1Json:
    print("Disable success...")

# 发送请求,再启用
body["method"] = "Enable"
result2 = requests.post(url=host, data=body, headers=headers)
result2Loads = json.loads(loginResult.content.decode("utf-8"))
result2Json = loginLoads.get("success")
# 输出返回
if result2Json:
    print("Enable success...")

print('Task complate',datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3])

2023年12月9日更新一下,Bash脚本~无需折腾python
直接计划任务运行即可

bash /volume1/xxx/autoEnableCam.sh


#!/bin/bash
echo "run task $(date +'%Y-%m-%d %H:%M:%S.%3N')"
# 服务器地址
host="http://192.168.1.6:5000/webapi/entry.cgi"
# 登录
loginResult=$(curl -s "$host" -G -d "api=SYNO.API.Auth" -d "method=login" -d "version=6" -d "account=你的账号" -d "passwd=你的密码" -d "format=sid" -d "session=SurveillanceStation")
logindid=$(echo "$loginResult" | jq -r '.data.did')
loginsid=$(echo "$loginResult" | jq -r '.data.sid')
# cookie
cookie="id=$loginsid; did=$logindid; svs_dual_auth=; SscLanguage=chs"
echo "login success..."
# 参数
cameraIds="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16"
api="SYNO.SurveillanceStation.Camera"
version="7"
# 发送请求,先停止
result1=$(curl -s "$host" -X POST -d "cameraIds=$cameraIds" -d "blIncludeDeletedCam=false" -d "api=$api" -d "method=Disable" -d "version=$version" -H "Cookie: $cookie")
if [[ $(echo "$result1" | jq -r '.success') == "true" ]]; then
    echo "Disable success..."
fi
# 发送请求,再启用
result2=$(curl -s "$host" -X POST -d "cameraIds=$cameraIds" -d "blIncludeDeletedCam=false" -d "api=$api" -d "method=Enable" -d "version=$version" -H "Cookie: $cookie")
if [[ $(echo "$result2" | jq -r '.success') == "true" ]]; then
    echo "Enable success..."
fi
echo "Task complete $(date +'%Y-%m-%d %H:%M:%S.%3N')"


最后,我们配合NAS自带的任务计划,每隔半小时运行一次

cam2.png


最好是再配合这句,每隔6小时重启一次服务

/usr/syno/bin/synopkg restart SurveillanceStation


收工~


对了,NAS上需要安装Python Pip,大家需要自行百度相关教程,当然,如果有大神可以写一个bash命令行版本的那就简直太棒了

免费评分

参与人数 5吾爱币 +6 热心值 +4 收起 理由
懒散的牛 + 1 + 1 谢谢@Thanks!
junjia215 + 1 + 1 谢谢@Thanks!
xyl52p + 1 用心讨论,共获提升!
daoye9988 + 1 + 1 谢谢@Thanks!
小酒窝 + 2 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
qiu782461893 发表于 2023-6-7 14:38
提示: 作者被禁止或删除 内容自动屏蔽
蓝色形式 发表于 2023-7-7 09:20
超棒的 几乎完美解决了时间炸弹问题
部署期间遭遇了几个小坑
群晖的py默认是没有"requests"库支持的
安装完 py 和 pip后 需要手动部署一下requests库
但是DSM7.0之后直接执行 "pip3 install requests" 会报错
可以通过 get-pip脚本来解决
参考命令:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
执行完毕后就可以顺利 pip3 install requests 了
 楼主| 千人千面 发表于 2023-6-7 09:58
本帖最后由 千人千面 于 2023-6-7 10:02 编辑

写的比较简单,如果有大神改进一下那就简直太棒了
imcuer 发表于 2023-6-7 11:02
学到了!
高锰酸钾 发表于 2023-6-7 13:34
用的白裙,只有一个摄像头。还是谢谢分享。
orchid_inc 发表于 2023-6-8 00:47
求一个破解版
yrxcyq 发表于 2023-6-8 01:13
破解授权数量后,基本上每隔30分钟~1小时
影风 发表于 2023-6-8 18:05
导致停止是因为会发包校验?
ff963738610 发表于 2023-6-8 21:28
谢谢分享。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 16:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表