Example #1
0
    def _showBannedFunctions(self):
        """
        Points to functions banned by Microsoft being used.
        """
        self._console_output("Looking for banned functions...")

        deep_search_f = self.config.deep_dangerous_functions

        if deep_search_f:
            self._console_output("Performing a deep search (based on function name)")

        banned_refs_dict = self.vd.find_banned_functions(deep_search_f)

        if not banned_refs_dict:
            self._console_output("[!] No banned functions found", err = True)
            return

        self.tree_label.setText("Functions banned by Microsoft")
        self.tree.clear()
        self.tree.setHeaderLabels(("Banned function", "References", "Name"))

        for f_name, refs in banned_refs_dict.iteritems():
            bf_item = QTreeWidgetItem(self.tree)
            bf_item.setText(0, f_name)

            for ref_addr in refs:
                ref_item = QTreeWidgetItem(bf_item)
                ref_item.setText(1, "%x" %ref_addr)
                ref_name = misc.get_function_name(ref_addr)
                ref_item.setText(2, ref_name)

        # Display all items expanded initially
        self.tree.expandAll()
    def _init_widgets(self):

        self.clear()

        if self._simgr is None:
            return

        for stash_name, stash in self._simgr.stashes.iteritems():

            if not stash and stash_name not in ('active', 'deadended',
                                                'avoided'):
                continue

            item = QTreeWidgetItem(self,
                                   ["%s (%d)" % (stash_name, len(stash))])

            for state in stash:
                subitem = QTreeWidgetItem(item, [str(state)])
                item.addChild(subitem)

            self.addTopLevelItem(item)

        # errored states
        if self._simgr.errored:
            item = QTreeWidgetItem(
                self, ["%s (%d)" % ('errored', len(self._simgr.errored))])
            for state in self._simgr.errored:
                subitem = QTreeWidgetItem(item, [str(state)])
                item.addChild(subitem)

            self.addTopLevelItem(item)
Example #3
0
    def fill_item(self,item, value):
        item.setExpanded(True)
        if type(value) is dict:
            for key, val in sorted(value.iteritems()):
                child = QTreeWidgetItem()
                x = "{0:.3f}".format(key)
#                 x = key
                child.setText(0, unicode(x))
                child.setFlags(Qt.ItemIsEnabled)
                item.addChild(child)
                self.fill_item(child, val)
        elif type(value) is list:
            for val in value:
                child = QTreeWidgetItem()
                item.addChild(child)
                if type(val) is dict:      
                    child.setText(0, '[dict]')
                    self.fill_item(child, val)
                elif type(val) is list:
                    child.setText(0, '[list]')
                    self.fill_item(child, val)
                else:
                    child.setText(0, str(value.index(val)))
                    child.setExpanded(True)
        else:
            print 'hi'
            child = QTreeWidgetItem()
            child.setText(0, unicode(value))
            item.addChild(child)          
Example #4
0
 def OnCreate(self, form):
     self.setupUi(self)
     self.connect(self.add_trace_button, QtCore.SIGNAL("clicked()"),
                  self.load_trace)
     self.connect(self.disassemble_button, QtCore.SIGNAL("clicked()"),
                  self.disassemble_from_trace)
     self.connect(self.colorize_button, QtCore.SIGNAL("clicked()"),
                  self.colorize_trace)
     self.connect(self.heatmap_button, QtCore.SIGNAL("clicked()"),
                  self.heatmap_trace)
     self.connect(self.dump_button, QtCore.SIGNAL("clicked()"),
                  self.dump_trace)
     self.connect(self.refresh_button, QtCore.SIGNAL("clicked()"),
                  self.refresh_trace_view)
     self.connect(self.traces_tab, QtCore.SIGNAL('currentChanged(int)'),
                  self.trace_switch)
     self.connect(self.traces_tab, QtCore.SIGNAL('tabCloseRequested(int)'),
                  self.unload_trace)
     self.loading_stat.setVisible(False)
     self.progressbar_loading.setVisible(False)
     self.traces_tab.setTabsClosable(True)
     #self.reads_view.headerItem().setHidden(True)
     #self.writes_view.headerItem().setHidden(True)
     self.reads_view.setHeaderItem(QTreeWidgetItem(["name", "value"]))
     self.writes_view.setHeaderItem(QTreeWidgetItem(["name", "value"]))
