mirror of https://github.com/pwndbg/pwndbg
Py3k (#817)
* Py3k * Dont run py2 on CI * Don't launch futurize on CI * Move to latest isort options * Modernize imports (isort>=5) * Fix removed jump dir
This commit is contained in:
parent
ccd8f76803
commit
301012abf2
|
@ -13,11 +13,6 @@ jobs:
|
||||||
path: ~/.cache/pip
|
path: ~/.cache/pip
|
||||||
key: ${{ matrix.os }}-cache-pip
|
key: ${{ matrix.os }}-cache-pip
|
||||||
|
|
||||||
- name: Set up Python 2.7
|
|
||||||
uses: actions/setup-python@v1
|
|
||||||
with:
|
|
||||||
python-version: 2.7
|
|
||||||
|
|
||||||
- name: Set up Python 3.8
|
- name: Set up Python 3.8
|
||||||
uses: actions/setup-python@v1
|
uses: actions/setup-python@v1
|
||||||
with:
|
with:
|
||||||
|
@ -25,13 +20,11 @@ jobs:
|
||||||
|
|
||||||
- name: Install linters
|
- name: Install linters
|
||||||
run: |
|
run: |
|
||||||
pip install isort future
|
pip install isort
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
run: |
|
run: |
|
||||||
futurize --all-imports --stage1 --print-function --write --unicode-literals pwndbg tests
|
|
||||||
git diff-index --quiet HEAD -- pwndbg tests
|
git diff-index --quiet HEAD -- pwndbg tests
|
||||||
isort --check-only --diff --recursive pwndbg tests
|
isort --check-only --diff pwndbg tests
|
||||||
python2.7 -m py_compile ida_script.py $(git ls-files 'pwndbg/*.py')
|
|
||||||
python3 -m py_compile $(git ls-files 'pwndbg/*.py')
|
python3 -m py_compile $(git ls-files 'pwndbg/*.py')
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[settings]
|
[settings]
|
||||||
indent=' '
|
indent=' '
|
||||||
not_skip = __init__.py
|
|
||||||
force_single_line = 1
|
force_single_line = 1
|
||||||
known_third_party=capstone,unicorn,six,psutil,pycparser,gdb
|
known_third_party=capstone,unicorn,six,psutil,pycparser,gdb
|
||||||
|
|
|
@ -24,8 +24,6 @@ Feel free to update the list below!
|
||||||
|
|
||||||
* Process properties can be retrieved thx to `pwndbg/proc.py` - e.g. using `pwndbg.proc.pid` will give us current process pid
|
* Process properties can be retrieved thx to `pwndbg/proc.py` - e.g. using `pwndbg.proc.pid` will give us current process pid
|
||||||
|
|
||||||
* We have an inthook to make it easier to work with Python 2 and gdb.Value objects - see the docstring in `pwndbg/inthook.py` . Specifically, it makes it so that you can call `int()` on a `gdb.Value` instance and get what you want.
|
|
||||||
|
|
||||||
* We have a wrapper for handling exceptions that are thrown by commands - defined in `pwndbg/exception.py` - current approach seems to work fine - by using `set exception-verbose on` - we get a stacktrace. If we want to debug stuff we can always do `set exception-debugger on`.
|
* We have a wrapper for handling exceptions that are thrown by commands - defined in `pwndbg/exception.py` - current approach seems to work fine - by using `set exception-verbose on` - we get a stacktrace. If we want to debug stuff we can always do `set exception-debugger on`.
|
||||||
|
|
||||||
* Some of pwndbg's functionality - e.g. memory fetching - require us to have an instance of proper `gdb.Type` - the problem with that is that there is no way to define our own types - we have to ask gdb if it detected particular type in this particular binary (that sucks). We do it in `pwndbg/typeinfo.py` and it works most of the time. The known bug with that is that it might not work properly for Golang binaries compiled with debugging symbols.
|
* Some of pwndbg's functionality - e.g. memory fetching - require us to have an instance of proper `gdb.Type` - the problem with that is that there is no way to define our own types - we have to ask gdb if it detected particular type in this particular binary (that sucks). We do it in `pwndbg/typeinfo.py` and it works most of the time. The known bug with that is that it might not work properly for Golang binaries compiled with debugging symbols.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# pwndbg [![license](https://img.shields.io/github/license/mashape/apistatus.svg?maxAge=2592000)](https://github.com/pwndbg/pwndbg/blob/dev/LICENSE.md) [![Py2&3](https://img.shields.io/badge/Python-2%20%26%203-green.svg)]() [![IRC](https://img.shields.io/badge/freenode-%23pwndbg-red.svg)](https://webchat.freenode.net/?channels=#pwndbg)
|
# pwndbg [![license](https://img.shields.io/github/license/mashape/apistatus.svg?maxAge=2592000)](https://github.com/pwndbg/pwndbg/blob/dev/LICENSE.md) [![IRC](https://img.shields.io/badge/freenode-%23pwndbg-red.svg)](https://webchat.freenode.net/?channels=#pwndbg)
|
||||||
|
|
||||||
`pwndbg` (/poʊndbæg/) is a GDB plug-in that makes debugging with GDB suck less, with a focus on features needed by low-level software developers, hardware hackers, reverse-engineers and exploit developers.
|
`pwndbg` (/poʊndbæg/) is a GDB plug-in that makes debugging with GDB suck less, with a focus on features needed by low-level software developers, hardware hackers, reverse-engineers and exploit developers.
|
||||||
|
|
||||||
|
|
16
gdbinit.py
16
gdbinit.py
|
@ -1,31 +1,19 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import locale
|
import locale
|
||||||
import sys
|
import sys
|
||||||
from os import path
|
from os import path
|
||||||
|
|
||||||
import six
|
|
||||||
|
|
||||||
directory, file = path.split(__file__)
|
directory, file = path.split(__file__)
|
||||||
directory = path.expanduser(directory)
|
directory = path.expanduser(directory)
|
||||||
directory = path.abspath(directory)
|
directory = path.abspath(directory)
|
||||||
|
|
||||||
sys.path.append(directory)
|
sys.path.append(directory)
|
||||||
|
|
||||||
# this is an unconventional workaround to
|
# warn if the user has different encoding than utf-8
|
||||||
# support unicode printing for python2
|
|
||||||
# https://github.com/pwndbg/pwndbg/issues/117
|
|
||||||
# on python3 it warns if the user has different
|
|
||||||
# encoding than utf-8
|
|
||||||
encoding = locale.getpreferredencoding()
|
encoding = locale.getpreferredencoding()
|
||||||
if six.PY2:
|
|
||||||
reload(sys)
|
|
||||||
sys.setdefaultencoding('utf-8')
|
|
||||||
|
|
||||||
elif encoding != 'UTF-8':
|
if encoding != 'UTF-8':
|
||||||
print('******')
|
print('******')
|
||||||
print('Your encoding ({}) is different than UTF-8. pwndbg might not work properly.'.format(encoding))
|
print('Your encoding ({}) is different than UTF-8. pwndbg might not work properly.'.format(encoding))
|
||||||
print('You might try launching gdb with:')
|
print('You might try launching gdb with:')
|
||||||
|
|
|
@ -1,10 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import signal
|
import signal
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
|
@ -68,7 +63,6 @@ import pwndbg.elf
|
||||||
import pwndbg.exception
|
import pwndbg.exception
|
||||||
import pwndbg.gdbutils.functions
|
import pwndbg.gdbutils.functions
|
||||||
import pwndbg.heap
|
import pwndbg.heap
|
||||||
import pwndbg.inthook
|
|
||||||
import pwndbg.memory
|
import pwndbg.memory
|
||||||
import pwndbg.net
|
import pwndbg.net
|
||||||
import pwndbg.proc
|
import pwndbg.proc
|
||||||
|
@ -88,6 +82,7 @@ version = __version__
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import unicorn
|
import unicorn
|
||||||
|
|
||||||
import pwndbg.emu
|
import pwndbg.emu
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -1,9 +1,4 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import functools
|
import functools
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
@ -13,7 +8,7 @@ import pwndbg.arch
|
||||||
import pwndbg.color.message as M
|
import pwndbg.color.message as M
|
||||||
|
|
||||||
|
|
||||||
class ABI(object):
|
class ABI:
|
||||||
"""
|
"""
|
||||||
Encapsulates information about a calling convention.
|
Encapsulates information about a calling convention.
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -1,10 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
|
|
||||||
import pwndbg.color.message as message
|
import pwndbg.color.message as message
|
||||||
|
|
|
@ -1,10 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import struct
|
import struct
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
@ -66,10 +61,6 @@ def update():
|
||||||
(8, 'big'): '>Q',
|
(8, 'big'): '>Q',
|
||||||
}.get((m.ptrsize, m.endian))
|
}.get((m.ptrsize, m.endian))
|
||||||
|
|
||||||
# Work around Python 2.7.6 struct.pack / unicode incompatibility
|
|
||||||
# See https://github.com/pwndbg/pwndbg/pull/336 for more information.
|
|
||||||
m.fmt = str(m.fmt)
|
|
||||||
|
|
||||||
# Attempt to detect the qemu-user binary name
|
# Attempt to detect the qemu-user binary name
|
||||||
if m.current == 'arm' and m.endian == 'big':
|
if m.current == 'arm' and m.endian == 'big':
|
||||||
m.qemu = 'armeb'
|
m.qemu = 'armeb'
|
||||||
|
|
|
@ -4,11 +4,6 @@
|
||||||
Allows describing functions, specifically enumerating arguments which
|
Allows describing functions, specifically enumerating arguments which
|
||||||
may be passed in a combination of registers and stack values.
|
may be passed in a combination of registers and stack values.
|
||||||
"""
|
"""
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
from capstone import CS_GRP_CALL
|
from capstone import CS_GRP_CALL
|
||||||
from capstone import CS_GRP_INT
|
from capstone import CS_GRP_INT
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import pwndbg.color.theme as theme
|
import pwndbg.color.theme as theme
|
||||||
import pwndbg.config as config
|
import pwndbg.config as config
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import pwndbg.color.theme as theme
|
import pwndbg.color.theme as theme
|
||||||
import pwndbg.config as config
|
import pwndbg.config as config
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import pwndbg.color.theme as theme
|
import pwndbg.color.theme as theme
|
||||||
import pwndbg.config as config
|
import pwndbg.config as config
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import capstone
|
import capstone
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import pwndbg.color.theme as theme
|
import pwndbg.color.theme as theme
|
||||||
import pwndbg.config as config
|
import pwndbg.config as config
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import pwndbg.color.theme as theme
|
import pwndbg.color.theme as theme
|
||||||
import pwndbg.config as config
|
import pwndbg.config as config
|
||||||
|
|
|
@ -1,12 +1,6 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
import six
|
|
||||||
from pygments.lexer import RegexLexer
|
from pygments.lexer import RegexLexer
|
||||||
from pygments.lexer import include
|
from pygments.lexer import include
|
||||||
from pygments.token import Comment
|
from pygments.token import Comment
|
||||||
|
@ -116,20 +110,3 @@ class PwntoolsLexer(RegexLexer):
|
||||||
(r'[-*,.():]+', Punctuation)
|
(r'[-*,.():]+', Punctuation)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
# Note: convert all unicode() to str() if in Python2.7 since unicode_literals is enabled
|
|
||||||
# The pygments<=2.2.0 (latest stable when commit) in Python2.7 use 'str' type in rules matching
|
|
||||||
# We must convert all unicode back to str()
|
|
||||||
if six.PY2:
|
|
||||||
def _to_str(obj):
|
|
||||||
type_ = type(obj)
|
|
||||||
if type_ in (tuple, list):
|
|
||||||
return type_(map(_to_str, obj))
|
|
||||||
elif type_ is unicode:
|
|
||||||
return str(obj)
|
|
||||||
return obj
|
|
||||||
|
|
||||||
PwntoolsLexer.tokens = {
|
|
||||||
_to_str(k): _to_str(v)
|
|
||||||
for k, v in PwntoolsLexer.tokens.iteritems()
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,12 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import six
|
|
||||||
|
|
||||||
import pwndbg.color.theme as theme
|
import pwndbg.color.theme as theme
|
||||||
import pwndbg.config as config
|
import pwndbg.config as config
|
||||||
import pwndbg.vmmap
|
import pwndbg.vmmap
|
||||||
|
@ -62,7 +55,7 @@ def get(address, text = None):
|
||||||
old_color = color
|
old_color = color
|
||||||
color = lambda x: rwx(old_color(x))
|
color = lambda x: rwx(old_color(x))
|
||||||
|
|
||||||
if text is None and isinstance(address, six.integer_types) and address > 255:
|
if text is None and isinstance(address, int) and address > 255:
|
||||||
text = hex(int(address))
|
text = hex(int(address))
|
||||||
if text is None:
|
if text is None:
|
||||||
text = str(int(address))
|
text = str(int(address))
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from pwndbg import config
|
from pwndbg import config
|
||||||
from pwndbg.color import generateColorFunction
|
from pwndbg.color import generateColorFunction
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import pwndbg.color.theme as theme
|
import pwndbg.color.theme as theme
|
||||||
import pwndbg.config as config
|
import pwndbg.config as config
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import itertools
|
import itertools
|
||||||
import os.path
|
import os.path
|
||||||
|
@ -15,8 +11,9 @@ from pwndbg.color import theme
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import pygments
|
import pygments
|
||||||
import pygments.lexers
|
|
||||||
import pygments.formatters
|
import pygments.formatters
|
||||||
|
import pygments.lexers
|
||||||
|
|
||||||
from pwndbg.color.lexer import PwntoolsLexer
|
from pwndbg.color.lexer import PwntoolsLexer
|
||||||
except ImportError:
|
except ImportError:
|
||||||
pygments = None
|
pygments = None
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import pwndbg.color.theme as theme
|
import pwndbg.color.theme as theme
|
||||||
import pwndbg.config as config
|
import pwndbg.config as config
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import pwndbg.config
|
import pwndbg.config
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,9 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import functools
|
import functools
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
import six
|
|
||||||
|
|
||||||
import pwndbg.chain
|
import pwndbg.chain
|
||||||
import pwndbg.color
|
import pwndbg.color
|
||||||
|
@ -297,13 +291,13 @@ class _ArgparsedCommand(Command):
|
||||||
return tuple(), vars(self.parser.parse_args(argv))
|
return tuple(), vars(self.parser.parse_args(argv))
|
||||||
|
|
||||||
|
|
||||||
class ArgparsedCommand(object):
|
class ArgparsedCommand:
|
||||||
"""Adds documentation and offloads parsing for a Command via argparse"""
|
"""Adds documentation and offloads parsing for a Command via argparse"""
|
||||||
def __init__(self, parser_or_desc, aliases=[]):
|
def __init__(self, parser_or_desc, aliases=[]):
|
||||||
"""
|
"""
|
||||||
:param parser_or_desc: `argparse.ArgumentParser` instance or `str`
|
:param parser_or_desc: `argparse.ArgumentParser` instance or `str`
|
||||||
"""
|
"""
|
||||||
if isinstance(parser_or_desc, six.string_types):
|
if isinstance(parser_or_desc, str):
|
||||||
self.parser = argparse.ArgumentParser(description=parser_or_desc)
|
self.parser = argparse.ArgumentParser(description=parser_or_desc)
|
||||||
else:
|
else:
|
||||||
self.parser = parser_or_desc
|
self.parser = parser_or_desc
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import six
|
|
||||||
|
|
||||||
import pwndbg.auxv
|
import pwndbg.auxv
|
||||||
import pwndbg.chain
|
import pwndbg.chain
|
||||||
import pwndbg.commands
|
import pwndbg.commands
|
||||||
|
@ -17,4 +10,4 @@ import pwndbg.commands
|
||||||
def auxv():
|
def auxv():
|
||||||
for k, v in sorted(pwndbg.auxv.get().items()):
|
for k, v in sorted(pwndbg.auxv.get().items()):
|
||||||
if v is not None:
|
if v is not None:
|
||||||
print(k.ljust(24), v if not isinstance(v, six.integer_types) else pwndbg.chain.format(v))
|
print(k.ljust(24), v if not isinstance(v, int) else pwndbg.chain.format(v))
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import pwndbg.auxv
|
import pwndbg.auxv
|
||||||
import pwndbg.commands
|
import pwndbg.commands
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import pwndbg.commands
|
import pwndbg.commands
|
||||||
import pwndbg.which
|
import pwndbg.which
|
||||||
|
|
|
@ -3,10 +3,6 @@
|
||||||
"""
|
"""
|
||||||
Dumps all pwndbg-specific configuration points.
|
Dumps all pwndbg-specific configuration points.
|
||||||
"""
|
"""
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import ast
|
import ast
|
||||||
|
@ -75,7 +71,7 @@ def validate_context_sections():
|
||||||
config_context_sections.revert_default()
|
config_context_sections.revert_default()
|
||||||
return
|
return
|
||||||
|
|
||||||
class StdOutput(object):
|
class StdOutput:
|
||||||
"""A context manager wrapper to give stdout"""
|
"""A context manager wrapper to give stdout"""
|
||||||
def __enter__(self):
|
def __enter__(self):
|
||||||
return sys.stdout
|
return sys.stdout
|
||||||
|
@ -86,7 +82,7 @@ class StdOutput(object):
|
||||||
def __eq__(self, other):
|
def __eq__(self, other):
|
||||||
return type(other) is StdOutput
|
return type(other) is StdOutput
|
||||||
|
|
||||||
class FileOutput(object):
|
class FileOutput:
|
||||||
"""A context manager wrapper to reopen files on enter"""
|
"""A context manager wrapper to reopen files on enter"""
|
||||||
def __init__(self, *args):
|
def __init__(self, *args):
|
||||||
self.args = args
|
self.args = args
|
||||||
|
@ -101,7 +97,7 @@ class FileOutput(object):
|
||||||
def __eq__(self, other):
|
def __eq__(self, other):
|
||||||
return self.args == other.args
|
return self.args == other.args
|
||||||
|
|
||||||
class CallOutput(object):
|
class CallOutput:
|
||||||
"""A context manager which calls a function on write"""
|
"""A context manager which calls a function on write"""
|
||||||
def __init__(self, func):
|
def __init__(self, func):
|
||||||
self.func = func
|
self.func = func
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import pwndbg.arch
|
import pwndbg.arch
|
||||||
import pwndbg.commands
|
import pwndbg.commands
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from elftools.elf.elffile import ELFFile
|
from elftools.elf.elffile import ELFFile
|
||||||
|
|
||||||
|
|
|
@ -5,10 +5,6 @@ Compatibility functionality for GDBINIT users.
|
||||||
|
|
||||||
https://github.com/gdbinit/Gdbinit/blob/master/gdbinit
|
https://github.com/gdbinit/Gdbinit/blob/master/gdbinit
|
||||||
"""
|
"""
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,10 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import ctypes
|
import ctypes
|
||||||
import struct
|
import struct
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
import six
|
|
||||||
|
|
||||||
import pwndbg.color.context as C
|
import pwndbg.color.context as C
|
||||||
import pwndbg.color.memory as M
|
import pwndbg.color.memory as M
|
||||||
|
|
|
@ -1,14 +1,8 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
import six
|
|
||||||
|
|
||||||
import pwndbg.arch
|
import pwndbg.arch
|
||||||
import pwndbg.commands
|
import pwndbg.commands
|
||||||
|
@ -26,14 +20,14 @@ pwndbg.config.Parameter('hexdump-bytes',
|
||||||
|
|
||||||
def address_or_module_name(s):
|
def address_or_module_name(s):
|
||||||
gdbval_or_str = pwndbg.commands.sloppy_gdb_parse(s)
|
gdbval_or_str = pwndbg.commands.sloppy_gdb_parse(s)
|
||||||
if isinstance(gdbval_or_str, six.string_types):
|
if isinstance(gdbval_or_str, str):
|
||||||
module_name = gdbval_or_str
|
module_name = gdbval_or_str
|
||||||
pages = list(filter(lambda page: module_name in page.objfile, pwndbg.vmmap.get()))
|
pages = list(filter(lambda page: module_name in page.objfile, pwndbg.vmmap.get()))
|
||||||
if pages:
|
if pages:
|
||||||
return pages[0].vaddr
|
return pages[0].vaddr
|
||||||
else:
|
else:
|
||||||
raise argparse.ArgumentError('Could not find pages for module %s' % module_name)
|
raise argparse.ArgumentError('Could not find pages for module %s' % module_name)
|
||||||
elif isinstance(gdbval_or_str, six.integer_types + (gdb.Value,)):
|
elif isinstance(gdbval_or_str, (int, gdb.Value)):
|
||||||
addr = gdbval_or_str
|
addr = gdbval_or_str
|
||||||
return addr
|
return addr
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import bz2
|
import bz2
|
||||||
|
|
|
@ -3,10 +3,6 @@
|
||||||
"""
|
"""
|
||||||
Find a chain of leaks given some starting address.
|
Find a chain of leaks given some starting address.
|
||||||
"""
|
"""
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
from queue import *
|
from queue import *
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import errno as _errno
|
import errno as _errno
|
||||||
|
|
|
@ -1,13 +1,10 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
|
|
||||||
import pwndbg.chain
|
import pwndbg.chain
|
||||||
import pwndbg.commands
|
import pwndbg.commands
|
||||||
import pwndbg.enhance
|
import pwndbg.enhance
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import codecs
|
import codecs
|
||||||
|
|
|
@ -3,10 +3,6 @@
|
||||||
"""
|
"""
|
||||||
Stepping until an event occurs
|
Stepping until an event occurs
|
||||||
"""
|
"""
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import sys
|
import sys
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
|
|
|
@ -1,13 +1,9 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import os
|
|
||||||
import argparse
|
import argparse
|
||||||
import math
|
import math
|
||||||
|
import os
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import string
|
import string
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import imp
|
import imp
|
||||||
import os
|
import os
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import re
|
import re
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import binascii
|
import binascii
|
||||||
|
@ -118,10 +114,6 @@ def search(type, hex, string, executable, writable, value, mapping_name, save, n
|
||||||
'qword': 'Q'
|
'qword': 'Q'
|
||||||
}[type]
|
}[type]
|
||||||
|
|
||||||
# Work around Python 2.7.6 struct.pack / unicode incompatibility
|
|
||||||
# See https://github.com/pwndbg/pwndbg/pull/336 for more information.
|
|
||||||
fmt = str(fmt)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
value = struct.pack(fmt, value)
|
value = struct.pack(fmt, value)
|
||||||
except struct.error as e:
|
except struct.error as e:
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
|
|
||||||
|
|
|
@ -3,10 +3,6 @@
|
||||||
"""
|
"""
|
||||||
Wrapper for shell commands.
|
Wrapper for shell commands.
|
||||||
"""
|
"""
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,3 @@
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
|
|
||||||
|
|
|
@ -4,13 +4,9 @@
|
||||||
Launches the target process after setting a breakpoint at a convenient
|
Launches the target process after setting a breakpoint at a convenient
|
||||||
entry point.
|
entry point.
|
||||||
"""
|
"""
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import shlex
|
import shlex
|
||||||
|
from shlex import quote
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
|
|
||||||
|
@ -19,15 +15,6 @@ import pwndbg.elf
|
||||||
import pwndbg.events
|
import pwndbg.events
|
||||||
import pwndbg.symbol
|
import pwndbg.symbol
|
||||||
|
|
||||||
# Py 2 vs Py 3
|
|
||||||
try:
|
|
||||||
from shlex import quote
|
|
||||||
except ImportError:
|
|
||||||
from pipes import quote
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
break_on_first_instruction = False
|
break_on_first_instruction = False
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -5,10 +5,6 @@ Prints out pointer chains starting at some address in memory.
|
||||||
|
|
||||||
Generally used to print out the stack or register values.
|
Generally used to print out the stack or register values.
|
||||||
"""
|
"""
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import collections
|
import collections
|
||||||
|
|
|
@ -3,10 +3,6 @@
|
||||||
"""
|
"""
|
||||||
Dumps all pwndbg-specific theme configuration points.
|
Dumps all pwndbg-specific theme configuration points.
|
||||||
"""
|
"""
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,6 @@
|
||||||
Displays gdb, python and pwndbg versions.
|
Displays gdb, python and pwndbg versions.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
|
|
|
@ -3,15 +3,9 @@
|
||||||
"""
|
"""
|
||||||
Command to print the virtual memory map a la /proc/self/maps.
|
Command to print the virtual memory map a la /proc/self/maps.
|
||||||
"""
|
"""
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
import six
|
|
||||||
from elftools.elf.constants import SH_FLAGS
|
from elftools.elf.constants import SH_FLAGS
|
||||||
from elftools.elf.elffile import ELFFile
|
from elftools.elf.elffile import ELFFile
|
||||||
|
|
||||||
|
@ -20,13 +14,12 @@ import pwndbg.commands
|
||||||
import pwndbg.elf
|
import pwndbg.elf
|
||||||
import pwndbg.vmmap
|
import pwndbg.vmmap
|
||||||
|
|
||||||
|
integer_types = (int, gdb.Value)
|
||||||
integer_types = six.integer_types + (gdb.Value,)
|
|
||||||
|
|
||||||
|
|
||||||
def pages_filter(gdbval_or_str):
|
def pages_filter(gdbval_or_str):
|
||||||
# returns a module filter
|
# returns a module filter
|
||||||
if isinstance(gdbval_or_str, six.string_types):
|
if isinstance(gdbval_or_str, str):
|
||||||
module_name = gdbval_or_str
|
module_name = gdbval_or_str
|
||||||
return lambda page: module_name in page.objfile
|
return lambda page: module_name in page.objfile
|
||||||
|
|
||||||
|
|
|
@ -3,10 +3,6 @@
|
||||||
"""
|
"""
|
||||||
Compatibility functionality for Windbg users.
|
Compatibility functionality for Windbg users.
|
||||||
"""
|
"""
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import codecs
|
import codecs
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
|
@ -1,14 +1,8 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
import six
|
|
||||||
|
|
||||||
import pwndbg.commands
|
import pwndbg.commands
|
||||||
import pwndbg.memory
|
import pwndbg.memory
|
||||||
|
@ -37,7 +31,7 @@ def xor(address, key, count):
|
||||||
|
|
||||||
XOR ``count`` bytes at ``address`` with the key ``key``.
|
XOR ``count`` bytes at ``address`` with the key ``key``.
|
||||||
'''
|
'''
|
||||||
if not isinstance(address, six.integer_types):
|
if not isinstance(address, int):
|
||||||
try:
|
try:
|
||||||
address = int(address, 0)
|
address = int(address, 0)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
@ -60,7 +54,7 @@ def memfrob(address, count):
|
||||||
|
|
||||||
Run the memfrob command on a region of memory
|
Run the memfrob command on a region of memory
|
||||||
'''
|
'''
|
||||||
if not isinstance(address, six.integer_types):
|
if not isinstance(address, int):
|
||||||
try:
|
try:
|
||||||
address = int(address, 0)
|
address = int(address, 0)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
|
|
@ -17,11 +17,6 @@ module, for example:
|
||||||
>>> int(pwndbg.config.example_value)
|
>>> int(pwndbg.config.example_value)
|
||||||
7
|
7
|
||||||
"""
|
"""
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import codecs
|
import codecs
|
||||||
import collections
|
import collections
|
||||||
import re
|
import re
|
||||||
|
@ -30,7 +25,6 @@ import types
|
||||||
from functools import total_ordering
|
from functools import total_ordering
|
||||||
|
|
||||||
import gdb
|
import gdb
|
||||||
import six
|
|
||||||
|
|
||||||
import pwndbg.decorators
|
import pwndbg.decorators
|
||||||
|
|
||||||
|
@ -42,20 +36,18 @@ TYPES[bool] = gdb.PARAM_BOOLEAN
|
||||||
|
|
||||||
# The value is an integer.
|
# The value is an integer.
|
||||||
# This is like PARAM_INTEGER, except 0 is interpreted as itself.
|
# This is like PARAM_INTEGER, except 0 is interpreted as itself.
|
||||||
for typ in six.integer_types:
|
TYPES[int] = gdb.PARAM_ZINTEGER
|
||||||
TYPES[typ] = gdb.PARAM_ZINTEGER
|
|
||||||
|
|
||||||
# The value is a string.
|
# The value is a string.
|
||||||
# When the user modifies the string, any escape sequences,
|
# When the user modifies the string, any escape sequences,
|
||||||
# such as ‘\t’, ‘\f’, and octal escapes, are translated into
|
# such as ‘\t’, ‘\f’, and octal escapes, are translated into
|
||||||
# corresponding characters and encoded into the current host charset.
|
# corresponding characters and encoded into the current host charset.
|
||||||
for typ in six.string_types:
|
TYPES[str] = gdb.PARAM_STRING
|
||||||
TYPES[typ] = gdb.PARAM_STRING
|
|
||||||
|
|
||||||
triggers = collections.defaultdict(lambda: [])
|
triggers = collections.defaultdict(lambda: [])
|
||||||
|
|
||||||
|
|
||||||
class Trigger(object):
|
class Trigger:
|
||||||
def __init__(self, names):
|
def __init__(self, names):
|
||||||
if not isinstance(names, list):
|
if not isinstance(names, list):
|
||||||
names = [names]
|
names = [names]
|
||||||
|
@ -150,11 +142,11 @@ class Parameter(gdb.Parameter):
|
||||||
value = self.raw_value
|
value = self.raw_value
|
||||||
|
|
||||||
# For string value, convert utf8 byte string to unicode.
|
# For string value, convert utf8 byte string to unicode.
|
||||||
if isinstance(value, six.binary_type):
|
if isinstance(value, bytes):
|
||||||
value = codecs.decode(value, 'utf-8')
|
value = codecs.decode(value, 'utf-8')
|
||||||
|
|
||||||
# Remove surrounded ' and " characters
|
# Remove surrounded ' and " characters
|
||||||
if isinstance(value, six.string_types):
|
if isinstance(value, str):
|
||||||
# The first character must be ' or " and ends with the same character.
|
# The first character must be ' or " and ends with the same character.
|
||||||
# See PR #404 for more information
|
# See PR #404 for more information
|
||||||
pattern = r"^(?P<quote>[\"'])(?P<content>.*?)(?P=quote)$"
|
pattern = r"^(?P<quote>[\"'])(?P<content>.*?)(?P=quote)$"
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import pwndbg.arch
|
import pwndbg.arch
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from .constant import Constant
|
from .constant import Constant
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from .constant import Constant
|
from .constant import Constant
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from .constant import Constant
|
from .constant import Constant
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from .constant import Constant
|
from .constant import Constant
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
|
|
||||||
class Constant(int):
|
class Constant(int):
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from .constant import Constant
|
from .constant import Constant
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from .constant import Constant
|
from .constant import Constant
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from .constant import Constant
|
from .constant import Constant
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from .constant import Constant
|
from .constant import Constant
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from .constant import Constant
|
from .constant import Constant
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import platform
|
import platform
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from .constant import Constant
|
from .constant import Constant
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from .constant import Constant
|
from .constant import Constant
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from .constant import Constant
|
from .constant import Constant
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from .constant import Constant
|
from .constant import Constant
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from .constant import Constant
|
from .constant import Constant
|
||||||
|
|
||||||
|
|
|
@ -7,10 +7,6 @@ is declared.
|
||||||
We need to catch on the fly. We do this by swapping out the base classes of the
|
We need to catch on the fly. We do this by swapping out the base classes of the
|
||||||
Structure type, and incurring a performance penalty for foreign-endianness targets.
|
Structure type, and incurring a performance penalty for foreign-endianness targets.
|
||||||
"""
|
"""
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import ctypes
|
import ctypes
|
||||||
import sys
|
import sys
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import functools
|
import functools
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,6 @@
|
||||||
Functionality for disassmebling code at an address, or at an
|
Functionality for disassmebling code at an address, or at an
|
||||||
address +/- a few instructions.
|
address +/- a few instructions.
|
||||||
"""
|
"""
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import collections
|
import collections
|
||||||
|
|
||||||
|
@ -18,7 +14,6 @@ from capstone import *
|
||||||
import pwndbg.arch
|
import pwndbg.arch
|
||||||
import pwndbg.disasm.arch
|
import pwndbg.disasm.arch
|
||||||
import pwndbg.ida
|
import pwndbg.ida
|
||||||
import pwndbg.jump
|
|
||||||
import pwndbg.memoize
|
import pwndbg.memoize
|
||||||
import pwndbg.memory
|
import pwndbg.memory
|
||||||
import pwndbg.symbol
|
import pwndbg.symbol
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import collections
|
import collections
|
||||||
|
|
||||||
|
@ -27,7 +23,7 @@ for value1, name1 in dict(access).items():
|
||||||
access.setdefault(value1 | value2, '%s | %s' % (name1, name2))
|
access.setdefault(value1 | value2, '%s | %s' % (name1, name2))
|
||||||
|
|
||||||
|
|
||||||
class DisassemblyAssistant(object):
|
class DisassemblyAssistant:
|
||||||
# Registry of all instances, {architecture: instance}
|
# Registry of all instances, {architecture: instance}
|
||||||
assistants = {}
|
assistants = {}
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import collections
|
import collections
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from capstone import CS_GRP_JUMP
|
from capstone import CS_GRP_JUMP
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import collections
|
import collections
|
||||||
|
|
||||||
|
|
|
@ -3,10 +3,6 @@
|
||||||
"""
|
"""
|
||||||
Prints structures in a manner similar to Windbg's "dt" command.
|
Prints structures in a manner similar to Windbg's "dt" command.
|
||||||
"""
|
"""
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import glob
|
import glob
|
||||||
import os
|
import os
|
||||||
|
|
|
@ -7,10 +7,6 @@ all of the address spaces and permissions of an ELF file in memory.
|
||||||
This is necessary for when access to /proc is restricted, or when
|
This is necessary for when access to /proc is restricted, or when
|
||||||
working on a BSD system which simply does not have /proc.
|
working on a BSD system which simply does not have /proc.
|
||||||
"""
|
"""
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import ctypes
|
import ctypes
|
||||||
import sys
|
import sys
|
||||||
|
|
|
@ -29,16 +29,9 @@
|
||||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#
|
#
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import ctypes
|
import ctypes
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import six
|
|
||||||
|
|
||||||
import pwndbg.arch
|
import pwndbg.arch
|
||||||
import pwndbg.ctypes
|
import pwndbg.ctypes
|
||||||
import pwndbg.events
|
import pwndbg.events
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from __future__ import absolute_import
|
|
||||||
from __future__ import division
|
|
||||||
from __future__ import print_function
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
import pwndbg.emu.x86
|
import pwndbg.emu.x86
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue