This repository has been archived on 2024-09-10. You can view files and clone it, but cannot push or open issues or pull requests.

87 lines
2.8 KiB
Python

import os
from protobuf import message_pb2
from protobuf import wss_pb2
import gzip
from messages.member import MemberMessage
from messages.like import LikeMessage
from messages.roomuserseq import RoomUserSeqMessage
from messages.gift import GiftMessage
from messages.social import SocialMessage
from messages.chat import ChatMessage
from colorama import init, Fore
# define colors
RED = Fore.RED
GREEN = Fore.GREEN
BLUE = Fore.BLUE
CYAN = Fore.CYAN
MAGENTA = Fore.MAGENTA
YELLOW = Fore.YELLOW
WHITE = Fore.WHITE
RESET = Fore.RESET
init()
def unpackMsgBin(filepath):
response = message_pb2.Response()
wss = wss_pb2.WssResponse()
try:
with open(filepath, 'rb') as f:
path_content = f.read()
wss.ParseFromString( path_content )
decompressed = gzip.decompress(wss.data)
response.ParseFromString(decompressed)
decodeMsg(response.messages)
except Exception as e:
os.remove(filepath)
pass
finally:
os.remove(filepath)
def decodeMsg(messages):
for message in messages:
try:
if message.method == 'WebcastMemberMessage':
member_message = MemberMessage()
member_message.set_payload(message.payload)
member_message.persists()
print(f"\n{RED}[+] {member_message} {RESET}")
elif message.method == 'WebcastSocialMessage':
social_message = SocialMessage()
social_message.set_payload(message.payload)
social_message.persists()
print(f"\n{GREEN}[+] {social_message} {RESET}")
elif message.method == 'WebcastChatMessage':
chat_message = ChatMessage()
chat_message.set_payload(message.payload)
chat_message.persists()
print(f"\n{BLUE}[+] {chat_message} {RESET}")
elif message.method == 'WebcastLikeMessage':
like_message = LikeMessage()
like_message.set_payload(message.payload)
like_message.persists()
print(f"\n{CYAN}[+] {like_message} {RESET}")
elif message.method == 'WebcastGiftMessage':
gift_message = GiftMessage()
gift_message.set_payload(message.payload)
gift_message.persists()
print(f"\n{MAGENTA}[+] {gift_message} {RESET}")
elif message.method == 'WebcastRoomUserSeqMessage':
room_user_seq_message = RoomUserSeqMessage()
room_user_seq_message.set_payload(message.payload)
room_user_seq_message.persists()
print(f"\n{YELLOW}[+] {room_user_seq_message} {RESET}")
except Exception as e:
print(e)