Example #5
0
    def _showDwordCompares(self):
        """
        Inspects the *whole* binary looking for comparisons between
        global dwords and immediate values. These usually contain error
        codes or alike and appear constantly through the code.
        """

        self._console_output("Looking for Dword compares...")
        self.tree_label.setText("Dword immediate compares")

        dw_dict = self.ba.get_dword_compares()

        # Fill the tree with items
        self.tree.setHeaderLabels(("Dword", "Values", "Address"))

        for dw, values in dw_dict.iteritems():
            dw_item = QTreeWidgetItem(self.tree)
            dw_item.setText(0, dw)

            for value, addr in values:
                value_item = QTreeWidgetItem(dw_item)
                value_item.setText(1, value)
                value_item.setText(2, "0x%x" % addr)

        # Display all items expanded initially
        self.tree.expandAll()
    def buildEdgeList(self):
        ''' populate the ui tree with the edges that can be extended'''
        self.edgeList = []

        treeExists = False
        if self.edges_TW.topLevelItem(0):
            treeExists = True
            parentItem = self.edges_TW.topLevelItem(0)
        else:
            self.edges_TW.clear()
            parentItem = QTreeWidgetItem()
            faceName = self.face_LE.text()
            parentItem.setText(0, faceName)
            self.edges_TW.addTopLevelItem(parentItem)
            self.edges_TW.expandItem(parentItem)

            if not treeExists:
                for edgeNum in self.helperFace.ExtendableEdges:
                    ###### populate the edge tree ######
                    edgeItem = QTreeWidgetItem()
                    edgeItem.setText(0, str("Edge" + str(edgeNum)))
                    checked = QtCore.Qt.Unchecked
                    if edgeNum in self.helperFace.CheckedEdges:
                        checked = QtCore.Qt.Checked
                    edgeItem.setCheckState(0, checked)
                    parentItem.addChild(edgeItem)

        self.loadTools()
Example #7
0
    def update_instruction_informations(self, new_item, old_item):
        index = self.traces_tab.currentIndex()
        try:
            table = self.index_map[index]
            trace = self.core.traces[self.id_map[index]]
            offset = int(table.item(new_item.row(), 0).text())
            inst = trace.instrs[offset]

            #=== Gui stuff
            self.reads_view.clear()
            self.writes_view.clear()
            self.additional_infos.clear()
            for r_w, name, value in inst.registers:
                val_s = hex(value)[:-1] if hex(value).endswith('L') else hex(
                    value)
                infos = [name, val_s]
                widget = QTreeWidgetItem(infos)
                if r_w == "R":
                    self.reads_view.addTopLevelItem(widget)
                else:
                    self.writes_view.addTopLevelItem(widget)
            for r_w, addr, value in inst.memories:
                infos = [
                    "@[%x]" % addr,
                    "".join("{:02x}".format(ord(c)) for c in value)
                ]
                widget = QTreeWidgetItem(infos)
                if r_w == "R":
                    self.reads_view.addTopLevelItem(widget)
                else:
                    self.writes_view.addTopLevelItem(widget)
            for i in range(self.reads_view.topLevelItemCount()):
                self.reads_view.resizeColumnToContents(i)
            for i in range(self.writes_view.topLevelItemCount()):
                self.writes_view.resizeColumnToContents(i)

            if inst.nextaddr is not None:
                self.additional_infos.setHtml("Next addr:<bold>" +
                                              hex(inst.nextaddr)[:-1] +
                                              "</bold>")
            if inst.wave is not None:
                self.additional_infos.append("Wave: " + str(inst.wave))
            if inst.syscall is not None:
                self.additional_infos.append("Syscall:" + str(inst.syscall.id))
            if inst.libcall is not None:
                c = inst.libcall
                s = "Libcall:<span style='color:blue;'>" + str(
                    c.func_name) + "</span>"
                s += "<ul><li>at:" + hex(c.func_addr)[:-1] + "</li>"
                s += "<li>traced: <span style='color:" + (
                    "blue" if c.is_traced else "red") + ";'>" + str(
                        c.is_traced) + "</span></li></ul>"
                self.additional_infos.append(s)
            if inst.comment is not None:
                self.additional_infos.append("Comment:" + inst.comment)
        except ValueError:
            pass
        except KeyError:
            pass
