52 lines
1.3 KiB
Markdown
52 lines
1.3 KiB
Markdown
|
<div align="center">
|
||
|
<img src="drawbridge.png" alt="drawbridge Logo">
|
||
|
|
||
|
# drawbridge
|
||
|
|
||
|
**drawbridge** simplifies local nfqueue queues
|
||
|
|
||
|
without sacrificing performance?<br/>
|
||
|
|
||
|
[Installation](#installation) •
|
||
|
[Examples](#examples) •
|
||
|
[Contributing](#contributing) •
|
||
|
[License](#license)
|
||
|
</div>
|
||
|
|
||
|
## Installation
|
||
|
|
||
|
### with pip
|
||
|
Eventually, install with `pip install drawbridge`, maybe.
|
||
|
|
||
|
For now, clone the repo, navigate to it, and run `pip install .`. You'll need a Linux system for nfqueue.
|
||
|
|
||
|
## Examples
|
||
|
|
||
|
See the examples directory for a WebSocket example.
|
||
|
|
||
|
```python
|
||
|
from drawbridge import DrawBridge
|
||
|
|
||
|
def my_packet_handler(raw_packet):
|
||
|
# do things to the raw packet, like
|
||
|
# from scapy.all import *
|
||
|
# pkt = IP(raw_packet)
|
||
|
# ...
|
||
|
# return bytes(pkt)
|
||
|
return raw_packet
|
||
|
|
||
|
db = DrawBridge()
|
||
|
db.add_queue(my_packet_handler, src_port=80)
|
||
|
db.run()
|
||
|
```
|
||
|
|
||
|
## Contributing
|
||
|
|
||
|
If you would like to contribute to this project, feel free to submit a pull request or open an issue on GitHub.
|
||
|
|
||
|
This tool was written as part of my coursework for INFA 735 - Offensive Security at Dakota State University. Consequently, I may choose not to maintain this tool beyond the length of the course, but have selected a license that enables open contributions in any case.
|
||
|
|
||
|
## License
|
||
|
|
||
|
This project is licensed under the MIT License. See the `LICENSE` file for details.
|