Example #1
0
    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
Example #2
0
    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
Example #3
0
    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