Commit 3a38d190 authored by Sascha Schirra's avatar Sascha Schirra
Browse files

Support for ARM 32bit added

parent ba0004dd
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ from .console import Console
from .options import Options
from . common.error import RopperError

VERSION='1.0.3'
VERSION='1.1.0'

def start(args):
    try:
+15 −1
Original line number Diff line number Diff line
@@ -119,16 +119,30 @@ class ArchitectureMips(Architecture):
class ArchitectureMips64(ArchitectureMips):

    def __init__(self):
        ArchitectureMips.__init__()
        ArchitectureMips.__init__(self)

        self._mode = CS_MODE_64

        self._addressLength = 8

    def _initGadgets(self):
        ArchitectureMips._initGadgets(self)

class ArchitectureArm(Architecture):

    def __init__(self):
        Architecture.__init__(self, CS_ARCH_ARM, CS_MODE_ARM, 4, 4)

    def _initGadgets(self):
        self._endings[gadget.GadgetType.ROP] = []
        self._endings[gadget.GadgetType.JOP] = [('[\x10-\x19\x1e]\xff\x2f\xe1', 4), # bx <reg>
                                                ('[\x30-\x39\x3e]\xff\x2f\xe1', 4), # blx <reg>
                                                ('[\x01-\xff]\x80\xbd\xe8', 4),
                                                ('\x01\x80\xbd\xe8', 4)] # ldm sp! ,{pc}


x86 = ArchitectureX86()
x86_64 = ArchitectureX86_64()
MIPS = ArchitectureMips()
MIPS64 = ArchitectureMips64()
ARM = ArchitectureArm()
+3 −1
Original line number Diff line number Diff line
@@ -268,4 +268,6 @@ ARCH = {(EM.INTEL_386 , ELFCLASS.BITS_32): x86,
        (EM.INTEL_80860, ELFCLASS.BITS_32): x86,
        (EM.IA_64, ELFCLASS.BITS_64): x86_64,
        (EM.X86_64, ELFCLASS.BITS_64): x86_64,
        (EM.MIPS, ELFCLASS.BITS_32): MIPS}
        (EM.MIPS, ELFCLASS.BITS_32): MIPS,
        (EM.MIPS, ELFCLASS.BITS_64): MIPS64,
        (EM.ARM, ELFCLASS.BITS_32) : ARM}
+3 −1
Original line number Diff line number Diff line
@@ -84,7 +84,9 @@ 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.IA64) : x86_64,
        int(IMAGE_FILE_MACHINE.ARM) : ARM,
        int(IMAGE_FILE_MACHINE.ARMV) : ARM}


class ImageDirectoryEntry(Enum):
+2 −2
Original line number Diff line number Diff line
@@ -2,12 +2,12 @@

from setuptools import setup, find_packages

version = "1.0.3"
version = "1.1.0"
package_name = "ropper"
package_dir = "ropper"
package_description = """
With ropper you can show information about files in different file formats
and you can search for gadget to build rop chains for different architectures.
and you can find gadgets to build rop chains for different architectures.
""".strip()

setup(