Example #8
0
 def fill_item(self, item, value):  #recursively fills the tree
     item.setExpanded(True)
     for key, val in sorted(value.iteritems()):  #tilts
         child = QTreeWidgetItem()
         child.setText(0, unicode(key))
         child.setFlags(Qt.ItemIsEnabled)
         item.addChild(child)
         for keykey in sorted(val.keys()):  #imgIDs
             childchild = QTreeWidgetItem()
             child.addChild(childchild)
             childchild.setText(0, str(keykey))
             child.setExpanded(True)
             childchild.setExpanded(True)
Example #9
0
 def add_to_tree(self):
     if self.mysql.do:
         self.nDataBase = self.mysql.getDataBase()
         for i in self.nDataBase:
             item_m = QTreeWidgetItem(self)
             item_m.setStatusTip(0, 'main')
             item_m.setText(0, "%s" % i)
             if i in self.li:
                 item_m.setExpanded(True)
             self.table = self.mysql.getTables(i)
             for j in self.table:
                 item_c = QTreeWidgetItem(item_m)
                 item_c.setStatusTip(0, i)
                 item_c.setText(0, "%s" % j)
Example #10
0
 def __make_item(self, name, type_name):
     item = QTreeWidgetItem(None, [name, type_name])
     item.setChildIndicatorPolicy(QTreeWidgetItem.ShowIndicator)
     if type_name == UI.ACTION_GROUP:
         item.setIcon(0,
                      QtGui.QIcon(Options.assets_path + "folder_16x16.png"))
     return item
Example #11
0
 def _addMachineToDeployedList(self, ip_address, comment, host):
     '''Adds the given machine to the list of the user deployed ones'''
     itm = QTreeWidgetItem()
     itm.setText(0, ip_address)
     itm.setText(1, comment)
     itm.setText(2, host)
     self._mywindow.tw_deployed.addTopLevelItem(itm)
 def renderCorpEvent(self, corporateEventPositionDictAsset):
     self.clearTables()
     self.treeCorporateEvent.setColumnCount(3)
     self.treeCorporateEvent.setHeaderLabels(self.columnListCorporateEvent)
     for key, cep in corporateEventPositionDictAsset.items():
         l1 = QTreeWidgetItem(
             [key, str(cep.accGrossAmount),
              str(cep.accNetAmount)])
         for ce in cep.corporateEventList:
             l1_child = QTreeWidgetItem([
                 None,
                 str(ce.grossAmount),
                 str(ce.netAmount),
                 str(ce.paymentDate)
             ])
             l1.addChild(l1_child)
             self.treeCorporateEvent.addTopLevelItem(l1)
    def _init_widgets(self):

        self.clear()

        if self._pathgroup is None:
            return

        for stash_name, stash in self._pathgroup.stashes.iteritems():

            if not stash and stash_name not in ('active', 'deadended', 'avoided'):
                continue

            item = QTreeWidgetItem(self, [ "%s (%d)" % (stash_name, len(stash)) ])

            for path in stash:
                subitem = QTreeWidgetItem(item, [ str(path) ])
                item.addChild(subitem)

            self.addTopLevelItem(item)
