-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pwntools does not work on 32-bit Ubuntu #518
Comments
Sounds good to me. |
Looks like some exception is throwing before we hit this warning |
It looks like the issue is the trailing padding / alignment of the structures.
|
I have installed python3-pwntools using command "pip3 install git+https://github.com/arthaud/python3-pwntools.git", but problem still exsists. OUTPUT: In [1]: from pwn import *AssertionError Traceback (most recent call last) ~/.pyenv/versions/3.7.4/lib/python3.7/site-packages/pwn/init.py in |
As your command implies, you installed from a different fork, which is no longer under development |
So the sole reason its not on i686 is "don't feel like it"? Excellent! Remind me to never invite you to any code porting projects. |
I think the issue got resolved by now, thanks to Python 3 making more sense with numbers. Is your issue still a thing? I have been using pwntools on a 32-bit ARM system with success, and I don't remember anything going exceptionally wrong. |
The issue with supporting i686 as a *target* doesn’t exist.
Python2 has some nasty edges around the maximum value of an integer, that
make it difficult to support 64-but values AND have passing tests. Tests
at all on i686 is impossible since no CI system supports that natively IIRC.
Is the failure you’re seeing a hard crash, or annoying warning?
|
I gave up trying to get some stupid python 2.7 script from 2017 working. I just don't have the patience for that. Now as a coder, I like to develop my stuff on old OLD machines so that I make sure my stuff will work on almost anything. So when I see people go all "lol, no 32 bit, we can't be bothered" it irritates me. |
PRs are welcome of course, but this would be a bit of an undertaking, as Python 2 makes a distinction between ints vs longs—this mainly leads to problems when a 32-bit attacker is working on 64-bit binaries, but might appear all of a sudden in strange places. It would be best to port your script to Python 3 if possible, because Python 2 will only get less support over time. Also please do not mistake 'we are unable to solve this hard thing in the time we have, so let's warn that stuff may break' for 'I don't feel like it lol', many can find it disrespectful. |
There are several reasons it doesn't work on Ubuntu i686. Among them, only two really matter:
int()
instead oflong()
which causes issues with numbers larger than 2**32-1useragents
module.Since I don't ever intend to run Ubuntu i686, and Travis does not have an option, I suggest we loudly warn users who are using a 32-bit Python.
Does this sound OK? Something like:
The text was updated successfully, but these errors were encountered: