Skip to content

Commit cc6aead

Browse files
authored
Merge branch 'dev' into tube_upload_manually
2 parents e258345 + b08f4b7 commit cc6aead

File tree

35 files changed

+1887
-347
lines changed

35 files changed

+1887
-347
lines changed

.github/workflows/ci.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,11 +150,18 @@ jobs:
150150
pwn shellcraft --list |tail
151151
pwn shellcraft -l --syscalls |tail
152152
pwn shellcraft -l execve
153+
pwn shellcraft -l execve + exit
153154
pwn shellcraft --show i386.linux.loader_append
155+
pwn shellcraft --show i386.linux.loader_append + i386.linux.sh
154156
pwn shellcraft -f asm --color amd64.linux.sh
157+
pwn shellcraft -f asm --color amd64.linux.setreuid + amd64.linux.cat /etc/passwd
158+
pwn shellcraft -f asm --color amd64.linux.setreuid = amd64.linux.cat /key+secret --delim =
155159
pwn shellcraft -f elf amd64.linux.syscalls.exit 0 </dev/null |pwn hex
160+
pwn shellcraft -f elf amd64.linux.cat /etc/passwd + amd64.linux.syscalls.exit 0 </dev/null |pwn hex
156161
pwn shellcraft -f i --color amd64.linux.cat /etc/passwd </dev/null
162+
pwn shellcraft -f i --color amd64.linux.cat /etc/passwd + amd64.linux.sh </dev/null
157163
pwn shellcraft -f c amd64.linux.syscalls.exit 0 </dev/null
164+
pwn shellcraft -f c amd64.linux.cat /etc/passwd + amd64.linux.syscalls.exit 0 </dev/null
158165
pwn shellcraft -f str aarch64.linux.sh </dev/null
159166
pwn shellcraft -abr -f elf -o /dev/null amd64.linux.cat /etc/passwd </dev/null
160167
pwn shellcraft -nzr thumb.linux.syscalls.execve /bin/cat '["/bin/cat", "/etc/os-release"]' </dev/null
@@ -200,12 +207,35 @@ jobs:
200207
with:
201208
name: packages
202209
path: dist/
210+
include-hidden-files: true
203211

204212
- uses: actions/upload-artifact@v4
205213
with:
206214
name: coverage-${{ matrix.python_version }}
207215
path: .coverage*
216+
include-hidden-files: true
208217

218+
windows-test:
219+
runs-on: windows-latest
220+
timeout-minutes: 30
221+
continue-on-error: true
222+
steps:
223+
- uses: actions/checkout@v4
224+
225+
- name: Set up Python 3.12
226+
uses: actions/setup-python@v5
227+
with:
228+
python-version: '3.12'
229+
230+
- name: Install dependencies
231+
run: |
232+
pip install --upgrade pip
233+
pip install --upgrade --editable .
234+
235+
- name: Sanity checks
236+
run: |
237+
python -bb -c 'from pwn import *'
238+
python -bb examples/text.py
209239
210240
upload-coverage:
211241
runs-on: ubuntu-latest

.github/workflows/docker.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,31 +22,31 @@ jobs:
2222
password: ${{ secrets.DOCKERHUB_PASSWORD }}
2323

2424
- name: Build and push base image
25-
uses: docker/build-push-action@v5
25+
uses: docker/build-push-action@v6
2626
if: github.event_name == 'workflow_dispatch'
2727
with:
2828
context: "{{defaultContext}}:extra/docker/base"
2929
push: true
3030
tags: pwntools/pwntools:base
3131

3232
- name: Build and push stable image
33-
uses: docker/build-push-action@v5
33+
uses: docker/build-push-action@v6
3434
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/stable')
3535
with:
3636
context: "{{defaultContext}}:extra/docker/stable"
3737
push: true
3838
tags: pwntools/pwntools:stable
3939

4040
- name: Build and push beta image
41-
uses: docker/build-push-action@v5
41+
uses: docker/build-push-action@v6
4242
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/beta')
4343
with:
4444
context: "{{defaultContext}}:extra/docker/beta"
4545
push: true
4646
tags: pwntools/pwntools:beta
4747

