Loading ropperapp/console.py +11 −5 Original line number Diff line number Diff line Loading @@ -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 = [] Loading ropperapp/disasm/gadget.py +11 −3 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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 ropperapp/options.py +5 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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): Loading Loading
ropperapp/console.py +11 −5 Original line number Diff line number Diff line Loading @@ -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 = [] Loading
ropperapp/disasm/gadget.py +11 −3 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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
ropperapp/options.py +5 −1 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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): Loading