JonathanSalwan / ROPgadget

This tool lets you search your gadgets on your binaries to facilitate your ROP exploitation. ROPgadget supports ELF, PE and Mach-O format on x86, x64, ARM, ARM64, PowerPC, SPARC, MIPS, RISC-V 64, and RISC-V Compressed architectures.
Other
3.96k stars 557 forks source link

PEP 621 and refactorisation #203

Closed n3rada closed 1 month ago

n3rada commented 1 month ago

Hello to the maintainers of this great project! 👋

I had to use this project and I wanted to take advantage of it to help you comply with Python3 project standards. From now on, it will be easier and more consistent to install your tool. Cross-platform installation is easy and is handled by Python itself. Which could be interesting for a possible future use for a ROP chain on Windows, who knows the future!

I didn't take the time to refactor all the code to follow all the best practices, I just wanted to give it a quick polish. 🧼

If you're not comfortable with poetry, just ignore it. But you should know that publishing a package is very easy with this tool: https://python-poetry.org/docs/cli#publish

Hope it will suits your needs.

Best regards

SweetVishnya commented 1 month ago

Yeah, could you, please, remove the poetry part?

SweetVishnya commented 1 month ago

Btw, merging such large changes can cause another xz-utils) I need to find time to review all of this.

JonathanSalwan commented 1 month ago

I didn't take the time to refactor all the code to follow all the best practices, I just wanted to give it a quick polish. 🧼

Is the quick polish has been automatically generated?

n3rada commented 1 month ago

I didn't take the time to refactor all the code to follow all the best practices, I just wanted to give it a quick polish. 🧼

Is the quick polish has been automatically generated?

Not at all, 1h30 for the main things + a run of black well-known formatter.

n3rada commented 1 month ago

Yeah, could you, please, remove the poetry part?

Poetry makes it really easy to manage and update project dependencies. Instead of manually editing requirements.txt, Poetry automatically resolves and locks versions of all dependencies (in poetry.lock) and allow you to respect with ease Python project management. If you really do not like the tool, I think my whole PR is trashable, since it basically move things in order to respect a PEP 621 project standard using poetry.

n3rada commented 1 month ago

Btw, merging such large changes can cause another xz-utils) I need to find time to review all of this.

Totally understand! I don't want to add extra work for you. If testing these changes becomes too complicated, feel free to close the request. My main intention was just to help lighten your load!