Loading ropperapp/disasm/arch.py +16 −0 Original line number Diff line number Diff line Loading @@ -141,8 +141,24 @@ class ArchitectureArm(Architecture): ('\x01\x80\xbd\xe8', 4)] # ldm sp! ,{pc} class ArchitectureArm64(Architecture): def __init__(self): Architecture.__init__(self, CS_ARCH_ARM64, CS_MODE_ARM, 4, 4) def _initGadgets(self): self._endings[gadget.GadgetType.ROP] = [('[\x00\x20\x40\x60\x80\xa0\xc0\xe0][\x00-\x02]\x5f\xd6', 4), # ret <reg> ('[\x00\x20\x40\x60\x80]\x03\x5f\xd6', 4), ('\xc0\x03\x5f\xd6', 4)] # ret <reg> self._endings[gadget.GadgetType.JOP] = [('[\x00\x20\x40\x60\x80\xa0\xc0\xe0][\x00-\x02]\x1f\xd6', 4), # bx <reg> ('[\x00\x20\x40\x60\x80]\x03\x1f\xd6', 4), # blx <reg> ('[\x00\x20\x40\x60\x80\xa0\xc0\xe0][\x00-\x02]\x3f\xd6', 4), ('[\x00\x20\x40\x60\x80]\x03\x3f\xd6', 4)] # ldm sp! ,{pc} x86 = ArchitectureX86() x86_64 = ArchitectureX86_64() MIPS = ArchitectureMips() MIPS64 = ArchitectureMips64() ARM = ArchitectureArm() ARM64 = ArchitectureArm64() No newline at end of file ropperapp/loaders/elf_intern/elf_gen.py +3 −1 Original line number Diff line number Diff line Loading @@ -111,6 +111,7 @@ class EM(Enum): ARC_A5 = 93 XTENSA = 94 NUM = 95 ARM64 = 183 class EI(Enum): Loading Loading @@ -270,4 +271,5 @@ ARCH = {(EM.INTEL_386 , ELFCLASS.BITS_32): x86, (EM.X86_64, ELFCLASS.BITS_64): x86_64, (EM.MIPS, ELFCLASS.BITS_32): MIPS, (EM.MIPS, ELFCLASS.BITS_64): MIPS64, (EM.ARM, ELFCLASS.BITS_32) : ARM} (EM.ARM, ELFCLASS.BITS_32) : ARM, (EM.ARM64, ELFCLASS.BITS_64) : ARM64} ropperapp/loaders/pe_intern/pe_gen.py +0 −1 Original line number Diff line number Diff line Loading @@ -84,7 +84,6 @@ class ImageDllCharacteristics(Enum): ARCH = {int(IMAGE_FILE_MACHINE.AMD64): x86_64, int(IMAGE_FILE_MACHINE.I386): x86, int(IMAGE_FILE_MACHINE.IA64) : x86_64, int(IMAGE_FILE_MACHINE.ARM) : ARM, int(IMAGE_FILE_MACHINE.ARMV) : ARM} Loading Loading
ropperapp/disasm/arch.py +16 −0 Original line number Diff line number Diff line Loading @@ -141,8 +141,24 @@ class ArchitectureArm(Architecture): ('\x01\x80\xbd\xe8', 4)] # ldm sp! ,{pc} class ArchitectureArm64(Architecture): def __init__(self): Architecture.__init__(self, CS_ARCH_ARM64, CS_MODE_ARM, 4, 4) def _initGadgets(self): self._endings[gadget.GadgetType.ROP] = [('[\x00\x20\x40\x60\x80\xa0\xc0\xe0][\x00-\x02]\x5f\xd6', 4), # ret <reg> ('[\x00\x20\x40\x60\x80]\x03\x5f\xd6', 4), ('\xc0\x03\x5f\xd6', 4)] # ret <reg> self._endings[gadget.GadgetType.JOP] = [('[\x00\x20\x40\x60\x80\xa0\xc0\xe0][\x00-\x02]\x1f\xd6', 4), # bx <reg> ('[\x00\x20\x40\x60\x80]\x03\x1f\xd6', 4), # blx <reg> ('[\x00\x20\x40\x60\x80\xa0\xc0\xe0][\x00-\x02]\x3f\xd6', 4), ('[\x00\x20\x40\x60\x80]\x03\x3f\xd6', 4)] # ldm sp! ,{pc} x86 = ArchitectureX86() x86_64 = ArchitectureX86_64() MIPS = ArchitectureMips() MIPS64 = ArchitectureMips64() ARM = ArchitectureArm() ARM64 = ArchitectureArm64() No newline at end of file
ropperapp/loaders/elf_intern/elf_gen.py +3 −1 Original line number Diff line number Diff line Loading @@ -111,6 +111,7 @@ class EM(Enum): ARC_A5 = 93 XTENSA = 94 NUM = 95 ARM64 = 183 class EI(Enum): Loading Loading @@ -270,4 +271,5 @@ ARCH = {(EM.INTEL_386 , ELFCLASS.BITS_32): x86, (EM.X86_64, ELFCLASS.BITS_64): x86_64, (EM.MIPS, ELFCLASS.BITS_32): MIPS, (EM.MIPS, ELFCLASS.BITS_64): MIPS64, (EM.ARM, ELFCLASS.BITS_32) : ARM} (EM.ARM, ELFCLASS.BITS_32) : ARM, (EM.ARM64, ELFCLASS.BITS_64) : ARM64}
ropperapp/loaders/pe_intern/pe_gen.py +0 −1 Original line number Diff line number Diff line Loading @@ -84,7 +84,6 @@ class ImageDllCharacteristics(Enum): ARCH = {int(IMAGE_FILE_MACHINE.AMD64): x86_64, int(IMAGE_FILE_MACHINE.I386): x86, int(IMAGE_FILE_MACHINE.IA64) : x86_64, int(IMAGE_FILE_MACHINE.ARM) : ARM, int(IMAGE_FILE_MACHINE.ARMV) : ARM} Loading