def onmsg(key, data, replay=False): if key != fhash or key != get_fhash(): print 'revsync: hash mismatch, dropping command' return if 'addr' in data: ea = get_ea(data['addr']) ts = int(data.get('ts', 0)) cmd, user = data['cmd'], data['user'] if cmd == 'comment': print 'revsync: <%s> %s %#x %s' % (user, cmd, data['addr'], data['text']) text = comments.set(ea, user, str(data['text']), ts) MakeComm(ea, text) elif cmd == 'extra_comment': print 'revsync: <%s> %s %#x %s' % (user, cmd, data['addr'], data['text']) text = comments_extra.set(ea, user, str(data['text']), ts) MakeRptCmt(ea, text) elif cmd == 'area_comment': print 'revsync: <%s> %s %s %s' % (user, cmd, data['range'], data['text']) elif cmd == 'rename': print 'revsync: <%s> %s %#x %s' % (user, cmd, data['addr'], data['text']) MakeName(ea, str(data['text'])) elif cmd == 'join': print 'revsync: <%s> joined' % (user) else: print 'revsync: unknown cmd', data
def onmsg(key, data, replay=False): if key != fhash or key != cached_fhash(): print('revsync: hash mismatch, dropping command') return if hook1: hook1.unhook() if hook2: hook2.unhook() if hook3: hook3.unhook() try: if 'addr' in data: ea = get_ea(data['addr']) ts = int(data.get('ts', 0)) cmd, user = data['cmd'], data['user'] if cmd == 'comment': print('revsync: <%s> %s %#x %s' % (user, cmd, ea, data['text'])) text = data['text'] if sys.version_info.major == 2: text = text.encode('utf8') text = comments.set(ea, user, text, ts) set_cmt(ea, text, 0) elif cmd == 'extra_comment': print('revsync: <%s> %s %#x %s' % (user, cmd, ea, data['text'])) text = data['text'] if sys.version_info.major == 2: text = text.encode('utf8') text = comments_extra.set(ea, user, text, ts) set_cmt(ea, text, 1) elif cmd == 'area_comment': print('revsync: <%s> %s %s %s' % (user, cmd, data['range'], data['text'])) elif cmd == 'rename': print('revsync: <%s> %s %#x %s' % (user, cmd, ea, data['text'])) # drop unicode for renaming as it is not supported across older IDA versions text = data['text'].encode('ascii', 'replace') set_name(ea, text) elif cmd == 'join': print('revsync: <%s> joined' % (user)) elif cmd in [ 'stackvar_renamed', 'struc_created', 'struc_deleted', 'struc_renamed', 'struc_member_created', 'struc_member_deleted', 'struc_member_renamed', 'struc_member_changed', 'coverage' ]: if 'addr' in data: print('revsync: <%s> %s %#x (not supported in IDA revsync)' % (user, cmd, ea)) else: print('revsync: <%s> %s (not supported in IDA revsync)' % (user, cmd)) else: print('revsync: unknown cmd', data) finally: if hook1: hook1.hook() if hook2: hook2.hook() if hook3: hook3.hook()
def onmsg(key, data, replay=False): if key != fhash or key != cached_fhash(): print 'revsync: hash mismatch, dropping command' return if hook1: hook1.unhook() if hook2: hook2.unhook() if hook3: hook3.unhook() try: if 'addr' in data: ea = get_ea(data['addr']) ts = int(data.get('ts', 0)) cmd, user = data['cmd'], data['user'] if cmd == 'comment': print 'revsync: <%s> %s %#x %s' % (user, cmd, ea, data['text']) text = comments.set(ea, user, str(data['text']), ts) MakeComm(ea, text) elif cmd == 'extra_comment': print 'revsync: <%s> %s %#x %s' % (user, cmd, ea, data['text']) text = comments_extra.set(ea, user, str(data['text']), ts) MakeRptCmt(ea, text) elif cmd == 'area_comment': print 'revsync: <%s> %s %s %s' % (user, cmd, data['range'], data['text']) elif cmd == 'rename': print 'revsync: <%s> %s %#x %s' % (user, cmd, ea, data['text']) MakeName(ea, str(data['text'])) elif cmd == 'join': print 'revsync: <%s> joined' % (user) elif cmd in [ 'stackvar_renamed', 'struc_created', 'struc_deleted', 'struc_renamed', 'struc_member_created', 'struc_member_deleted', 'struc_member_renamed', 'struc_member_changed', 'coverage' ]: if 'addr' in data: print 'revsync: <%s> %s %#x (not supported in IDA revsync)' % ( user, cmd, ea) else: print 'revsync: <%s> %s (not supported in IDA revsync)' % ( user, cmd) else: print 'revsync: unknown cmd', data finally: if hook1: hook1.hook() if hook2: hook2.hook() if hook3: hook3.hook()