8 releases (4 breaking)
0.5.0 | Sep 13, 2024 |
---|---|
0.4.1 | Mar 13, 2024 |
0.4.0 | Feb 26, 2024 |
0.3.0 | Feb 25, 2024 |
0.1.0 | Jun 28, 2023 |
#1470 in Network programming
9KB
140 lines
ctf_tcp_helper
Wrapper library for TCP based CTF
Description
Wrapper to manage TCP connections in CTF challs.
Usage
fn main() -> anyhow::Result<()> {
let url = "challenge.com";
let port = 4242;
let mut tcp_handle = ctf_tcp_utils::TcpHandler::new(&url, port)?;
let input = tcp_handle.read_to_string();
println!("{input}");
let answer = process(&input);
println!("{answer}");
tcp_handle.write_answer(&answer);
let result = tcp_handle.read_to_string();
println!("{result}");
Ok(())
}
If the CTF requires to repeat the same business logic in a loop, you can try:
fn main()-> anyhow::Result<()> {
let result: String = ctf_tcp_utils::CtfLoopResponder::new()
.url("challenge.com")
.port(4242)
.timeout(250)
.responder_func(|input| {
// Insert logic here!
})
.connect_and_work()?;
println!("{result}");
Ok(())
}
Dependencies
~290–790KB
~18K SLoC