如何解密通过 whatsapp web 发送的二进制消息

How to decrypt sent binary message by whatsapp web

我正在尝试解码 WhatsApp 网络发送和接收消息。我能够使用 encKeymacKey 解密通过 websocket 接收的二进制消息,但无法搜索解密已发送消息的方法。我正在使用 google chrome 开发工具来复制消息。

白色的是收到的消息,绿色的是发送的。请解释或提供一些我可以获得此信息的资源。

我从发送的二进制数据中删除了前两个字节,其余字节已正确解密。

根据代码 here,

payload = bytearray(messageId) + bytearray(",") + bytearray(to_bytes(WAMetrics.MESSAGE, 1)) + bytearray(
      [0x80]) + encryptedMessage

要发送的 WebSocket 负载是 messageid 和逗号的串联,后跟两个字节,即 bytearray(to_bytes(WAMetrics.MESSAGE, 1))bytearray([0x80]),然后是加密的消息。

考虑到这种格式,我从 Google Chrome 复制了 payload,在第一个逗号处拆分,然后如上所述删除了两个字节。剩下的二进制是加密的消息,可以直接用密钥解密。

 def reverseDecryptMessage(message):
    messageSplit = message.split(",", 1)
    if len(messageSplit) == 1:
      return
    messageContent = messageSplit[1]
    messageContent = messageContent[2:]
    decryptBinary(messageContent)