示例#1
0
    def setAddr(self, address):

        if self.current_focused_addr == address:
            return
        else:
            idc.jumpto(address)
        f = idaapi.get_func(address)
        # print(f)
        if f == None:
            print("not found function address...")
            return
        g = idaapi.FlowChart(f, flags=idaapi.FC_PREDS)
        target_bb_id = get_bb_id(g, address)
        # print(target_bb_id)

        if self.current_block_start_ea == f.start_ea and self.current_bb_id == target_bb_id:
            return
        else:

            self.recoverColor()
            self.current_block_start_ea = f.start_ea
            self.current_focused_addr = address
            self.current_bb_id = target_bb_id
            self.changeColor()
            ida_graph.refresh_viewer(self.widget_a)
示例#2
0
文件: genmc.py 项目: wondayer/genmc
 def _fit_graph(self, graph):
     if graph:
         gv = graph.GetWidget()
         ida_graph.viewer_fit_window(gv)
         ida_graph.refresh_viewer(gv)
         return True
     return False
示例#3
0
文件: genmc.py 项目: wondayer/genmc
    def _dock_widgets(self, graph, dockpos=kw.DP_RIGHT):
        if graph:
            gv = graph.GetWidget()
            kw.set_dock_pos(kw.get_widget_title(gv), self.title, dockpos)

            gli = ida_moves.graph_location_info_t()
            if ida_graph.viewer_get_gli(gli, gv):
                gli.zoom = 0  # auto-position
                ida_graph.viewer_set_gli(gv, gli, ida_graph.GLICTL_CENTER)
                ida_graph.refresh_viewer(gv)
            return True
        return False
示例#4
0
文件: subtree.py 项目: mfkiwl/lucid
    def _center_graph(self):
        """
        Center the sub-tree graph, and set an appropriate zoom level.
        """
        widget = self.GetWidget()
        gv = ida_graph.get_graph_viewer(widget)
        g = ida_graph.get_viewer_graph(gv)

        ida_graph.viewer_fit_window(gv)
        ida_graph.refresh_viewer(gv)

        gli = ida_moves.graph_location_info_t()
        ida_graph.viewer_get_gli(gli, gv, ida_graph.GLICTL_CENTER) 
        if gli.zoom > 1.5:
            gli.zoom = 1.5
        else:
            gli.zoom = gli.zoom * 0.9

        ida_graph.viewer_set_gli(gv, gli, ida_graph.GLICTL_CENTER)