4848
- name: Build and push dev image
49-
uses: docker/build-push-action@v5
49+
uses: docker/build-push-action@v6
5050
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/dev')
5151
with:
5252
context: "{{defaultContext}}:extra/docker/dev"
@@ -56,7 +56,7 @@ jobs:
5656
pwntools/pwntools:latest
5757
5858
- name: Build and push ci image
59-
uses: docker/build-push-action@v5
59+
uses: docker/build-push-action@v6
6060
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'push' && github.ref == 'refs/heads/dev')
6161
with:
6262
context: "{{defaultContext}}:travis/docker"

CHANGELOG.md

Lines changed: 66 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,11 @@ The table below shows which release corresponds to each branch, and what date th
99

1010
| Version | Branch | Release Date |
1111
| ---------------- | -------- | ---------------------- |
12-
| [4.14.0](#4140-dev) | `dev` |
13-
| [4.13.0](#4130-beta) | `beta` |
14-
| [4.12.1](#4121) | |
15-
| [4.12.0](#4120-stable) | `stable` | Feb 22, 2024
12+
| [4.15.0](#4150-dev) | `dev` |
13+
| [4.14.0](#4140-beta) | `beta` |
14+
| [4.13.1](#4131-stable) | `stable` | Sep 29, 2024
15+
| [4.13.0](#4130) | | Aug 12, 2024
16+
| [4.12.0](#4120) | | Feb 22, 2024
1617
| [4.11.1](#4111) | | Nov 14, 2023
1718
| [4.11.0](#4110) | | Sep 15, 2023
1819
| [4.10.0](#4100) | | May 21, 2023
@@ -70,18 +71,47 @@ The table below shows which release corresponds to each branch, and what date th
7071
| [3.0.0](#300) | | Aug 20, 2016
7172
| [2.2.0](#220) | | Jan 5, 2015
7273

73-
## 4.14.0 (`dev`)
74+
## 4.15.0 (`dev`)
75+
76+
- [#2471][2471] Properly close spawned kitty window
77+
- [#2358][2358] Cache output of `asm()`
78+
- [#2457][2457] Catch exception of non-ELF files in checksec.
79+
- [#2444][2444] Add `ELF.close()` to release resources
80+
- [#2413][2413] libcdb: improve the search speed of `search_by_symbol_offsets` in local libc-database
81+
- [#2470][2470] Fix waiting for gdb under WSL2
82+
83+
[2471]: https://github.com/Gallopsled/pwntools/pull/2471
84+
[2358]: https://github.com/Gallopsled/pwntools/pull/2358
85+
[2457]: https://github.com/Gallopsled/pwntools/pull/2457
86+
[2444]: https://github.com/Gallopsled/pwntools/pull/2444
87+
[2413]: https://github.com/Gallopsled/pwntools/pull/2413
88+
[2470]: https://github.com/Gallopsled/pwntools/pull/2470
89+
90+
## 4.14.0 (`beta`)
7491

75-
- [#2360][2360] Add offline parameter for `search_by_hash` series function
7692
- [#2356][2356] Add local libc database provider for libcdb
93+
- [#2360][2360] Add offline parameter for `search_by_hash` series function
94+
- [#2388][2388] libcdb: add `offline_only` to `search_by_symbol_offsets`
7795
- [#2374][2374] libcdb.unstrip_libc: debug symbols are fetched only if not present
7896
- [#2327][2327] Add basic support to debug processes on Windows
79-
- [#2322][2322] Add basic RISCV64 shellcraft support
97+
- [#2437][2437] Support asm/disasm on Windows
8098
- [#2330][2330] Change `context.newline` when setting `context.os` to `"windows"`
99+
- [#2322][2322] Add basic RISCV64 shellcraft support
100+
- [#2376][2376] Return buffered data on first EOF in tube.readline()
101+
- [#2371][2371] Add functions for retrieving process mappings
102+
- [#2398][2398] Add support for generating multiple shellcodes at a time in shellcraft
81103
- [#2389][2389] Fix passing bytes to `context.log_file` and `crc.BitPolynom`
82104
- [#2391][2391] Fix error message when passing invalid kwargs to `xor`
83-
- [#2376][2376] Return buffered data on first EOF in tube.readline()
84-
105+
- [#2387][2387] Convert apport_corefile() output from bytes-like object to string
106+
- [#2415][2415] Add shellcraft template for IPv6 socket
107+
- [#2405][2405] Add "none" ssh authentication method
108+
- [#2427][2427] Document behaviour of remote()'s sni argument as string.
109+
- [#2382][2382] added optional port, gdb_args and gdbserver_args parameters to gdb.debug()
110+
- [#2435][2435] Speed up gdbserver handshake in gdb.debug()
111+
- [#2436][2436] Add resolution_addr parameter to Ret2dlresolvePayload
112+
113+
[2436]: https://github.com/Gallopsled/pwntools/pull/2436
114+
[2371]: https://github.com/Gallopsled/pwntools/pull/2371
85115
[2360]: https://github.com/Gallopsled/pwntools/pull/2360
86116
[2356]: https://github.com/Gallopsled/pwntools/pull/2356
87117
[2374]: https://github.com/Gallopsled/pwntools/pull/2374
@@ -91,8 +121,30 @@ The table below shows which release corresponds to each branch, and what date th
91121
[2389]: https://github.com/Gallopsled/pwntools/pull/2389
92122
[2391]: https://github.com/Gallopsled/pwntools/pull/2391
93123
[2376]: https://github.com/Gallopsled/pwntools/pull/2376
94-
95-
## 4.13.0 (`beta`)
124+
[2387]: https://github.com/Gallopsled/pwntools/pull/2387
125+
[2388]: https://github.com/Gallopsled/pwntools/pull/2388
126+
[2398]: https://github.com/Gallopsled/pwntools/pull/2398
127+
[2415]: https://github.com/Gallopsled/pwntools/pull/2415
128+
[2405]: https://github.com/Gallopsled/pwntools/pull/2405
129+
[2427]: https://github.com/Gallopsled/pwntools/pull/2405
130+
[2382]: https://github.com/Gallopsled/pwntools/pull/2382
131+
[2435]: https://github.com/Gallopsled/pwntools/pull/2435
132+
[2437]: https://github.com/Gallopsled/pwntools/pull/2437
133+
134+
## 4.13.1 (`stable`)
135+
136+
- [#2445][2445] Fix parsing the PLT on Windows
137+
- [#2466][2466] Fix PLT emulation with Unicorn 2.1.0
138+
- [#2466][2466] Switch to PyPi Simple API for update checks
139+
- [#2467][2467] Fix loading at all on Windows
140+
- [#2469][2469] GDB 15+ rpyc detection
141+
142+
[2445]: https://github.com/Gallopsled/pwntools/pull/2445
143+
[2466]: https://github.com/Gallopsled/pwntools/pull/2466
144+
[2467]: https://github.com/Gallopsled/pwntools/pull/2467
145+
[2469]: https://github.com/Gallopsled/pwntools/pull/2469
146+
147+
## 4.13.0
96148

97149
- [#2242][2242] Term module revamp: activating special handling of terminal only when necessary
98150
- [#2277][2277] elf: Resolve more relocations into GOT entries
@@ -122,6 +174,8 @@ The table below shows which release corresponds to each branch, and what date th
122174
- [#2268][2268] Add a `flatten` argument to `ssh.libs`
123175
- [#2347][2347] Fix/workaround Unicorn Engine 1GB limit that calls exit()
124176
- [#2233][2233] Fix gdb.debug: exe parameter now respected, allow empty argv
177+
- [#2373][2373] Fix displaying bright color variation in terminal output
178+
- [#2378][2378] Don't go though a shell in `gdb.debug`
125179

126180
[2242]: https://github.com/Gallopsled/pwntools/pull/2242
127181
[2277]: https://github.com/Gallopsled/pwntools/pull/2277
@@ -148,16 +202,10 @@ The table below shows which release corresponds to each branch, and what date th
148202
[2268]: https://github.com/Gallopsled/pwntools/pull/2268
149203
[2347]: https://github.com/Gallopsled/pwntools/pull/2347
150204
[2233]: https://github.com/Gallopsled/pwntools/pull/2233
151-
152-
## 4.12.1
153-
154-
- [#2373][2373] Fix displaying bright color variation in terminal output
155-
- [#2378][2378] Don't go though a shell in `gdb.debug`
156-
157205
[2373]: https://github.com/Gallopsled/pwntools/pull/2373
158206
[2378]: https://github.com/Gallopsled/pwntools/pull/2378
159207

160-
## 4.12.0 (`stable`)
208+
## 4.12.0
161209

162210
- [#2202][2202] Fix `remote` and `listen` in sagemath
163211
- [#2117][2117] Add -p (--prefix) and -s (--separator) arguments to `hex` command

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ Pwntools is best supported on 64-bit Ubuntu LTS releases (14.04, 16.04, 18.04, a
3737
Python3 is suggested, but Pwntools still works with Python 2.7. Most of the functionality of pwntools is self-contained and Python-only. You should be able to get running quickly with
3838

3939
```sh
40-
apt-get update
41-
apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
40+
sudo apt-get update
41+
sudo apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
4242
python3 -m pip install --upgrade pip
4343
python3 -m pip install --upgrade pwntools
4444
```

docs/source/install.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ Python3
2828

2929
.. code-block:: bash
3030
31-
$ apt-get update
32-
$ apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
31+
$ sudo apt-get update
32+
$ sudo apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
3333
$ python3 -m pip install --upgrade pip
3434
$ python3 -m pip install --upgrade pwntools
3535
@@ -43,8 +43,8 @@ Additionally, due to `pip` dropping support for Python2, a specfic version of `p
4343

4444
.. code-block:: bash
4545
46-
$ apt-get update
47-
$ apt-get install python python-pip python-dev git libssl-dev libffi-dev build-essential
46+
$ sudo apt-get update
47+
$ sudo apt-get install python python-pip python-dev git libssl-dev libffi-dev build-essential
4848
$ python2 -m pip install --upgrade pip==20.3.4
4949
$ python2 -m pip install --upgrade pwntools
5050

docs/source/install/binutils.rst

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ Ubuntu Xenial (16.04) has official packages for most architectures, and does not
1818

1919
.. code-block:: bash
2020
21-
$ apt-get install software-properties-common
22-
$ apt-add-repository ppa:pwntools/binutils
23-
$ apt-get update
21+
$ sudo apt-get install software-properties-common
22+
$ sudo apt-add-repository ppa:pwntools/binutils
23+
$ sudo apt-get update
2424
2525
Then, install the binutils for your architecture.
2626

2727
.. code-block:: bash
2828
29-
$ apt-get install binutils-$ARCH-linux-gnu
29+
$ sudo apt-get install binutils-$ARCH-linux-gnu
3030
3131
Mac OS X
3232
^^^^^^^^^^^^^^^^
@@ -42,6 +42,12 @@ repo <https://github.com/Gallopsled/pwntools-binutils/>`__.
4242
$ wget https://raw.githubusercontent.com/Gallopsled/pwntools-binutils/master/macos/binutils-$ARCH.rb
4343
$ brew install ./binutils-$ARCH.rb
4444
45+
Windows
46+
^^^^^^^^^^^^^^^^
47+
48+
Windows support is experimental. You can try installing a prebuilt version of binutils
49+
for your desired architecture from the `GNU Toolchains <https://gnutoolchains.com/>`__ project.
50+
4551
Alternate OSes
4652
^^^^^^^^^^^^^^^^
4753

docs/source/install/headers.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Ubuntu
1010

1111
.. code-block:: bash
1212
13-
$ apt-get install python-dev
13+
$ sudo apt-get install python-dev
1414
1515
Mac OS X
1616
^^^^^^^^^^^^^^^^

0 commit comments

Comments
 (0)