From 32840ad8068bf584cd715e049f0a05e672fb2502 Mon Sep 17 00:00:00 2001 From: Gordiig Date: Sun, 1 Oct 2023 14:39:11 +0300 Subject: [PATCH 1/2] FIX: Getting right amount of data for search fix (#2281) * Getting right amount of data for search fix * Add line to CHANGELOG.md --- CHANGELOG.md | 3 ++- pwnlib/elf/elf.py | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 17c1a2071..eac87fc2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -68,8 +68,9 @@ The table below shows which release corresponds to each branch, and what date th | [2.2.0](#220) | | Jan 5, 2015 ## 4.13.0 (`dev`) +- [#2281][2281] FIX: Getting right amount of data for search fix - +[2281]: https://github.com/Gallopsled/pwntools/pull/2281 ## 4.12.0 (`beta`) - [#2202][2202] Fix `remote` and `listen` in sagemath diff --git a/pwnlib/elf/elf.py b/pwnlib/elf/elf.py index 96244af8f..4a2437206 100644 --- a/pwnlib/elf/elf.py +++ b/pwnlib/elf/elf.py @@ -1195,9 +1195,10 @@ def search(self, needle, writable = False, executable = False): for seg in segments: addr = seg.header.p_vaddr memsz = seg.header.p_memsz - zeroed = memsz - seg.header.p_filesz + filesz = seg.header.p_filesz + zeroed = memsz - filesz offset = seg.header.p_offset - data = self.mmap[offset:offset+memsz] + data = self.mmap[offset:offset+filesz] data += b'\x00' * zeroed offset = 0 while True: From 045b8c2186d042f7c682afe55f003d2cb36916db Mon Sep 17 00:00:00 2001 From: Gordiig Date: Sun, 1 Oct 2023 14:39:11 +0300 Subject: [PATCH 2/2] FIX: Getting right amount of data for search fix (#2281) --- CHANGELOG.md | 11 +++++++++-- pwnlib/elf/elf.py | 5 +++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 17c1a2071..d21ad85ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,8 @@ The table below shows which release corresponds to each branch, and what date th | ---------------- | -------- | ---------------------- | | [4.13.0](#4130-dev) | `dev` | | [4.12.0](#4120-beta) | `beta` | -| [4.11.0](#4110-stable) | `stable` | Sep 15, 2023 +| [4.11.1](#4111-stable) | `stable` | +| [4.11.0](#4110) | | Sep 15, 2023 | [4.10.0](#4100) | | May 21, 2023 | [4.9.0](#490) | | Dec 29, 2022 | [4.8.0](#480) | | Apr 21, 2022 @@ -88,7 +89,13 @@ The table below shows which release corresponds to each branch, and what date th [2257]: https://github.com/Gallopsled/pwntools/pull/2257 [2225]: https://github.com/Gallopsled/pwntools/pull/2225 -## 4.11.0 (`stable`) +## 4.11.1 (`stable`) + +- [#2281][2281] FIX: Getting right amount of data for search fix + +[2281]: https://github.com/Gallopsled/pwntools/pull/2281 + +## 4.11.0 - [#2185][2185] make fmtstr module able to create payload without $ notation - [#2103][2103] Add search for libc binary by leaked function addresses `libcdb.search_by_symbol_offsets()` diff --git a/pwnlib/elf/elf.py b/pwnlib/elf/elf.py index 8bbf0b859..0fae91db1 100644 --- a/pwnlib/elf/elf.py +++ b/pwnlib/elf/elf.py @@ -1195,9 +1195,10 @@ def search(self, needle, writable = False, executable = False): for seg in segments: addr = seg.header.p_vaddr memsz = seg.header.p_memsz - zeroed = memsz - seg.header.p_filesz + filesz = seg.header.p_filesz + zeroed = memsz - filesz offset = seg.header.p_offset - data = self.mmap[offset:offset+memsz] + data = self.mmap[offset:offset+filesz] data += b'\x00' * zeroed offset = 0 while True: