linux – 如何自动激活HIKVISION DS-2CD2512F-IS?

我有一台HIKVISION DS-2CD2512F-IS,而我正试图从Linux机箱中自动执行激活步骤,而我却试图弄清楚如何对Web界面进行逆向工程.设置其他所有内容很简单 – 只需将一堆XML文件上传到URL中,并在URL中嵌入用户名和密码即可 – 但设置密码的初始激活步骤让我变得疯狂.当然,我可以通过网络界面或者通过HIKVISION软件轻松完成……但是如果相机工作完毕,那么全国各地每年都会有一百个不同的人一起激活30个,密码中的拼写错误表示相机无法播放.此外,当然,那些做这件事的承包商在阅读或遵循指示时并不是100%可靠(毫不夸张地说,承包商说“没人告诉我我需要带那个”是很常见的.关于三个不同位置的工作单(粗体),所以我不能确定他们会带一台带有适当软件的笔记本电脑,无论如何都能做到.因此,出于可靠性和劳动力成本的原因,我希望将所有相关内容自动化.到目前为止,我唯一的关键点是相机上的激活步骤.

在所有这些地方,我将在我的控制下运送一个linux盒子(它是一个克隆的图像).我可以在主服务器上放一个bash脚本(以及我喜欢的任何命令行程序),并在机器上分配一个按钮来运行它,没有问题,我有信心自动化除激活之外的所有内容这点.

现在,他们的客户服务团队给我发了一份激活指南(你可以在这里看到:http://docdro.id/ntP7v8w),但是写这篇文章的人显然没有英语作为他们的第一语言.我已经使用WireShark收听我的浏览器和相机之间的交换,它肯定使用引用的API来进行实际的激活.但是,我似乎无法使其发挥作用.到目前为止我的测试脚本……遗憾的是,我似乎无法在这里渲染它.通过相机的javascript(痛苦,因为有人在其上运行最小化,因此没有任何评论,所有变量都是单个字母)表明我需要:

1)生成我的RSA密钥.
2)将我的密钥从base 64更改为二进制.
3)将二进制密钥转换为基本16密钥.
4)将基础16密钥重新编码为基础64.
5)将密钥传输到摄像机(用XML包装).
6)更改基数64的返回值(解开XML后).
7)将提取的信息转换为二进制,将其视为转换的基本16个人类可读整数.
8)将该二进制信息转换为openssl采用的base64.
9)用1来自我的钥匙解密相机的响应.
10)使用所述随机字符串作为AES密钥(其中……很可能会再次涉及步骤7和8)以使用openssl加密我的密码.
11)通过撤消base64转换从该结果中提取二进制数据.
12)将该二进制数据转换为ascii编码的base-16整数
13)将ascii编码的base-16整数转换为base64
14)将其传输到相机(用XML包装)

…而且我正在弄清楚如何在Linux中实现这一目标.有帮助吗?

作为旁注,似乎文档中引用的API页面在激活后仍保持活动状态…这不是我计划实施的问题,因为它们都将位于物理上隔离的网络上,但并不好.

最佳答案
如果您有一个网站,那么只需自动化该网站即可.使用Selenium相当容易,它可能会对您喜欢的语言进行绑定.您可以使用不同的浏览器,包括无头浏览器(如PhantomJS)或任何桌面浏览器无头通过xvfb.

转载注明原文:linux – 如何自动激活HIKVISION DS-2CD2512F-IS? - 代码日志