From 451b28d74e4f4986503360d6489d58568e3883f9 Mon Sep 17 00:00:00 2001 From: huntergregal Date: Fri, 7 May 2021 03:56:10 -0400 Subject: [PATCH 1/3] encoders: support `avoid == bytes` in error message --- pwnlib/encoders/encoder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pwnlib/encoders/encoder.py b/pwnlib/encoders/encoder.py index 5225f5293..3ffb84456 100644 --- a/pwnlib/encoders/encoder.py +++ b/pwnlib/encoders/encoder.py @@ -97,7 +97,7 @@ def encode(raw_bytes, avoid=None, expr=None, force=0, pcreg=''): elif expr: avoid_errmsg = repr(expr) else: - avoid_errmsg = ''.join(avoid) + avoid_errmsg = ''.join(repr(avoid)) args = (context.arch, avoid_errmsg, hexdump(raw_bytes)) msg = "No encoders for %s which can avoid %s for\n%s" % args From 954af89cfd62f58dcc1a5214e7fc4b3a22b36ed0 Mon Sep 17 00:00:00 2001 From: huntergregal Date: Fri, 7 May 2021 04:00:18 -0400 Subject: [PATCH 2/3] update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 195286311..48fa358fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -70,6 +70,7 @@ The table below shows which release corresponds to each branch, and what date th - [#1753][1753] major change: less unconditional imports in pwnlib - [#1776][1776] mips: do not use $t0 temporary variable in dupio - [#1846][1846] support launching GDB in more different terminals +- [#1877][1877] encoders error message handles when `avoid` is bytes in python3 [1429]: https://github.com/Gallopsled/pwntools/pull/1429 [1566]: https://github.com/Gallopsled/pwntools/pull/1566 @@ -80,6 +81,7 @@ The table below shows which release corresponds to each branch, and what date th [1753]: https://github.com/Gallopsled/pwntools/pull/1753 [1776]: https://github.com/Gallopsled/pwntools/pull/1776 [1846]: https://github.com/Gallopsled/pwntools/pull/1846 +[1877]: https://github.com/Gallopsled/pwntools/pull/1877 ## 4.6.0 (`beta`) From 05acad7eae7d2d3bb9b6326374fd281b4606fb3f Mon Sep 17 00:00:00 2001 From: Hunter Gregal Date: Fri, 7 May 2021 04:08:55 -0400 Subject: [PATCH 3/3] Update pwnlib/encoders/encoder.py Co-authored-by: Arusekk --- pwnlib/encoders/encoder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pwnlib/encoders/encoder.py b/pwnlib/encoders/encoder.py index 3ffb84456..ca9e8daaf 100644 --- a/pwnlib/encoders/encoder.py +++ b/pwnlib/encoders/encoder.py @@ -97,7 +97,7 @@ def encode(raw_bytes, avoid=None, expr=None, force=0, pcreg=''): elif expr: avoid_errmsg = repr(expr) else: - avoid_errmsg = ''.join(repr(avoid)) + avoid_errmsg = repr(bytes(avoid)) args = (context.arch, avoid_errmsg, hexdump(raw_bytes)) msg = "No encoders for %s which can avoid %s for\n%s" % args