Gallopsled / Gallopsled/pwntools

Shellcode encoders seem broken

Open
#1,472 3 comments 0 reactions 0 assignees View on GitHub
shellcode
Dominant language
Python
Stars
13.7k
Forks
1.9k
Avg merge
6d 23h
Merged PRs (30d)
3

Description

The `encode()` routine should not ever emit bytes in `avoid`.

```py
>>> encode(asm(shellcraft.sh()), avoid='\x01')
b'jhh///sh/bin\x89\xe3h\x01\x01\x01\x01\x814$ri\x01\x011\xc9Qj\x04Y\x01\xe1Q\x89\xe11\xd2j\x0bX\xcd\x80'
```

Contributor guide

Open the contributing guide

Research direction

Start by locating the encode() routine and reproduce the documented asm(shellcraft.sh()) example with avoid='\x01'. Trace how the encoder handles forbidden bytes, then verify that the output contains none of the requested avoid bytes and that existing encoder behavior remains intact.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
reverse-engineering, security
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.