【发布时间】:2021-04-01 13:45:50
【问题描述】:
我正在尝试解码 WhatsApp 网络发送和接收消息。我能够使用encKey 和macKey 解密通过websocket 接收的二进制消息,但无法搜索解密发送消息的方法。我正在使用谷歌浏览器开发工具来复制消息。
白色的是收到的消息,绿色的是发送的。请解释或提供一些资源,以便我可以获取此信息。
【问题讨论】:
标签: encryption whatsapp
我正在尝试解码 WhatsApp 网络发送和接收消息。我能够使用encKey 和macKey 解密通过websocket 接收的二进制消息,但无法搜索解密发送消息的方法。我正在使用谷歌浏览器开发工具来复制消息。
白色的是收到的消息,绿色的是发送的。请解释或提供一些资源,以便我可以获取此信息。
【问题讨论】:
标签: encryption whatsapp
我从发送的二进制数据中删除了前两个字节,其余的被正确解密了。
根据代码here,
payload = bytearray(messageId) + bytearray(",") + bytearray(to_bytes(WAMetrics.MESSAGE, 1)) + bytearray(
[0x80]) + encryptedMessage
要发送的 WebSocket 负载是 messageid 和逗号的串联,后跟两个字节,即bytearray(to_bytes(WAMetrics.MESSAGE, 1)) 和 bytearray([0x80]),然后是加密消息。
考虑到这种格式,我从谷歌浏览器复制了有效载荷,在第一个逗号处分割,然后像上面一样删除两个字节。剩下的二进制是加密的消息,可以直接用密钥解密。
def reverseDecryptMessage(message):
messageSplit = message.split(",", 1)
if len(messageSplit) == 1:
return
messageContent = messageSplit[1]
messageContent = messageContent[2:]
decryptBinary(messageContent)
【讨论】: