Hacker利用C++实现send并解密WebSocket 协议

image

分析过程

首先对send 下断点 回到调用函数

image

在这里他首先会发送握手包

image

由于我并没有Hook recv 所以不能接受到服务端返回数据. 用了比较笨的办法:

Sec-WebSocket-Key 的固定长度为 24

我先判断了 是否发送了 长为24字节的数据包....

我这里他是分别发送的 整个握手包不是一次发送完.

我不知道你们那里是什么情况

发送握手包的时候 是明文

image

犹豫我这里Sec-WebSocket-Key 是最后发送. 所以我就简单的判断了一下.

PS: 头顺序无所谓.一旦客户端和服务器都发送了握手信号,如果握手成功,数据传输部分启动。这是双方沟通的渠道,独立于另一方,可随意发送数据。

你们可以依靠服务器返回数据来进行判断 握手是否完成. 嘛 我的先就这样了. 回头再修改.

我只能按照Send的发送数据对比Wireshark中的未解密数据

过滤掉握手包后.

第一次调用Send的时候 buf里面的值 为 4字节的 masking-key 解密时候需要使用.

随后调用Send发送密文

解密代码

image

加密原理

image

最终效果图

image

最后,如果你想学C++可以加入学习群:825414254获取素材资料以及开发工具和听课权限!(此群仅供粉丝学习交流,不是学C++的同学非诚勿扰哦!)

image

你可能感兴趣的:(Hacker利用C++实现send并解密WebSocket 协议)