<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dpibreak.git/src/platform, branch v0.3.0</title>
<subtitle>System-wide DPI circumvention with minimal configuration
</subtitle>
<id>http://git.dilluti0n.com/dpibreak.git/atom?h=v0.3.0</id>
<link rel='self' href='http://git.dilluti0n.com/dpibreak.git/atom?h=v0.3.0'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/'/>
<updated>2026-01-23T06:55:09Z</updated>
<entry>
<title>windows: extend WinDivert filter for --fake-autottl</title>
<updated>2026-01-23T06:55:09Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-01-20T05:41:11Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=ec0cd64df8f834211673c0116586b0a3b2633b32'/>
<id>urn:sha1:ec0cd64df8f834211673c0116586b0a3b2633b32</id>
<content type='text'>
Build WinDivert filter at runtime:
- Default: outbound TLS ClientHello packets
- --fake-autottl: also capture inbound SYN/ACK from tcp sport 443
Keep !impostor to avoid recapture.
</content>
</entry>
<entry>
<title>linux: iptables: implement SYN/ACK capture on --fake-autottl</title>
<updated>2026-01-23T06:55:09Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-01-20T04:12:59Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=6780cc913016e0e567b20518a3577f966417b447'/>
<id>urn:sha1:6780cc913016e0e567b20518a3577f966417b447</id>
<content type='text'>
- Add mangle/INPUT jump to DPIBREAK
- Queue tcp sport 443 SYN/ACK packets (NFQUEUE --queue-bypass)
- Cleanup removes INPUT jump as well
</content>
</entry>
<entry>
<title>linux: nftables: queue SYN/ACK on --fake-autottl</title>
<updated>2026-01-23T06:55:09Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-01-20T03:34:13Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=a1618d0f7b576e55230ef709af750f2933a65db4'/>
<id>urn:sha1:a1618d0f7b576e55230ef709af750f2933a65db4</id>
<content type='text'>
- simplify nftables rules by removing DPIBREAK chain
</content>
</entry>
<entry>
<title>linux: refactor rules backend into iptables/nftables modules</title>
<updated>2026-01-22T15:18:43Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-01-20T05:23:56Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=7555c95ccd072335762cf2248edcfa83711c6437'/>
<id>urn:sha1:7555c95ccd072335762cf2248edcfa83711c6437</id>
<content type='text'>
Split iptables and nftables rule management into dedicated modules.
Keep linux.rs focused on shared helpers and rule dispatch.

(cherry picked from commit 60c0011ca0cf5a463056fca17f2f747e762e19f9)
</content>
</entry>
<entry>
<title>linux: drop iptables crate (regex dep) to reduce binary size</title>
<updated>2026-01-17T15:28:22Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-01-17T15:28:22Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=5658f5287dec0a6f300382b1de96c900e7edf174'/>
<id>urn:sha1:5658f5287dec0a6f300382b1de96c900e7edf174</id>
<content type='text'>
Introduce minimal iptables wrapper.
</content>
</entry>
<entry>
<title>Refactor main.rs; modulize opt.rs and pkt.rs</title>
<updated>2026-01-16T07:29:31Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-01-16T06:22:14Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=0dffd9a4df59b503eaaf26524f17f58831d01eec'/>
<id>urn:sha1:0dffd9a4df59b503eaaf26524f17f58831d01eec</id>
<content type='text'>
Move option parsing to opt.rs and packet handling to pkt.rs from
main.rs
</content>
</entry>
<entry>
<title>windows: do not recalculate tcp checksum when send_to_raw</title>
<updated>2026-01-16T04:12:09Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2026-01-14T11:26:57Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=27a0899098e908c3fab4fbe026563057b1f08599'/>
<id>urn:sha1:27a0899098e908c3fab4fbe026563057b1f08599</id>
<content type='text'>
For --fake-badsum work; Anyway, it is already calculated
</content>
</entry>
<entry>
<title>Normalize option handling and OPT_* naming</title>
<updated>2025-12-30T11:00:07Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-12-30T11:00:07Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=9e38b2c679ee5a3ab9acad9a0ab53aedeb492c26'/>
<id>urn:sha1:9e38b2c679ee5a3ab9acad9a0ab53aedeb492c26</id>
<content type='text'>
Log runtime options on startup
</content>
</entry>
<entry>
<title>Prevent infinite loop on packet injection/filtering</title>
<updated>2025-12-30T08:15:22Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-12-29T12:41:16Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=08d97bba88329315040bd4820ab4d799ee537181'/>
<id>urn:sha1:08d97bba88329315040bd4820ab4d799ee537181</id>
<content type='text'>
- linux: fix infinite NFQUEUE loop by marking injected packets
- windows: by marking packet to impostor
</content>
</entry>
<entry>
<title>linux: extract process execution into `exec_process` helper</title>
<updated>2025-12-29T09:07:58Z</updated>
<author>
<name>dilluti0n</name>
<email>hskimse1@gmail.com</email>
</author>
<published>2025-12-29T08:59:47Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=7bfef8fafc5369f65bd6f12c83e89f3443b923c0'/>
<id>urn:sha1:7bfef8fafc5369f65bd6f12c83e89f3443b923c0</id>
<content type='text'>
Introduce exec_process() to handle external command execution, stdin
piping, and error reporting. Now cleanup() and apply_nft_rules() call
exec_process() to call modprobe, nft respectively.

This improves error handling for cleanup xt_u32.
</content>
</entry>
</feed>
