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) })
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)])
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) })