mirror of
https://github.com/Gallopsled/pwntools.git
synced 2026-11-11 02:02:17 -10:00
Compare commits
11
Commits
3.7.0beta0
...
3.7.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
52b8f4fa29 | ||
|
|
4552624883 | ||
|
|
b171f1e2e3 | ||
|
|
85523e6d8a | ||
|
|
8b761fc0e3 | ||
|
|
8953dc3d5c | ||
|
|
d586d6f660 | ||
|
|
6709a4f747 | ||
|
|
1a4a1e11ba | ||
|
|
f82c0aa3a2 | ||
|
|
646ca1eb26 |
No files matched your search
+31
-7
@@ -9,9 +9,11 @@ The table below shows which release corresponds to each branch, and what date th
|
||||
|
||||
| Version | Branch | Release Date |
|
||||
| ---------------- | -------- | ---------------------- |
|
||||
| [3.8.0](#380) | `dev` | Jul 28, 2017 (planned)
|
||||
| [3.7.0](#370) | `beta` | Jun 17, 2017 (planned)
|
||||
| [3.6.0](#360) | `stable` | May 8, 2017
|
||||
| [3.9.0](#390) | `dev` | Sep 8, 2017 (planned)
|
||||
| [3.8.0](#380) | `beta` | Jul 28, 2017 (planned)
|
||||
| [3.7.0](#370) | `stable` | Jun 19, 2017
|
||||
| [3.6.1](#361) | | May 12, 2017
|
||||
| [3.6.0](#360) | | May 8, 2017
|
||||
| [3.5.1](#351) | | Apr 15, 2017
|
||||
| [3.5.0](#350) | | Mar 26, 2017
|
||||
| [3.4.1](#341) | | Feb 17, 2017
|
||||
@@ -32,17 +34,39 @@ The table below shows which release corresponds to each branch, and what date th
|
||||
| [3.0.0](#300) | | Aug 20, 2016
|
||||
| [2.2.0](#220) | | Jan 5, 2015
|
||||
|
||||
## 3.9.0
|
||||
|
||||
To be released on Sep 8, 2017.
|
||||
|
||||
## 3.8.0
|
||||
|
||||
To be on Jul 28, 2017.
|
||||
To be released on Jul 28, 2017.
|
||||
|
||||
- [#981][981] Fixed RELRO detection logic
|
||||
- [#986][986] Enhancements to DynELF for controlling usage of LibcDB
|
||||
|
||||
[981]: https://github.com/Gallopsled/pwntools/issues/981
|
||||
[986]: https://github.com/Gallopsled/pwntools/issues/986
|
||||
|
||||
## 3.7.0
|
||||
|
||||
To be on Jun 17, 2017.
|
||||
- [#933][933] DynELF works better with different base addresses
|
||||
- [#952][952] A few small fixes were made to `pwn template`, and the CRC database was updated.
|
||||
- [5c72d62c][5c72d62c] Updated the CRC database
|
||||
|
||||
As of May 4, 2017, there have been no new features or major notable changes since 3.6.0.
|
||||
[933]: https://github.com/Gallopsled/pwntools/issues/933
|
||||
[952]: https://github.com/Gallopsled/pwntools/issues/952
|
||||
[5c72d62c]: https://github.com/Gallopsled/pwntools/commit/5c72d62c
|
||||
|
||||
A few typos were fixed, a few Linux kernel configuration flags were added, and a few error messages were enhanced.
|
||||
## 3.6.1
|
||||
|
||||
- [#979][979]+[1a4a1e1][1a4a1e1] Fixed [#974][974], a bug related to the terminal handling and numlock.
|
||||
- [#980][980] Fixed the `pwn template` command.
|
||||
|
||||
[974]: https://github.com/Gallopsled/pwntools/issues/974
|
||||
[979]: https://github.com/Gallopsled/pwntools/pull/979
|
||||
[980]: https://github.com/Gallopsled/pwntools/pull/980
|
||||
[1a4a1e1]: https://github.com/Gallopsled/pwntools/commit/1a4a1e1
|
||||
|
||||
## 3.6.0
|
||||
|
||||
|
||||
+1
-1
@@ -2,6 +2,6 @@ graft examples
|
||||
graft extra
|
||||
include *.md *.txt *.sh *.yml MANIFEST.in
|
||||
recursive-include docs *.rst *.png Makefile *.py *.txt
|
||||
recursive-include pwnlib *.py *.asm *.rst *.md *.txt *.sh __doc__
|
||||
recursive-include pwnlib *.py *.asm *.rst *.md *.txt *.sh __doc__ *.mako
|
||||
recursive-include pwn *.py *.asm *.rst *.md *.txt *.sh
|
||||
recursive-exclude *.pyc
|
||||
@@ -2,7 +2,7 @@
|
||||

|
||||
|
||||
[](https://docs.pwntools.com/)
|
||||
[](https://pypi.python.org/pypi/pwntools/)
|
||||
[](https://pypi.python.org/pypi/pwntools/)
|
||||
[](https://travis-ci.org/Gallopsled/pwntools)
|
||||
[](https://coveralls.io/github/Gallopsled/pwntools?branch=dev)
|
||||
[](https://twitter.com/pwntools)
|
||||
|
||||
@@ -72,7 +72,7 @@ a ``process`` tube.
|
||||
|
||||
::
|
||||
|
||||
>>> shell = ssh('bandit0', 'bandit.labs.overthewire.org', password='bandit0')
|
||||
>>> shell = ssh('bandit0', 'bandit.labs.overthewire.org', password='bandit0', port=2220)
|
||||
>>> shell['whoami']
|
||||
'bandit0'
|
||||
>>> shell.download_file('/etc/motd')
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ Example showing how to use the ssh class.
|
||||
|
||||
from pwn import *
|
||||
|
||||
shell = ssh(host='bandit.labs.overthewire.org',user='bandit0',password='bandit0')
|
||||
shell = ssh(host='bandit.labs.overthewire.org',user='bandit0',password='bandit0', port=2220)
|
||||
|
||||
# Show basic command syntax
|
||||
log.info("username: %s" % shell.whoami())
|
||||
|
||||
@@ -117,9 +117,9 @@ start = local if args.LOCAL else remote
|
||||
%else:
|
||||
def start(argv=[], *a, **kw):
|
||||
if args.GDB:
|
||||
io = gdb.debug([${binary_repr}] + argv, gdbscript=gdbscript, *a, **kw)
|
||||
return gdb.debug([${binary_repr}] + argv, gdbscript=gdbscript, *a, **kw)
|
||||
else:
|
||||
io = process([${binary_repr}] + argv, *a, **kw)
|
||||
return process([${binary_repr}] + argv, *a, **kw)
|
||||
%endif
|
||||
|
||||
#===========================================================
|
||||
|
||||
+2
-2
@@ -524,7 +524,7 @@ def attach(target, gdbscript = None, exe = None, need_ptrace_scope = True, gdb_a
|
||||
.. code-block:: python
|
||||
|
||||
# Connect to the SSH server
|
||||
shell = ssh('bandit0', 'bandit.labs.overthewire.org', password='bandit0')
|
||||
shell = ssh('bandit0', 'bandit.labs.overthewire.org', password='bandit0', port=2220)
|
||||
|
||||
# Start a process on the server
|
||||
cat = shell.process(['cat'])
|
||||
@@ -763,7 +763,7 @@ def find_module_addresses(binary, ssh=None, ulimit=False):
|
||||
Example:
|
||||
|
||||
>>> with context.local(log_level=9999): # doctest: +SKIP
|
||||
... shell = ssh(host='bandit.labs.overthewire.org',user='bandit0',password='bandit0')
|
||||
... shell = ssh(host='bandit.labs.overthewire.org',user='bandit0',password='bandit0', port=2220)
|
||||
... bash_libs = gdb.find_module_addresses('/bin/bash', shell)
|
||||
>>> os.path.basename(bash_libs[0].path) # doctest: +SKIP
|
||||
'libc.so.6'
|
||||
|
||||
+23
-4
@@ -11,7 +11,9 @@ from pwnlib.term import termcap
|
||||
|
||||
__all__ = ['getch', 'getraw', 'get', 'unget']
|
||||
|
||||
|
||||
# When set, convert keypad codes into regular key presses, e.g. "+" instead of
|
||||
# `<kp plus>`
|
||||
FLAG_CONVERTKP = True
|
||||
|
||||
try: _fd = sys.stdin.fileno()
|
||||
except Exception: _fd = file('/dev/null', 'r').fileno()
|
||||
@@ -310,7 +312,24 @@ _csi_ss3s = {
|
||||
}
|
||||
|
||||
_csi_ss3kp = {
|
||||
|
||||
'M': (kc.TYPE_KEYSYM, kc.KEY_KPENTER , None),
|
||||
'X': (kc.TYPE_KEYSYM, kc.KEY_KPEQUALS, '='),
|
||||
'j': (kc.TYPE_KEYSYM, kc.KEY_KPMULT , '*'),
|
||||
'k': (kc.TYPE_KEYSYM, kc.KEY_KPPLUS , '+'),
|
||||
'l': (kc.TYPE_KEYSYM, kc.KEY_KPCOMMA , ','),
|
||||
'm': (kc.TYPE_KEYSYM, kc.KEY_KPMINUS , '-'),
|
||||
'n': (kc.TYPE_KEYSYM, kc.KEY_KPPERIOD, '.'),
|
||||
'o': (kc.TYPE_KEYSYM, kc.KEY_KPDIV , '/'),
|
||||
'p': (kc.TYPE_KEYSYM, kc.KEY_KP0 , '0'),
|
||||
'q': (kc.TYPE_KEYSYM, kc.KEY_KP1 , '1'),
|
||||
'r': (kc.TYPE_KEYSYM, kc.KEY_KP2 , '2'),
|
||||
's': (kc.TYPE_KEYSYM, kc.KEY_KP3 , '3'),
|
||||
't': (kc.TYPE_KEYSYM, kc.KEY_KP4 , '4'),
|
||||
'u': (kc.TYPE_KEYSYM, kc.KEY_KP5 , '5'),
|
||||
'v': (kc.TYPE_KEYSYM, kc.KEY_KP6 , '6'),
|
||||
'w': (kc.TYPE_KEYSYM, kc.KEY_KP7 , '7'),
|
||||
'x': (kc.TYPE_KEYSYM, kc.KEY_KP8 , '8'),
|
||||
'y': (kc.TYPE_KEYSYM, kc.KEY_KP9 , '9'),
|
||||
}
|
||||
|
||||
_csi_funcs = {
|
||||
@@ -373,14 +392,14 @@ def _peekkey_ss3(offset):
|
||||
cmd = _cbuf[offset]
|
||||
if cmd < 0x40 or cmd >= 0x80:
|
||||
return
|
||||
_cbuf = _cbuf[numb:] # XXX: numb is not defined
|
||||
_cbuf = _cbuf[offset:]
|
||||
|
||||
if chr(cmd) in _csi_ss3s:
|
||||
return Key(*_csi_ss3s[chr(cmd)])
|
||||
|
||||
if chr(cmd) in _csi_ss3kp:
|
||||
t, c, a = _csi_ss3kp[chr(cmd)]
|
||||
if CONVERTKP and a: # XXX: CONVERTKP is not defined
|
||||
if FLAG_CONVERTKP and a:
|
||||
return Key(kc.TYPE_UNICODE, a)
|
||||
else:
|
||||
return Key(t, c)
|
||||
|
||||
@@ -11,6 +11,7 @@ import pty
|
||||
import resource
|
||||
import select
|
||||
import signal
|
||||
import stat
|
||||
import subprocess
|
||||
import time
|
||||
import tty
|
||||
|
||||
+1
-1
@@ -1908,7 +1908,7 @@ from ctypes import *; libc = CDLL('libc.so.6'); print(libc.getenv(%r))
|
||||
|
||||
Example:
|
||||
|
||||
>>> s = ssh("esoteric3", "wargame.w3challs.com", 20202, "esoteric3")
|
||||
>>> s = ssh("travis", "example.pwnme")
|
||||
>>> s.aslr
|
||||
True
|
||||
"""
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
__version__ = '3.7.0beta0'
|
||||
__version__ = '3.7.0'
|
||||
@@ -86,7 +86,7 @@ except Exception as e:
|
||||
setup(
|
||||
name = 'pwntools',
|
||||
packages = find_packages(),
|
||||
version = '3.7.0beta0',
|
||||
version = '3.7.0',
|
||||
data_files = [('',
|
||||
glob.glob('*.md') + glob.glob('*.txt')),
|
||||
],
|
||||
@@ -97,7 +97,7 @@ setup(
|
||||
'data/binutils/*',
|
||||
'data/includes/*.h',
|
||||
'data/includes/*/*.h',
|
||||
'data/templates/pwnup.mako',
|
||||
'data/templates/*.mako',
|
||||
] + templates,
|
||||
},
|
||||
entry_points = {'console_scripts': console_scripts},
|
||||
|
||||
Reference in new issue
Block a user