def import_data(self, bb_color=0x581414): """ Pretty straightforward, isn't it? ;) @return: dictionary d[tid] = [bb_ea, ...] """ filename = AskFile(1, "*.*", "File to import addresses from?") # Rebase image_base = self.get_image_base(filename) ida_base = get_imagebase() # idaapi delta = image_base - ida_base if delta: # IDA would go ahead with the rebasing process # even if the delta is zero. This avoids it. rebase_program(delta, MSF_FIXONCE) # Parse basic blocks from file trace_dict = self.file_parser(filename) for addr_list in trace_dict.values(): for _, v_ea in addr_list: misc.paint_basic_blocks(v_ea, bb_color) return trace_dict
def _bbTableDoubleClicked(self, row, col): """ This overrides the callback for table's double click set in the CustomWidget object. Apparently if there is an exception it falls back to the original callback... Not sure why this behaviour. NOTE: This is kind of nasty. :return: None """ it = self.table.item(row, col).text() try: idx = int(it) # decimal bb_path = self.ba.cache.bb_paths[idx] col = QtGui.QColorDialog.getColor() if col.isValid(): # IDA works with BGR (annoying) ida_color = misc.pyside_to_ida_color(col.name()) misc.paint_basic_blocks(bb_path, ida_color) else: print '[x] Invalid QColor' return except IndexError: # Address value (does not contain [A-F]) is interpreted as index return except ValueError: # Address value (containing [A-F]) f***s up int() return
def import_data(self, bb_color = 0x581414): """ Pretty straightforward, isn't it? ;) @return: dictionary d[tid] = [bb_ea, ...] """ filename = AskFile(1, "*.*", "File to import addresses from?") # Rebase image_base = self.get_image_base(filename) ida_base = get_imagebase() # idaapi delta = image_base - ida_base if delta: # IDA would go ahead with the rebasing process # even if the delta is zero. This avoids it. rebase_program(delta, MSF_FIXONCE) # Parse basic blocks from file trace_dict = self.file_parser(filename) for addr_list in trace_dict.values(): for _, v_ea in addr_list: misc.paint_basic_blocks(v_ea, bb_color) return trace_dict