def highlightMatchedProcs(self):
        matchedProcs = self.matchedProcsCache.readAll()
        prefix = '[%s]\n[!] Matched Procedures: \n' % self.ui.editHighlightCaption.toPlainText()        
        if len(matchedProcs) > 0:
            for proc in matchedProcs:
                procStr = ''
                rva = proc.split('/')[1]
                ea = VBIDAHelper.addressFromRVA(int(rva, 16))
                matched = self.matchedProcsCache.read(proc)
                for m in matched:
                    mbinary, mrva = m['proc_id'].split('/')
                    procStr += 'Procedure: %s, Binary: %s, RVA: %s\n'%(
                        m['procName'], mbinary, mrva)

                cmt =  prefix + procStr
                cmt = cmt.encode('ascii','ignore')
                
                VBIDAHelper.setFunctionComment(ea, cmt)

                css = self.ui.btnHighlightColorChooser.styleSheet()
                start = css.find('rgb')
                if start != -1:
                    start += 4
                    end = css.find(')')
                    t = css[start : end]
                    rgb = map(str, t.split(','))
                    rgb = map(str.strip, rgb)
                    rgb = map(int, rgb)
                    VBIDAHelper.setFunctionColor(ea, rgb[2], rgb[1], rgb[0])

            self.notifyStatus({
                'statuscode': 0,
                'message': '%s procedures has been highlighted'%len(matchedProcs)
            })
示例#2
0
 def openMatchedProcsChooser(self, rvaStr):
     rva = int(rvaStr, 16)
     c = VBFunctionChooser(
         'Address %s matched procedures' %
         hex(VBIDAHelper.addressFromRVA(rva)), True, self.matchedProcsCache,
         self.openedFileHash + '/' + rvaStr, rva)
     c.Show()
 def openMatchedProcsChooser(self, rvaStr):
     rva = int(rvaStr, 16)
     c = VBFunctionChooser(
             'Address %s matched procedures' % hex(VBIDAHelper.addressFromRVA(rva)), 
             True,
             self.matchedProcsCache,
             self.openedFileHash + '/' + rvaStr,
             rva
         )
     c.Show()
 def populateItems(self):
     self.items = []        
     if self.isMatchedProcs:
         matchedProcs = self.matchedProcsCache.read(self.procId)
         if matchedProcs is not None:
             for mProcs in matchedProcs:
                 binHash, rva = mProcs['proc_id'].split('/')
                 self.items.append([rva, mProcs['procName'], binHash])
         else:              
             self.items = [['', 'No Matched Procedure for this address', '']]  
             
     else:
         procsWithSim = self.matchedProcsCache.readAll()
         for proc in procsWithSim:                
             ea = VBIDAHelper.addressFromRVA(int(proc.split('/')[1], 16))
             self.items.append([hex(ea), GetFunctionName(ea)])
    def populateItems(self):
        self.items = []
        if self.isMatchedProcs:
            matchedProcs = self.matchedProcsCache.read(self.procId)
            if matchedProcs is not None:
                for mProcs in matchedProcs:
                    binHash, rva = mProcs['proc_id'].split('/')
                    self.items.append([rva, mProcs['procName'], binHash])
            else:
                self.items = [[
                    '', 'No Matched Procedure for this address', ''
                ]]

        else:
            procsWithSim = self.matchedProcsCache.readAll()
            for proc in procsWithSim:
                ea = VBIDAHelper.addressFromRVA(int(proc.split('/')[1], 16))
                self.items.append([hex(ea), GetFunctionName(ea)])
示例#6
0
    def highlightMatchedProcs(self):
        matchedProcs = self.matchedProcsCache.readAll()
        prefix = '[%s]\n[!] Matched Procedures: \n' % self.ui.editHighlightCaption.toPlainText(
        )
        if len(matchedProcs) > 0:
            for proc in matchedProcs:
                procStr = ''
                rva = proc.split('/')[1]
                ea = VBIDAHelper.addressFromRVA(int(rva, 16))
                matched = self.matchedProcsCache.read(proc)
                for m in matched:
                    mbinary, mrva = m['proc_id'].split('/')
                    procStr += 'Procedure: %s, Binary: %s, RVA: %s\n' % (
                        m['procName'], mbinary, mrva)

                cmt = prefix + procStr
                cmt = cmt.encode('ascii', 'ignore')

                VBIDAHelper.setFunctionComment(ea, cmt)

                css = self.ui.btnHighlightColorChooser.styleSheet()
                start = css.find('rgb')
                if start != -1:
                    start += 4
                    end = css.find(')')
                    t = css[start:end]
                    rgb = map(str, t.split(','))
                    rgb = map(str.strip, rgb)
                    rgb = map(int, rgb)
                    VBIDAHelper.setFunctionColor(ea, rgb[2], rgb[1], rgb[0])

            self.notifyStatus({
                'statuscode':
                0,
                'message':
                '%s procedures has been highlighted' % len(matchedProcs)
            })