Closed gpotter2 closed 1 year ago
@gpotter2 and anyone concerned, I'm currently working on developing a module to create NDN packets similar to the IP packets module in Scapy. Would you be interested in merging that with Scapy? (Wasn't sure where to approach the members. Apologies if this is not the right place. If this isn't the right place, please let me know where is)
All contributions are welcomed if they conform to the contributing.md file.
Hi & welcome to Scapy's github ! This page lists issues that you can try to fix if you want to start contributing to Scapy.
Disclaimer
The BEST way to contribute to Scapy is to play around with it, to find and fix broken stuff by yourself, i.e. Before you attempt to fix one of those pesky issues, just HAVE FUN with Scapy !😺
By using Scapy in your work, experiments, hacks, courses... you'll often end up finding more bugs/issues/unclear stuff and contributing way more than by reading through this list of things, which is far more valuable to us.
Need inspiration? Have a look at awesome-scapy to see what people do with it !
Still here?
This list includes wishes and things added by the maintainers based on the issues that we get, but also issues marked with
TODO
orXXX
that already exist in Scapy's code base (layers). If you want to contribute to the project you might just take care one of the bugs.You can also look for issues and pull requests in the old Bitbucket repository. If you find something interesting there (there shouldn't be anything left, but sometimes lost people add issues there), please do not update it on Bitbucket, open an issue here and mention (link) the old issue and/or pull request.To get a bug, create an issue with the description of the bug and refer to this issue (just mention
#399
in the text) so we can update it.Please read How to contribute before starting to work!
Note: all of those issues are updated regularly but might sometimes fall out of date. The links are static so the part you need to change might move on master (look for it). If the issue has been fixed and we missed it, feel free to ping us
Available:
Easy - Recommended for new users - Hacktoberfest
Any of the issues tagged with "good first issue"
Participate in project Hinty: https://github.com/secdev/scapy/issues/2158. This is easy but requires a lot of hands to help :smile:. You'll just have to add static typing to a file or layer you've selected.
Add documentation for
dispatch_hook
based on this StackOverflow post. You can add this documentation toscapy/doc/scapy/advanced_usage.rst
for instance.Add
hashret()/answers()
regression tests toICMPv6ND_RA
in regression.uts as said https://github.com/secdev/scapy/blob/45c59302cefa364f6584710f9116f8492e3bdcc6/test/regression.uts#L1692 . This is a good way to discover what our unit test infrastructure looks like (it's a bit outdated though very complete.. we're trying to switch to pytest....)Medium - More advanced features or wishes
create a snap package for Scapy (#2153) (apparently that's something Linux users want)
Implement TCP_server like TCP_client (#2083), except it should handle multiple streams ! (Implement Transmission Control Block? This also leads to understanding how Scapy automatons work)
Improve
in6_getAddrType
: add support forUnique local Address
and add unit tests. (this function appears to be unused, try pinging guedou about that) https://github.com/secdev/scapy/blob/c6e1e6ccd201664db20068c0aaabba83082ea449/scapy/utils6.py#L191Add more tests in regression.uts for
IA_PD
Prefix Option in https://github.com/secdev/scapy/blob/45c59302cefa364f6584710f9116f8492e3bdcc6/test/regression.uts#L3264Make the FlagField a bit cleaner thanks to the new capabilities of
FlagsField
inisakmp.py
(This should be easy enough, tryhelp(FlagsField)
to see what this field is about) https://github.com/secdev/scapy/blob/cce88a93b006775957757bd2d311649f4d423863/scapy/layers/isakmp.py#L185Don't remove Teredo's route when refreshing in
route6.py
https://github.com/secdev/scapy/blob/cce88a93b006775957757bd2d311649f4d423863/scapy/route6.py#L41 (I'm honnestly not sure what this is about. Ask us :p)Hard - Build entire modules or refactor complex stuff
add SNMPv3 support #1132
add DTLS support #1931 (This is very cool, but not easy. We do have full TLS support though so it should be feasible to re-use almost everything)
Update the p0f support #1923 (This sounds pretty cumbersome...)
Remove the "trick" from
carp.py
https://github.com/secdev/scapy/blob/cce88a93b006775957757bd2d311649f4d423863/scapy/contrib/carp.py#L47 (You very likely need to get back to the RFC to understand what the heck is going on here. At least this should be rather simple)Try to call
Enum_metaclass
fromASN1_Class_metaclass
or at least try to reduce the amount of duplicated code: https://github.com/secdev/scapy/blob/a6e4ab2a45fe5e5bb9b4b15f78ebc4f1778be6b3/scapy/asn1/asn1.py#L113Update the OPC UA support #1569 (This sounds extremely hard, considering how big the PR is. Don't dive into this unless you actually need OPC UA)
Add support to addresses other than MAC in
DUID_LLT
indhcp6.py
https://github.com/secdev/scapy/blob/cce88a93b006775957757bd2d311649f4d423863/scapy/layers/dhcp6.py#L204Add support for authdata in
OSPF_Hdr
inospf.py
https://github.com/secdev/scapy/blob/f912538b7959a68ad83e7f18eee57cd5a8aef7df/scapy/contrib/ospf.py#L68Guess the next hop properly when multiple
IPv6ExtHdrDestOpt
extensions are used oninet6.py
https://github.com/secdev/scapy/blob/bdcbba58b87bbd79ac416c9614bcf2f5e9847764/scapy/layers/inet6.py#L379 (You might want to check the RFC: should we use the one from the last option? or the first one? (current))Check that Multicast scopes match when performing
answers
in [inet6.py] https://github.com/secdev/scapy/blob/bdcbba58b87bbd79ac416c9614bcf2f5e9847764/scapy/layers/inet6.py#L407Write X.400 format in
X509.py
. (this is ASN.1. Not the easiest thing to begin with) https://github.com/secdev/scapy/blob/cce88a93b006775957757bd2d311649f4d423863/scapy/layers/x509.py#L199HELP: the RFC of the the X.400 format is on rfc5280, at the bottom of page 117.
Unknown difficulty