mirror of https://github.com/hak5/ToorChat.git
Updated base model
parent
bc02e771c7
commit
37783c85b0
|
@ -12,8 +12,10 @@ class ToorChatProtocol():
|
||||||
self.device.RFxmit(msg.to_string())
|
self.device.RFxmit(msg.to_string())
|
||||||
print msg.to_string()
|
print msg.to_string()
|
||||||
|
|
||||||
def parse_message(self, raw_message):
|
@classmethod
|
||||||
|
def parse_message(cls, raw_message):
|
||||||
message = ToorChatMessage()
|
message = ToorChatMessage()
|
||||||
|
message.raw = raw_message
|
||||||
start_index = raw_message.find(ToorChatProtocol.get_packet_start())
|
start_index = raw_message.find(ToorChatProtocol.get_packet_start())
|
||||||
end_index = raw_message.find(ToorChatProtocol.get_packet_end())
|
end_index = raw_message.find(ToorChatProtocol.get_packet_end())
|
||||||
if start_index == -1 or end_index == -1:
|
if start_index == -1 or end_index == -1:
|
||||||
|
@ -21,8 +23,8 @@ class ToorChatProtocol():
|
||||||
message.start = raw_message[start_index:start_index + 4]
|
message.start = raw_message[start_index:start_index + 4]
|
||||||
message.xid = raw_message[start_index + 4: start_index + 12]
|
message.xid = raw_message[start_index + 4: start_index + 12]
|
||||||
message.user = raw_message[start_index + 12: start_index + 44]
|
message.user = raw_message[start_index + 12: start_index + 44]
|
||||||
message.data = raw_message[start_index + 44: end_index - 4]
|
message.data = raw_message[start_index + 44: end_index]
|
||||||
message.end = raw_message[end_index - 4: end_index]
|
message.end = raw_message[end_index: end_index+4]
|
||||||
return message
|
return message
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
@ -37,12 +39,13 @@ class ToorChatMessage():
|
||||||
''' This is a simple Message object wrapper to make things cleaner '''
|
''' This is a simple Message object wrapper to make things cleaner '''
|
||||||
|
|
||||||
def __init__(self, message = "", user = None):
|
def __init__(self, message = "", user = None):
|
||||||
|
self.raw = None
|
||||||
self.start = ToorChatProtocol.get_packet_start()
|
self.start = ToorChatProtocol.get_packet_start()
|
||||||
self.xid = self.get_random_xid()
|
self.xid = self.get_random_xid()
|
||||||
if user != None:
|
if user != None:
|
||||||
self.user = user
|
self.user = user
|
||||||
else:
|
else:
|
||||||
self.user = "\x00"*32
|
self.user = "\xAA"*32
|
||||||
self.data = message
|
self.data = message
|
||||||
self.end = ToorChatProtocol.get_packet_end()
|
self.end = ToorChatProtocol.get_packet_end()
|
||||||
|
|
||||||
|
|
11
toorchat.py
11
toorchat.py
|
@ -16,7 +16,9 @@ def thread_run(visual):
|
||||||
while not visual.exit:
|
while not visual.exit:
|
||||||
try:
|
try:
|
||||||
msg, timestamp = visual.badge.RFrecv()
|
msg, timestamp = visual.badge.RFrecv()
|
||||||
visual.message_queue.append(msg)
|
toor_message = ToorChatProtocol.parse_message(msg)
|
||||||
|
if toor_message != None:
|
||||||
|
visual.message_queue.append(toor_message)
|
||||||
except ChipconUsbTimeoutException:
|
except ChipconUsbTimeoutException:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@ -51,7 +53,12 @@ class Visualizer():
|
||||||
while True:
|
while True:
|
||||||
self.screen_max_y, self.screen_max_x = self.screen.getmaxyx()
|
self.screen_max_y, self.screen_max_x = self.screen.getmaxyx()
|
||||||
self.screen.addstr(0, 1, "[S] Send Message ")
|
self.screen.addstr(0, 1, "[S] Send Message ")
|
||||||
self.screen.addstr(3,1,"Count:" + str(len(self.message_queue)))
|
if len(self.message_queue) > 0:
|
||||||
|
self.screen.clear()
|
||||||
|
self.__draw_frame__()
|
||||||
|
self.screen.refresh()
|
||||||
|
self.screen.addstr(3,1,"Last Message:" + str(self.message_queue[len(self.message_queue)-1].data))
|
||||||
|
self.message_queue.pop()
|
||||||
entry = self.screen.getch()
|
entry = self.screen.getch()
|
||||||
if entry == curses.KEY_RESIZE:
|
if entry == curses.KEY_RESIZE:
|
||||||
self.__draw_frame__()
|
self.__draw_frame__()
|
||||||
|
|
Loading…
Reference in New Issue