コード例 #1
0
ファイル: codatify.py プロジェクト: wolfien666/ida
    def codeify(self, ea=idc.BADADDR):
        func_count = 0
        code_count = 0

        if ea == idc.BADADDR:
            ea = self.get_start_ea(self.CODE)
            if ea == idc.BADADDR:
                ea = ida_shims.get_first_seg()

        print("\nLooking for undefined code starting at: %s:0x%X" % \
              (ida_shims.get_segm_name(ea), ea))

        while ea != idc.BADADDR:
            try:
                if ida_shims.get_segm_attr(ea, idc.SEGATTR_TYPE) == self.CODE:
                    if ida_shims.get_func_name(ea) != '':
                        ea = ida_shims.find_func_end(ea)
                        continue
                    else:
                        if ida_shims.add_func(ea):
                            func_count += 1
                        elif ida_shims.create_insn(ea):
                            code_count += 1
            except:
                pass

            ea = ida_shims.next_addr(ea)

        print("Created %d new functions and %d new code blocks\n" % \
              (func_count, code_count))
コード例 #2
0
ファイル: codatify.py プロジェクト: wolfien666/ida
    def datify(self):
        ea = self.get_start_ea(self.DATA)
        if ea == idc.BADADDR:
            ea = ida_shims.get_first_seg()

        print("Converting remaining data to DWORDs...", end=' ')

        while ea != idc.BADADDR:
            flags = ida_shims.get_full_flags(ea)

            if (ida_shims.is_unknown(flags) or ida_shims.is_byte(flags)) and \
                    ((ea % 4) == 0):
                ida_shims.create_dword(ea)
                ida_shims.op_plain_offset(ea, 0, 0)

            ea = ida_shims.next_addr(ea)

        print("done.")

        self._fix_data_offsets()