| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | Introduce PktView to remove duplicate packet parsing | hskim | 2025-08-20 | 2 | -14/+27 | |
| | | | | | | | | - Added new `pkt.rs` with `PktView` struct wrapping `IpSlice` and `TcpSlice` - Updated `split_packet` and `handle_packet` to use `PktView` - Removed repeated calls to `IpSlice::from_slice` / `TcpSlice::from_slice` - Simplifies code and ensures parsing happens only once per packet | |||||
| * | chore: remove unused function get_vector (dead_code) | dilluti0n | 2025-08-06 | 1 | -14/+0 | |
| | | | | | revert me when use TLSMsg::get_vector | |||||
| * | refactor: add error propagation to send_to_raw | dilluti0n | 2025-08-06 | 3 | -32/+42 | |
| | | | | | | | | * Extracted: `handle_packet!` macro to deduplicate match logic in both Linux and Windows backend. * Changed: `send_to_raw()` to return Result and propagate errors with `anyhow!`. | |||||
| * | refactor: Unified all error types in the project to anyhow::Error | dilluti0n | 2025-08-06 | 3 | -44/+46 | |
| | | | | | | | | | Configured incompatible iptables errors to be propagated using map_err into the anyhow type * refactored: split_packet and handle_packet to return Result<> instead of Option<> | |||||
| * | build: add log for non-windows build | dilluti0n | 2025-08-06 | 1 | -0/+1 | |
| | | ||||||
| * | build: move windows app.manifest to res/app.manifest from build.rs | dilluti0n | 2025-08-06 | 1 | -12/+1 | |
| | | ||||||
| * | build: use winres to add manifest for windows binary | dilluti0n | 2025-08-06 | 4 | -3/+75 | |
| | | ||||||
| * | minor: remove handle_msg rapper | dilluti0n | 2025-08-06 | 2 | -22/+19 | |
| | | | | | | | | modify to have a simmilar flow with windows build * change ordering * debug messages | |||||
| * | minor: move platform-specific codes to seperate files | dilluti0n | 2025-08-06 | 4 | -205/+209 | |
| | | ||||||
| * | fix: to use same windivert handle for recv/send | dilluti0n | 2025-08-06 | 1 | -35/+21 | |
| | | | | | somewhat it works now... why? | |||||
| * | minor: set WINDIVERT_PATH for windows build | dilluti0n | 2025-08-06 | 4 | -1/+6 | |
| | | ||||||
| * | implement: not-working framework for windows | dilluti0n | 2025-08-06 | 3 | -8/+58 | |
| | | ||||||
| * | fix: windows build errors | dilluti0n | 2025-08-06 | 2 | -8/+16 | |
| | | ||||||
| * | starting windows implementation | dilluti0n | 2025-07-27 | 1 | -0/+17 | |
| | | ||||||
| * | refactor: repeated queue number not to use magic | dilluti0n | 2025-07-27 | 1 | -11/+13 | |
| | | ||||||
| * | refactor: handle_packet to not depend on nfq | dilluti0n | 2025-07-27 | 1 | -27/+34 | |
| | | ||||||
| * | refactor: move platform-dependent code to mod platform | dilluti0n | 2025-07-27 | 3 | -173/+312 | |
| | | ||||||
| * | refactor: bootstrap and cleanup to support ip6tables | dilluti0n | 2025-07-26 | 1 | -6/+26 | |
| | | ||||||
| * | fix: prevent possable array indexing panic on is_client_hello | dilluti0n | 2025-07-24 | 1 | -1/+4 | |
| | | ||||||
| * | revert ctrlc to override default SIGINT handler | dilluti0n | 2025-07-22 | 3 | -2/+41 | |
| | | ||||||
| * | feat: poll NFQUEUE socket instead sleep on main loop | dilluti0n | 2025-07-22 | 3 | -56/+30 | |
| | | | | | | | | | | | The main motivation for using poll + recv (even with a single FD) is that blocking recv() is not interrupted by SIGINT, likely due to SA_RESTART being enabled by default. On the other hand, poll() is always interruptible by signals regardless of SA_RESTART. Instead of manually configuring sigaction in Rust, using poll here is simpler and more reliable. | |||||
| * | implement: send_to_raw; open raw socket and sendto it! | dilluti0n | 2025-07-21 | 3 | -2/+65 | |
| | | | | | * important: it works !! | |||||
| * | feat: Add TLS ClientHello splitting(TCP/IP) logic using etherparse | dilluti0n | 2025-07-21 | 3 | -23/+94 | |
| | | | | | | | | | | * Introduced `etherparse` and `arrayvec` dependencies to parse and reconstruct IP/TCP packets * Replaced legacy TCP payload extraction with robust parsing via `IpSlice` and `TcpSlice` * Added `split_packet` to split TCP payloads and reconstruct headers * Added stub `send_to_raw` function to transmit custom-crafted packets (implementation pending) * Modified `handle_packet` to detect ClientHello and perform split+delay packet transmission * Improved xt_u32 fallback logic and control flow using early returns and internal closure | |||||
| * | change: treat IS_U32_SUPPORTED to more rubust way | dilluti0n | 2025-07-20 | 1 | -1/+5 | |
| | | ||||||
| * | feat: add xft_u32 filtering for clienthello packet | dilluti0n | 2025-07-20 | 3 | -12/+77 | |
| | | ||||||
| * | refactor: is_client_hello and TLSMsg::get_bytes | dilluti0n | 2025-07-20 | 1 | -23/+9 | |
| | | | | | | | is_client_hello now passes the record's fragment field up to the end of the payload. TLSMsg::get_bytes now returns None if size exceeds payload.len(). | |||||
| * | minor: add TODOs on main.rs | dilluti0n | 2025-07-20 | 1 | -0/+2 | |
| | | ||||||
| * | fix: when get_tcp_payload fails, pass the packet sanely | dilluti0n | 2025-07-20 | 1 | -6/+6 | |
| | | ||||||
| * | fix: handle fragmented TCP packet on TLSMsg::get_bytes | dilluti0n | 2025-07-20 | 1 | -0/+1 | |
| | | | | | | | Since we only interested in header, not robust parsing, full TCP reassembly isn't nece: Just prevent panic when the payload is shorter than expacted. | |||||
| * | refactor: try not to use tokio only for signal handling | dilluti0n | 2025-07-20 | 3 | -239/+83 | |
| | | | | | | * implement: get_tcp_payload, parse tcp payload from given ip payload (seems like does not work well...) | |||||
| * | implement: TLS clienthello parser | dilluti0n | 2025-07-19 | 1 | -3/+101 | |
| | | | | | filter clienthello packet | |||||
| * | implement: packet catch with nfq-rs | dilluti0n | 2025-07-19 | 3 | -24/+72 | |
| | | | | | * mock POSIX signal handling with tokio | |||||
| * | implement: install/cleanup iptables rule | dilluti0n | 2025-07-19 | 3 | -2/+517 | |
| | | ||||||
| * | initial commit | dilluti0n | 2025-07-19 | 4 | -0/+17 | |
