from protobuf import message_pb2 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() try: with open(filepath, 'rb') as f: response.ParseFromString(f.read()) decodeMsg(response.messages) except Exception as e: pass 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)