Commit adce1f1c authored by Sascha Schirra's avatar Sascha Schirra
Browse files

Gadget output string changed

parent 22710667
Loading
Loading
Loading
Loading
+11 −5
Original line number Diff line number Diff line
@@ -122,15 +122,21 @@ class Console(cmd.Cmd):
            vaddr = self.__options.I + section.offset if self.__options.I != None else section.virtualAddress
            pprs = r.searchPopPopRet(section.bytes, vaddr)
            for ppr in pprs:
                if self.__options.detail:
                    print(ppr)
                else:
                    print(ppr.simpleString())
        print('')

    def __printRopGadgets(self, gadgets):
        self.__printer.printTableHeader('Gadgets')
        for gadget in gadgets:
            if self.__options.detail:
                print(gadget)
            print('')
        print('%d gadgets found' % len(gadgets))
            else:
                print(gadget.simpleString())
            #print('')
        print('\n%d gadgets found' % len(gadgets))

    def __searchGadgets(self):
        gadgets = []
+11 −3
Original line number Diff line number Diff line
@@ -49,6 +49,14 @@ class Gadget(object):
            return True
        return bool(re.search(filter, self._gadget))


    def simpleString(self):
        toReturn = '%s: ' % self.__lines[0][0]
        for line in self.__lines:
            toReturn += line[1] + '; '

        return toReturn[:-2]

    def __len__(self):
        return len(self.__lines)

@@ -58,8 +66,8 @@ class Gadget(object):
        return -1

    def __str__(self):
        toReturn = ''
        toReturn = 'Gadget: %s\n' % self.__lines[0][0]
        for line in self.__lines:
            toReturn += line[0] + ' ' + line[1] + '\n'
            toReturn += line[0] +': '+ line[1] + '\n'

        return toReturn[:-1]
        return toReturn
+5 −1
Original line number Diff line number Diff line
@@ -66,9 +66,11 @@ epilog="""example uses:
  [Gadgets]
  ropper.py --file /bin/ls --depth 5
  ropper.py --file /bin/ls --search "sub eax"
  ropper.py --file /bin/ls --search "sub eax" --detail
  ropper.py --file /bin/ls --filter "sub eax"
  ropper.py --file /bin/ls --depth 5 --filter "sub eax"
  ropper.py --file /bin/ls --opcode ffe4
  ropper.py --file /bin/ls --type jop
  ropper.py --file /bin/ls --detail
  ropper.py --file /bin/ls --ppr
  ropper.py --file /bin/ls --jmp esp,eax
  ropper.py --file /bin/ls --type jop
@@ -114,6 +116,8 @@ epilog="""example uses:
            '--opcode', help='Searches for opcodes', metavar='<opcode>')
        parser.add_argument(
            '--type', help='Sets the type of gadgets [rop, jop, all] (default: all)', metavar='<type>')
        parser.add_argument(
            '--detail', help='Prints gadgets more detailed', action='store_true')
        return parser

    def _analyseArguments(self):