def type_to_string(self, t): if idc.isCode(t): return "C" elif idc.isData(t): return "D" elif idc.isTail(t): return "T" elif idc.isUnknown(t): return "Ukn" else: return "Err"
def isTail(ea): return idc.isTail(idc.GetFlags(ea))
if cur_addr == idc.BADADDR: break else: print hex(cur_addr), idc.GetDisasm(cur_addr) cur_addr = idc.NextHead(cur_addr) #F这个参数需要先通过idc.GetFlags(ea)获取地址的内部标志表示形式,然后再传给idc.is*系列函数当参数 #判断IDA是否将其判定为代码 idc.isCode(F) #判断IDA是否将其判定为数据 idc.isData(F) #判断IDA是否将其判定为尾部 idc.isTail(F) #判断IDA是否将其判定为未知(既不是数据,也不是代码) idc.isUnknown(F) #判断IDA是否将其判定为头部 idc.isHead(F) #0x100001f77L mov rbx, rsi #True ea = here() print hex(ea), idc.GetDisasm(ea) print idc.isCode(idc.GetFlags(ea)) # idc.FindCode(ea, flag) 该函数用于寻找被标记为代码的下一个地址. 对于想要查找数据块的尾部很有帮助 #0x1000013c0L text "UTF-16LE", '{00000000-0000-0000-0000-000000000000}',0
def isTail(ea): return idc.isTail( idc.GetFlags(ea) )
def is_tail(self): """True if object is NOT an Head of the IDB (The beginning of a line) """ return idc.isTail(self.flags)