Gallopsled / Gallopsled/pwntools
Shellcode encoders seem broken
Open
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
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