예제 #1
0
 def searchNullWords(self):
     self.nullWords = QtGui.QGraphicsItemGroup(scene=self.scene)
     log.info('search %s mapping for null words' % (self.mapping_name))
     found = 0
     tmpnull = []
     start = self.mapping.start
     searcher = signature.NullSearcher(self.mapping)
     for vaddr in searcher:
         offset = vaddr - start
         tmpnull.append(offset / searcher.WORDSIZE)
     # filter and regroup null word by bunches
     nb = 0
     should = 0
     for k, g in itertools.groupby(enumerate(tmpnull), lambda
                                   (i, x): i - x):
         rang = [v * 4 for v in map(operator.itemgetter(1), g)
                 ]  # still not getting lambdas....
         # add an structure of len(range)*4 bytes
         self.nullWords.addToGroup(
             widgets.Structure(rang[0],
                               Dummy(4 * len(rang), value=0),
                               scene=self.scene,
                               color=QtCore.Qt.gray))
         log.debug("Adding a zero struct of %d len" % (len(rang)))
         nb += 1
         should += len(rang)
예제 #2
0
파일: gui.py 프로젝트: yep0/python-haystack
 def searchNullWords(self):
     self.nullWords = QtGui.QGraphicsItemGroup(scene=self.scene)
     log.info('search %s mapping for null words' % (self.mapping_name))
     found = 0
     tmpnull = []
     start = self.mapping.start
     searcher = searcher.NullSearcher(self.mapping)
     for vaddr in searcher:
         offset = vaddr - start
         tmpnull.append(offset / searcher.WORDSIZE)
     # filter and regroup null word by bunches
     nb = 0
     should = 0
     for k, g in itertools.groupby(enumerate(tmpnull),
                                   lambda i_x: i_x[0] - i_x[1]):
         # still not getting lambdas....
         rang = [v * 4 for v in map(operator.itemgetter(1), g)]
         # add an structure of len(range)*4 bytes
         self.nullWords.addToGroup(
             widgets.Structure(rang[0],
                               Dummy(4 * len(rang), value=0),
                               scene=self.scene,
                               color=QtCore.Qt.gray))
         log.debug("Adding a zero struct of %d len" % (len(rang)))
         nb += 1
         should += len(rang)
     log.debug('Created %d qrect instead of %d words' % (nb, should))
     self.scene.addItem(self.nullWords)
     self.nullWords.hide()
     self.nullWords.setEnabled(False)
     self.nullWords.setZValue(1)  # zValue has to be  > 0
     # still not letting me trough the boundingRect
     self.nullWords.setToolTip('Null value words')
     return
예제 #3
0
 def show_structures_allocated(self, context):
   self.allocated_structures = QtGui.QGraphicsItemGroup(scene=self.scene)
   def offset(vaddr):
     # FIXME
     return vaddr - context.heap.start
   for s in context.listStructures():
     #offset, value, color = QtCore.Qt.green, scene=None, parent=None):
     self.allocated_structures.addToGroup(widgets.Structure(offset(s._vaddr), s, scene = self.scene, color = QtCore.Qt.blue) )
   return