Example #14
0
 def _addRunningVmToList(self, lst):
     '''adds a vm to the running vm list from a list of strings'''
     #FIXME: use a dict
     itm = QTreeWidgetItem()
     itm.setText(0, lst[0])
     itm.setText(1, lst[1])
     itm.setText(2, lst[2])
     itm.setText(3, lst[3])
     itm.setText(4, lst[4])
     itm.setText(5, lst[5])
     self._mywindow.tw_running_vms.addTopLevelItem(itm)
Example #15
0
    def update(self):
        """
        Updates listed publishers, newspapers and subscribers
        """
        self.view.publishers.clear()
        self.view.subscribers.clear()

        for publisher in self.publishers.values():
            p_widget = QTreeWidgetItem()
            p_widget.setText(0, publisher.name)

            for newspaper in publisher.newspapers:
                n_widget = QTreeWidgetItem(p_widget)
                n_widget.setText(0, newspaper)

            self.view.publishers.addTopLevelItem(p_widget)

        for subscriber in self.subscribers:
            s_widget = QTreeWidgetItem()
            s_widget.setText(0, subscriber)
            self.view.subscribers.addTopLevelItem(s_widget)
Example #16
0
    def testWidgetIterator(self):
        treeWidget = QTreeWidget()
        treeWidget.setColumnCount(1)
        items = []
        for i in range(10):
            items.append(QTreeWidgetItem(None, ['item: %d' % i]))
        treeWidget.insertTopLevelItems(0, items)

        index = 0
        for it in QTreeWidgetItemIterator(treeWidget):
            self.assertEqual(it.value().text(0), 'item: %d' % index)
            index += 1
Example #17
0
    def cmd_loadList(self):

        self.treeWidget.clear()
        sels = pymel.core.ls(sl=1, type='transform')

        data = []
        for sel in sels:
            widgetItem = QTreeWidgetItem(self.treeWidget)
            widgetItem.setText(0, sel.name())
            widgetItem.setText(1, sel.nodeName().split('_')[-1])
            widgetItem.setFlags(widgetItem.flags() | QtCore.Qt.ItemIsEditable)
            data.append([widgetItem.text(0), widgetItem.text(1)])
Example #18
0
    def _refresh_value_tree(self, directory_info):
        info = sorted(directory_info, key=lambda x: x.total_size, reverse=True)

        # Clear
        for _ in range(self.value_tree.topLevelItemCount()):
            self.value_tree.takeTopLevelItem(0)

        # Add
        for item in info:
            tree_widget = QTreeWidgetItem()
            tree_widget.setText(0, item.part_path)
            tree_widget.setText(1, self._get_size(item.total_size))
            self.value_tree.addTopLevelItem(tree_widget)
Example #19
0
    def addGroup(self, name, title):
        """
        Add a new group.

        ``name`` and ``title`` are unicode strings.  ``name`` is used to
        identify this group, ``title`` is displayed to the user.
        """
        if name in self._groups:
            raise ValueError('Duplicate group')
        self._groups[name] = QTreeWidgetItem([title])
        self.addTopLevelItem(self._groups[name])
        # expand groups initially
        self.setGroupExpanded(name, True)
Example #20
0
    def addOption(self, group_name, name, title):
        """
        Add an option to a group.

        All arguments are unicode strings. ``group_name`` is the name of the
        group this option is added to.  ``name`` is the name of the option
        itself, ``title`` is displayed to the user.
        """
        if name in self._options:
            raise ValueError('Duplicate option')
        group_item = self._groups[group_name]
        self._options[name] = QTreeWidgetItem(group_item, [title])
        # uncheck options initially
        self.setOptionChecked(name, False)
