def get_start_ea(self, attr): ea = idc.BADADDR seg = ida_shims.get_first_seg() while seg != idc.BADADDR: if ida_shims.get_segm_attr(seg, idc.SEGATTR_TYPE) == attr: ea = seg break else: seg = ida_shims.get_next_seg(seg) return ea
def _get_segments(self, attr): segments = [] seg = ida_shims.get_first_seg() while seg != idc.BADADDR: if ida_shims.get_segm_attr(seg, idc.SEGATTR_TYPE) == attr: start = ida_shims.get_segm_start(seg) end = ida_shims.get_segm_end(seg) segments.append((start, end)) seg = ida_shims.get_next_seg(seg) return segments
def get_data_section(self): ea = idc.BADADDR seg = ida_shims.get_first_seg() stop = idc.BADADDR while seg != idc.BADADDR: if ea == idc.BADADDR and \ ida_shims.get_segm_attr(seg, idc.SEGATTR_TYPE) == 2: ea = seg stop = ida_shims.get_segm_end(seg) seg = ida_shims.get_next_seg(seg) return ea, stop