Message ID | 20200323235209.25030-1-kuba@kadziolka.net |
---|---|
State | Accepted |
Headers | show |
Series | [bug#40203] gnu: Add ROPgadget. | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
On Tue, 24 Mar 2020, Jakub Kądziołka wrote: [snip] > + (description > + "This tool lets you search for gadgets in binaries to help with ROP > +chain construction.") Perhaps we should expand what ROP means here. I as able to figure it out with some searching, but it would probably help non-domain experts know what this package is for. I believe such a change would be in line with what the Guix manual recommends: https://guix.gnu.org/manual/en/html_node/Synopses-and-Descriptions.html Best, Jack
On Tue, Mar 24, 2020 at 11:18:05AM -0400, Jack Hill wrote: > On Tue, 24 Mar 2020, Jakub Kądziołka wrote: > > [snip] > > > + (description > > + "This tool lets you search for gadgets in binaries to help with ROP > > +chain construction.") > > Perhaps we should expand what ROP means here. I as able to figure it out > with some searching, but it would probably help non-domain experts know what > this package is for. Thanks, I totally forgot about non-domain experts when writing that description. What do you think about this revised version? (synopsis "Semiautomatic return oriented programming") (description "This tool lets you search for @acronym{ROP, Return Oriented Programming} gadgets in binaries. Some facilities are included for automatically generating chains of gadgets to execute system calls.") Also, is the file in which I've put this package right? I choose that place because that's where radare2 is, and it has a relatively similar purpose. However, radare2 is a loose fit already, so ROPgadget would be two steps removed from the original purpose of the file... Regards, Jakub Kądziołka
On Tue, 24 Mar 2020, Jakub Kądziołka wrote: > On Tue, Mar 24, 2020 at 11:18:05AM -0400, Jack Hill wrote: >> On Tue, 24 Mar 2020, Jakub Kądziołka wrote: >> >> [snip] >> >>> + (description >>> + "This tool lets you search for gadgets in binaries to help with ROP >>> +chain construction.") >> >> Perhaps we should expand what ROP means here. I as able to figure it out >> with some searching, but it would probably help non-domain experts know what >> this package is for. > > Thanks, I totally forgot about non-domain experts when writing that > description. What do you think about this revised version? > > (synopsis "Semiautomatic return oriented programming") > (description > "This tool lets you search for @acronym{ROP, Return Oriented Programming} > gadgets in binaries. Some facilities are included for automatically generating > chains of gadgets to execute system calls.") That makes it clearer to me, thanks! > Also, is the file in which I've put this package right? I choose that > place because that's where radare2 is, and it has a relatively > similar purpose. However, radare2 is a loose fit already, so ROPgadget > would be two steps removed from the original purpose of the file... Indeed. (Package) organization is difficult. I don't think I have any useful insights. Best, Jack
Pushed as commit 60eee3e6de2a11b425496bbdf90bfe1f807c8f49 after a review from ngz on IRC.
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm index 28a30a6831..bacfc2fbf6 100644 --- a/gnu/packages/engineering.scm +++ b/gnu/packages/engineering.scm @@ -1306,6 +1306,28 @@ bindings for Python, Java, OCaml and more.") (define-public python2-capstone (package-with-python2 python-capstone)) +(define-public ropgadget + (package + (name "ropgadget") + (version "6.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "ROPGadget" version)) + (sha256 + (base32 + "0idiicgpijar9l9kqmfdh865c2mkfgxg0q7lpz77jc09l6q0afjh")))) + (build-system python-build-system) + (propagated-inputs + `(("python-capstone" ,python-capstone))) + (home-page "http://shell-storm.org/project/ROPgadget/") + (synopsis + "Gadget finder and auto-roper") + (description + "This tool lets you search for gadgets in binaries to help with ROP +chain construction.") + (license license:bsd-3))) + (define-public radare2 (package (name "radare2")