(self)
return self._main_nonexecutable_regions
:return:
def main_nonexecutable_regions(self):
        """

        :return:
        """

        if self._main_nonexecutable_regions is None:
            self._main_nonexecutable_regions = []

            obj = self.project.loader.main_object

            if obj.sections:
                for sec in obj.sections:
                    if sec.name in {'.eh_frame', '.eh_frame_hdr'}:
                        # hack for ELF binaries...
                        continue
                    if not sec.is_executable:
                        min_addr = sec.min_addr
                        max_addr = sec.max_addr + 1
                        if max_addr <= min_addr or min_addr == 0:
                            continue
                        self._main_nonexecutable_regions.append((min_addr, max_addr))

            else:
                for seg in obj.segments:
                    if not seg.is_executable:
                        min_addr = seg.min_addr
                        max_addr = seg.max_addr + 1
                        self._main_nonexecutable_regions.append((min_addr, max_addr))

        return self._main_nonexecutable_regions
def main_nonexecutable_regions ( self ) : if self . _main_nonexecutable_regions is None : self . _main_nonexecutable_regions = [ ] obj = self . project . loader . main_object if obj . sections : for sec in obj . sections : if sec . name in { '.eh_frame' , '.eh_frame_hdr' } : # hack for ELF binaries... continue if not sec . is_executable : min_addr = sec . min_addr max_addr = sec . max_addr + 1 if max_addr <= min_addr or min_addr == 0 : continue self . _main_nonexecutable_regions . append ( ( min_addr , max_addr ) ) else : for seg in obj . segments : if not seg . is_executable : min_addr = seg . min_addr max_addr = seg . max_addr + 1 self . _main_nonexecutable_regions . append ( ( min_addr , max_addr ) ) return self . _main_nonexecutable_regions