def __init__(self, bar, BinInfo, FuncInfo, BBInfo): Functions.__init__(self, bar, BinInfo, FuncInfo) self.BasicBlockLayout = [] self.lookupByVA = dict() # Unpack the basic block information self.BBSize, self.BBFixupCnt, self.BBFallThrough, self.BBOffsetFromSection, \ self.BBSec, self.BBPadding, self.BBAssembleType = BBInfo self.numFixups = sum(self.BBFixupCnt) self.numBasicBlocks = len(self.BBSize) # binpang, add self.BBSecVA = [self.secVA[sec_name] for sec_name in self.BBSec] # BB X belongs to Func Y; dict(X:Y) self.BB2Func = util.buildLookupTbl(self.funcBBCnt) # self.BBOffset = util.getOffset(self.BBSize) self.BBOffsetFromFunc = util.getOffsetFromAccordingOffset( self.funcBBCnt, self.BBOffsetFromSection) self.BBOffsetFromBase = util.computeOffsetFromBase( self.BBOffsetFromSection, self.BBSecVA, self.base) self.BBVA = util.computeRelaOffset(self.BBOffsetFromBase, self.base) self.generateBasicBlockList(bar)
def __init__(self, bar, BinInfo, FuncInfo): BinaryInfo.__init__(self, BinInfo) self.FunctionLayout = [] self.lookupByVA = dict() # Unpack the function information self.funcSize, self.funcBBCnt, self.funcOffsetFromSection, self.funcSec, self.funcType = FuncInfo self.numBBs = sum(self.funcBBCnt) self.numFunctions = len(self.funcSize) # binpang, add self.funcSecVA = [self.secVA[sec_name] for sec_name in self.funcSec] # Func X belongs to Obj Y; dict(X:Y) # self.func2Obj = util.buildLookupTbl(self.objFuncCnt) #self.funcOffset = util.getOffset(self.funcSize) #self.funcOffsetFromObj = util.getOffsetFromAccordingOffset(self.objFuncCnt, self.funcOffsetFromSection) # self.funcOffsetFromSection = util.computeRelaOffset(self.funcOffset, self.reorderObjStartFromText) self.funcOffsetFromBase = util.computeOffsetFromBase( self.funcOffsetFromSection, self.funcSecVA, self.base) self.funcVA = util.computeRelaOffset(self.funcOffsetFromBase, self.base) self.generateFunctionList(bar)
def __init__(self, bar, BinInfo, ObjInfo): BinaryInfo.__init__(self, BinInfo) self.objectLayout = [] self.lookupByVA = dict() # Unpack the object information self.objSize, self.objFuncCnt, self.srcKind = ObjInfo self.numObjects = len(self.objSize) self.numFuncs = sum(self.objFuncCnt) self.objOffset = util.getOffset(self.objSize) self.objOffsetFromSection = util.computeRelaOffset(self.objOffset, self.reorderObjStartFromText) self.objOffsetFromBase = util.computeRelaOffset(self.objOffsetFromSection, self.baseOffsetFromFile) self.objVA = util.computeRelaOffset(self.objOffsetFromBase, self.base) self.generateObjectList(bar)
def __init__(self, bar, BinInfo, ObjInfo, FuncInfo): Objects.__init__(self, bar, BinInfo, ObjInfo) self.FunctionLayout = [] self.lookupByVA = dict() # Unpack the function information self.funcSize, self.funcBBCnt = FuncInfo self.numBBs = sum(self.funcBBCnt) self.numFunctions = len(self.funcSize) # Func X belongs to Obj Y; dict(X:Y) self.func2Obj = util.buildLookupTbl(self.objFuncCnt) self.funcOffset = util.getOffset(self.funcSize) self.funcOffsetFromObj = util.getOffsetFrom(self.objFuncCnt, self.funcSize) self.funcOffsetFromSection = util.computeRelaOffset(self.funcOffset, self.reorderObjStartFromText) self.BBOffsetFromBase = util.computeRelaOffset(self.funcOffsetFromSection, self.baseOffsetFromFile) self.funcVA = util.computeRelaOffset(self.BBOffsetFromBase, self.base) self.generateFunctionList(bar)
def __init__(self, bar, BinInfo, ObjInfo, FuncInfo, BBInfo): Functions.__init__(self, bar, BinInfo, ObjInfo, FuncInfo) self.BasicBlockLayout = [] self.lookupByVA = dict() # Unpack the basic block information self.BBSize, self.BBFixupCnt, self.BBFallThrough = BBInfo self.numFixups = sum(self.BBFixupCnt) self.numBasicBlocks = len(self.BBSize) # BB X belongs to Func Y; dict(X:Y) self.BB2Func = util.buildLookupTbl(self.funcBBCnt) self.BBOffset = util.getOffset(self.BBSize) self.BBOffsetFromFunc = util.getOffsetFrom(self.funcBBCnt, self.BBSize) self.BBOffsetFromObj = util.getOffsetFrom(self._getObjBBCnt(), self.BBSize) self.BBOffsetFromSection = util.computeRelaOffset(self.BBOffset, self.reorderObjStartFromText) self.BBOffsetFromBase = util.computeRelaOffset(self.BBOffsetFromSection, self.baseOffsetFromFile) self.BBVA = util.computeRelaOffset(self.BBOffsetFromBase, self.base) self.generateBasicBlockList(bar)