Example #21
0
    def _populateTree(self):
        self.pushupsListWidget.clear()
        self.pushupsListWidget.setColumnCount(4)
        self.pushupsListWidget.setHeaderLabels([
            "Date", "TotalPushups", "Series", "Repetitions",
            "Average Heart Rate"
        ])
        self.pushupsListWidget.setSortingEnabled(True)
        self.pushupsListWidget.setColumnWidth(0, 180)
        self.pushupsListWidget.setColumnWidth(4, 150)

        pushupDict = self._getPushupDictionary()

        for it, dayOfExercise in enumerate(sorted(pushupDict.keys())):

            dateItem = QTreeWidgetItem()

            dayLabel = dayOfExercise.strftime("%Y/%m/%d")

            dateItem.setText(0, "\n" + dayLabel + "\nDay : " + str(it))

            self.pushupsListWidget.addTopLevelItem(dateItem)

            totalPushups = 0
            for pushup in pushupDict[dayOfExercise]:
                pushupItem = QTreeWidgetItem()

                pushupItem.setText(2, "#" + str(pushup._series))
                pushupItem.setText(3, str(pushup._repetitions))
                pushupItem.setText(4, str(pushup._averageHeartRate))
                pushupItem.setData(0, Qt.UserRole, pushup)

                totalPushups = totalPushups + pushup._repetitions

                dateItem.addChild(pushupItem)

            dateItem.setText(1, str(totalPushups))
Example #22
0
    def testCase(self):
        treeWidget = QTreeWidget()
        treeWidget.setColumnCount(1)
        items = []
        for i in range(10):
            items.append(QTreeWidgetItem(None, ["item: %i" % i]))

        treeWidget.insertTopLevelItems(0, items);
        _iter = QTreeWidgetItemIterator(treeWidget)
        index = 0
        while(_iter.value()):
            item = _iter.value()
            self.assert_(item is items[index])
            index += 1
            _iter += 1
Example #23
0
    def readData(self, *args):

        data = super(Widget_objectList,
                     self).readData(Widget_objectList.path_uiInfo)
        if not type(data) == dict: return
        self.treeWidget.clear()
        keys = data.keys()
        keys.sort()
        for key in keys:
            try:
                nodeName, attrName = data[key]
            except:
                return
            widgetItem = QTreeWidgetItem(self.treeWidget)
            widgetItem.setText(0, nodeName)
            widgetItem.setText(1, attrName)
            widgetItem.setFlags(widgetItem.flags() | QtCore.Qt.ItemIsEditable)
Example #24
0
    def _refresh_key_tree(self, directory_info, ignore_list=None):
        info = LabelInfo(make_dictionary_by_classification(directory_info, ignore_list))

        # Clear
        for _ in range(self.key_tree.topLevelItemCount()):
            self.key_tree.takeTopLevelItem(0)

        # Add
        for k, v in info.sort_dictionary:
            tree_widget = QTreeWidgetItem()
            tree_widget.setText(0, k)
            total_size = 0
            for child in v['children']:
                total_size += child.total_size
            tree_widget.setText(1, self._get_size(v[constant.sort_size_name]))
            self.key_tree.addTopLevelItem(tree_widget)
        self._last_info = info
Example #25
0
    def loadControllers(self):
        
        self.treeWidget.clear()
        sels = pymel.core.ls( sl=1 )

        currentParent = self.treeWidget
        self.items = []
        
        for sel in sels:
            widgetItem = QTreeWidgetItem( currentParent )
            widgetItem.realObject = sel
            widgetItem.setText( 0, sel.name() )
            if isinstance( currentParent, QTreeWidgetItem ):
                currentParent.setExpanded( True )
            currentParent = widgetItem
            self.items.append( sel.name() )
        self.saveInfo()
Example #26
0
    def add_set(self, iterable, title=None):
        """
        Adding the given iterable to the list with a first Separator object with given title
        :param iterable: list of item's attributes
        :param    title: Separator's name
        """
        if len(iterable):
            # if title is given we first add a Separator item to indicate coming list title
            if title:
                self.WL_attributes.addTopLevelItem(
                    QTreeWidget_Separator(title))

            items = []
            for attr in sorted(iterable):
                item = QTreeWidgetItem([attr])
                # assigning the attribute itself inside a custom parameter
                item.attribute = attr
                items.append(item)

            # finally adding all the items to the list
            self.WL_attributes.addTopLevelItems(items)
Example #27
0
    def updateStorage(self):
        self.storageTreeWidget.clear()

        vols = self.sti.logicalDrives()
        for volName in vols:
            volType = self.sti.typeForDrive(volName)
            if volType == QSystemStorageInfo.InternalDrive:
                typeName = "Internal"
            elif volType == QSystemStorageInfo.RemovableDrive:
                typeName = "Removable"
            elif volType == QSystemStorageInfo.CdromDrive:
                typeName = "Cdrom"
            elif volType == QSystemStorageInfo.RemoteDrive:
                typeName = "Network"
            items = []
            items.append(volName)
            items.append(typeName)
            items.append(str(self.sti.totalDiskSpace(volName)))
            items.append(str(self.sti.availableDiskSpace(volName)))
            item = QTreeWidgetItem(items)
            self.storageTreeWidget.addTopLevelItem(item)
Example #28
0
    def import_from_text_file(self):
        arquivo_Caminho = QFileDialog.getOpenFileName(
            None, "Select txt file", '/', "(*.txt);; All Files (*.*)", None)[0]

        filename = arquivo_Caminho

        self.f = open(filename)

        reader = csv.reader(self.f, delimiter='\t')

        linhas = [linha for linha in reader]

        for i in linhas:
            if len(i) == 0:
                continue
            else:
                print i
                a = QTreeWidgetItem(self.ui.treeWidget)
                a.setText(0, str(i[0]))
                a.setText(1, str(i[1]))
                a.setText(2, str(i[2]))
                a.setText(3, str(i[3]))
Example #29
0
    def loadInfo(self):
        
        data = BaseCommands.readData( self.uiInfoPath )
        if not data.has_key( 'controllers' ): return None
        controllerList = data[ 'controllers' ]
        
        controllers = []
        for controller in controllerList:
            if not pymel.core.ls( controller ): continue
            controllers.append( pymel.core.ls( controller )[0] )
        self.treeWidget.clear()

        currentParent = self.treeWidget
        self.items = []
        
        for sel in controllers:
            widgetItem = QTreeWidgetItem( currentParent )
            widgetItem.realObject = sel
            widgetItem.setText( 0, sel.name() )
            if isinstance( currentParent, QTreeWidgetItem ):
                currentParent.setExpanded( True )
            currentParent = widgetItem
            self.items.append( sel.name() )
Example #30
0
    def update(self):
        items = []
        playerx, playery = 0, 0
        for objid, obj in self.worldviewer.world_objects.items():
            if "Object.ScriptedObject.Character" in obj['_types']:
                playerx = obj['loc']['x']
                playery = obj['loc']['y']
                break

        for objid, obj in self.worldviewer.world_objects.items():
            name = obj['name']
            try:
                locx = obj['loc']['x']
            except KeyError:
                continue
            locy = obj['loc']['y']
            locz = obj['loc']['z']
            resource = obj['resource']
            last_modified = datetime.datetime.fromtimestamp(
                int(str(obj['last_modified']['$date'])[:-3]))

            row = self.objects_tree.findItems(objid, Qt.MatchExactly, column=0)
            if row:
                # Update it if it exists already
                item = row[0]
            if not row:
                # If Item does not exist in the tree widget already, make a new one.
                item = QTreeWidgetItem(self.objects_tree)
                items.append(item)

            for i, param in enumerate(
                (objid, name, (locx, locy, locz), resource, last_modified,
                 "%04d" % euclidian(locx, locy, playerx, playery))):
                item.setText(i, str(param))

        if items:
            self.objects_tree.insertTopLevelItems(0, items)