blockchecks 1.3.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. blockchecks-1.3.2/LICENSE +21 -0
  2. blockchecks-1.3.2/MANIFEST.in +20 -0
  3. blockchecks-1.3.2/PKG-INFO +118 -0
  4. blockchecks-1.3.2/README.md +282 -0
  5. blockchecks-1.3.2/README.pypi.md +69 -0
  6. blockchecks-1.3.2/blobs/README.md +68 -0
  7. blockchecks-1.3.2/blobs/discord_ipdisc.bin +0 -0
  8. blockchecks-1.3.2/blobs/discord_udp.bin +0 -0
  9. blockchecks-1.3.2/blobs/game_udp.bin +0 -0
  10. blockchecks-1.3.2/blobs/http_iana.bin +9 -0
  11. blockchecks-1.3.2/blobs/quic_4pda.bin +0 -0
  12. blockchecks-1.3.2/blobs/quic_5ka.bin +0 -0
  13. blockchecks-1.3.2/blobs/quic_alfabank.bin +0 -0
  14. blockchecks-1.3.2/blobs/quic_cloudflare.bin +0 -0
  15. blockchecks-1.3.2/blobs/quic_funpay.bin +0 -0
  16. blockchecks-1.3.2/blobs/quic_gv_kyber_1.bin +0 -0
  17. blockchecks-1.3.2/blobs/quic_gv_kyber_2.bin +0 -0
  18. blockchecks-1.3.2/blobs/quic_gv_rr2.bin +0 -0
  19. blockchecks-1.3.2/blobs/quic_initial.bin +0 -0
  20. blockchecks-1.3.2/blobs/quic_initial_dbankcloud_ru.bin +0 -0
  21. blockchecks-1.3.2/blobs/quic_initial_vk_com.bin +0 -0
  22. blockchecks-1.3.2/blobs/quic_initial_www_google_com.bin +0 -0
  23. blockchecks-1.3.2/blobs/quic_rutube.bin +0 -0
  24. blockchecks-1.3.2/blobs/quic_steam.bin +0 -0
  25. blockchecks-1.3.2/blobs/quic_tencent.bin +0 -0
  26. blockchecks-1.3.2/blobs/quic_vk.bin +0 -0
  27. blockchecks-1.3.2/blobs/stun.bin +0 -0
  28. blockchecks-1.3.2/blobs/stun2.bin +0 -0
  29. blockchecks-1.3.2/blobs/tls_5ka.bin +0 -0
  30. blockchecks-1.3.2/blobs/tls_clienthello_4pda_to.bin +0 -0
  31. blockchecks-1.3.2/blobs/tls_clienthello_max_ru.bin +0 -0
  32. blockchecks-1.3.2/blobs/tls_clienthello_vk_com.bin +0 -0
  33. blockchecks-1.3.2/blobs/tls_clienthello_www_google_com.bin +0 -0
  34. blockchecks-1.3.2/blobs/tls_funpay.bin +0 -0
  35. blockchecks-1.3.2/blobs/tls_rzd.bin +0 -0
  36. blockchecks-1.3.2/blobs/tls_vk.bin +0 -0
  37. blockchecks-1.3.2/blobs/wireguard_init.bin +0 -0
  38. blockchecks-1.3.2/changelog.md +946 -0
  39. blockchecks-1.3.2/configs/alt10__fake_4pda_ts.conf +12 -0
  40. blockchecks-1.3.2/configs/alt11__fake_multisplit_ts_r8.conf +12 -0
  41. blockchecks-1.3.2/configs/alt12__fake_hostfakesplit_mixed.conf +13 -0
  42. blockchecks-1.3.2/configs/alt2__multisplit_pos2.conf +10 -0
  43. blockchecks-1.3.2/configs/alt3__fake_hostfakesplit_ya.conf +11 -0
  44. blockchecks-1.3.2/configs/alt4__fake_multisplit_badseq.conf +11 -0
  45. blockchecks-1.3.2/configs/alt5__syndata_multidisorder.conf +9 -0
  46. blockchecks-1.3.2/configs/alt6__multisplit_pos1_seqovl681.conf +10 -0
  47. blockchecks-1.3.2/configs/alt7__multisplit_sniext.conf +10 -0
  48. blockchecks-1.3.2/configs/alt8__fake_nomod_badseq.conf +12 -0
  49. blockchecks-1.3.2/configs/alt9__hostfakesplit_ozon.conf +10 -0
  50. blockchecks-1.3.2/configs/alt__fake_fakedsplit_ts.conf +11 -0
  51. blockchecks-1.3.2/configs/composite_discord.conf +22 -0
  52. blockchecks-1.3.2/configs/fake_badsum_r6.conf +10 -0
  53. blockchecks-1.3.2/configs/fake_null_r6_ts.conf +9 -0
  54. blockchecks-1.3.2/configs/fake_tls_auto__fake_multidisorder.conf +10 -0
  55. blockchecks-1.3.2/configs/fake_tls_auto_alt2__multisplit_badseq_r8.conf +11 -0
  56. blockchecks-1.3.2/configs/fake_tls_auto_alt3__multisplit_ts_r8.conf +11 -0
  57. blockchecks-1.3.2/configs/fake_tls_auto_alt__fakedsplit_badseq.conf +11 -0
  58. blockchecks-1.3.2/configs/general__default_multisplit.conf +10 -0
  59. blockchecks-1.3.2/configs/simple_fake__fake_ts.conf +12 -0
  60. blockchecks-1.3.2/configs/simple_fake_alt2__fake_max_ru_ts.conf +12 -0
  61. blockchecks-1.3.2/configs/simple_fake_alt__fake_badseq.conf +12 -0
  62. blockchecks-1.3.2/configs/udp_voice__fake_r12.conf +10 -0
  63. blockchecks-1.3.2/configs/udp_voice__fake_r6.conf +10 -0
  64. blockchecks-1.3.2/configs/udp_voice__fake_r6_autottl.conf +10 -0
  65. blockchecks-1.3.2/configs/udp_voice__fake_r6_ttl5.conf +10 -0
  66. blockchecks-1.3.2/configs/udp_voice__wide_ports_r6.conf +10 -0
  67. blockchecks-1.3.2/docs/guide.md +266 -0
  68. blockchecks-1.3.2/docs/package.md +176 -0
  69. blockchecks-1.3.2/docs/todo.md +705 -0
  70. blockchecks-1.3.2/lua/README.md +84 -0
  71. blockchecks-1.3.2/lua/blockchecks/geneva.lua +65 -0
  72. blockchecks-1.3.2/lua/blockchecks/init.lua +3 -0
  73. blockchecks-1.3.2/lua/blockchecks/scan_bridge.lua +90 -0
  74. blockchecks-1.3.2/lua/blockchecks/write_ipc.lua +44 -0
  75. blockchecks-1.3.2/lua/custom/README.md +78 -0
  76. blockchecks-1.3.2/lua/custom/dupfake.lua +49 -0
  77. blockchecks-1.3.2/lua/custom/manifest.toml +47 -0
  78. blockchecks-1.3.2/presets/README.md +207 -0
  79. blockchecks-1.3.2/presets/blobs/README.md +37 -0
  80. blockchecks-1.3.2/presets/domains/amazon-aws.txt +12 -0
  81. blockchecks-1.3.2/presets/domains/benchmark.txt +7 -0
  82. blockchecks-1.3.2/presets/domains/cloudflare.txt +10 -0
  83. blockchecks-1.3.2/presets/domains/coverage-tcp.txt +23 -0
  84. blockchecks-1.3.2/presets/domains/coverage.txt +41 -0
  85. blockchecks-1.3.2/presets/domains/critical.txt +6 -0
  86. blockchecks-1.3.2/presets/domains/denylist.txt +43 -0
  87. blockchecks-1.3.2/presets/domains/diagnostic.txt +2 -0
  88. blockchecks-1.3.2/presets/domains/discord.txt +23 -0
  89. blockchecks-1.3.2/presets/domains/google-youtube.txt +24 -0
  90. blockchecks-1.3.2/presets/domains/pi2.txt +5 -0
  91. blockchecks-1.3.2/presets/strategies/bc2-parity-ackdrop.tls +5 -0
  92. blockchecks-1.3.2/presets/strategies/bc2-parity-foolings.tls +8 -0
  93. blockchecks-1.3.2/presets/strategies/bc2-parity-http.http +9 -0
  94. blockchecks-1.3.2/presets/strategies/bc2-parity-ipv6.tls +9 -0
  95. blockchecks-1.3.2/presets/strategies/bc2-parity-quic.quic +8 -0
  96. blockchecks-1.3.2/presets/strategies/bc2-parity-seqovl.tls +8 -0
  97. blockchecks-1.3.2/presets/strategies/bc2-parity-voice.udp +6 -0
  98. blockchecks-1.3.2/presets/strategies/blockcheckS-best.tls +12 -0
  99. blockchecks-1.3.2/presets/strategies/fiord-http.http +7 -0
  100. blockchecks-1.3.2/presets/strategies/fiord-quic.quic +8 -0
  101. blockchecks-1.3.2/presets/strategies/fiord-tls12.tls +15 -0
  102. blockchecks-1.3.2/presets/strategies/fiord-tls13.tls +8 -0
  103. blockchecks-1.3.2/presets/strategies/fiord-udp_voice.udp +8 -0
  104. blockchecks-1.3.2/presets/strategies/flowseal-fast.tls +18 -0
  105. blockchecks-1.3.2/presets/strategies/gp-custom-dupfake.tls +14 -0
  106. blockchecks-1.3.2/presets/strategies/gp-custom-http.txt +6 -0
  107. blockchecks-1.3.2/presets/strategies/gp-custom-quic.txt +6 -0
  108. blockchecks-1.3.2/presets/strategies/gp-custom-tls12.txt +10 -0
  109. blockchecks-1.3.2/presets/strategies/gp-custom-tls13.txt +7 -0
  110. blockchecks-1.3.2/presets/strategies/gp-verified.tls +12 -0
  111. blockchecks-1.3.2/presets/strategies/gp-voice.txt +9 -0
  112. blockchecks-1.3.2/presets/strategies/gv-e2e-smoke.tls +6 -0
  113. blockchecks-1.3.2/presets/strategies/gv5-quic-smoke.quic +7 -0
  114. blockchecks-1.3.2/presets/strategies/http-tls-dual.http +4 -0
  115. blockchecks-1.3.2/presets/strategies/http-tls-dual.tls +4 -0
  116. blockchecks-1.3.2/presets/strategies/shortlist-tls12.tls +4 -0
  117. blockchecks-1.3.2/presets/strategies/timeout-benchmark.tls +4 -0
  118. blockchecks-1.3.2/pyproject.toml +294 -0
  119. blockchecks-1.3.2/setup.cfg +4 -0
  120. blockchecks-1.3.2/src/blockchecks/__init__.py +3 -0
  121. blockchecks-1.3.2/src/blockchecks/bs.py +17 -0
  122. blockchecks-1.3.2/src/blockchecks/checkers/__init__.py +5 -0
  123. blockchecks-1.3.2/src/blockchecks/checkers/composite_runner.py +189 -0
  124. blockchecks-1.3.2/src/blockchecks/checkers/curl_probe.py +997 -0
  125. blockchecks-1.3.2/src/blockchecks/checkers/dns_secure.py +497 -0
  126. blockchecks-1.3.2/src/blockchecks/checkers/http3.py +92 -0
  127. blockchecks-1.3.2/src/blockchecks/checkers/ip_block.py +173 -0
  128. blockchecks-1.3.2/src/blockchecks/checkers/ip_pin.py +106 -0
  129. blockchecks-1.3.2/src/blockchecks/checkers/l3_probe.py +167 -0
  130. blockchecks-1.3.2/src/blockchecks/checkers/port_block.py +76 -0
  131. blockchecks-1.3.2/src/blockchecks/checkers/quic_raw.py +178 -0
  132. blockchecks-1.3.2/src/blockchecks/checkers/tcp_tls.py +211 -0
  133. blockchecks-1.3.2/src/blockchecks/checkers/udp_voice.py +219 -0
  134. blockchecks-1.3.2/src/blockchecks/checkers/voice_discovery.py +342 -0
  135. blockchecks-1.3.2/src/blockchecks/checkers/voice_dns.py +562 -0
  136. blockchecks-1.3.2/src/blockchecks/checkers/youtube_url.py +195 -0
  137. blockchecks-1.3.2/src/blockchecks/cli/__init__.py +1 -0
  138. blockchecks-1.3.2/src/blockchecks/cli/cliapp.py +616 -0
  139. blockchecks-1.3.2/src/blockchecks/cli/commands/__init__.py +1 -0
  140. blockchecks-1.3.2/src/blockchecks/cli/commands/bench_settle.py +161 -0
  141. blockchecks-1.3.2/src/blockchecks/cli/commands/mcp.py +30 -0
  142. blockchecks-1.3.2/src/blockchecks/cli/commands/pair.py +208 -0
  143. blockchecks-1.3.2/src/blockchecks/cli/commands/pair_phases.py +802 -0
  144. blockchecks-1.3.2/src/blockchecks/cli/commands/serve.py +63 -0
  145. blockchecks-1.3.2/src/blockchecks/cli/commands/stop.py +14 -0
  146. blockchecks-1.3.2/src/blockchecks/cli/commands/tcp.py +117 -0
  147. blockchecks-1.3.2/src/blockchecks/cli/commands/udp.py +123 -0
  148. blockchecks-1.3.2/src/blockchecks/cli/parser.py +840 -0
  149. blockchecks-1.3.2/src/blockchecks/cli/presets.py +67 -0
  150. blockchecks-1.3.2/src/blockchecks/cli/user_config.py +104 -0
  151. blockchecks-1.3.2/src/blockchecks/data_block/__init__.py +31 -0
  152. blockchecks-1.3.2/src/blockchecks/data_block/provider.py +191 -0
  153. blockchecks-1.3.2/src/blockchecks/data_block/store.py +362 -0
  154. blockchecks-1.3.2/src/blockchecks/engine/__init__.py +13 -0
  155. blockchecks-1.3.2/src/blockchecks/engine/_curl_probe_worker.py +30 -0
  156. blockchecks-1.3.2/src/blockchecks/engine/_probe_worker.py +34 -0
  157. blockchecks-1.3.2/src/blockchecks/engine/adaptive_queue.py +470 -0
  158. blockchecks-1.3.2/src/blockchecks/engine/adaptive_runner.py +353 -0
  159. blockchecks-1.3.2/src/blockchecks/engine/async_runner.py +1007 -0
  160. blockchecks-1.3.2/src/blockchecks/engine/base_worker.py +84 -0
  161. blockchecks-1.3.2/src/blockchecks/engine/blob_aliases.py +169 -0
  162. blockchecks-1.3.2/src/blockchecks/engine/byedpi_matrix_generator.py +144 -0
  163. blockchecks-1.3.2/src/blockchecks/engine/byedpi_translator.py +323 -0
  164. blockchecks-1.3.2/src/blockchecks/engine/conf_builder.py +491 -0
  165. blockchecks-1.3.2/src/blockchecks/engine/config.py +434 -0
  166. blockchecks-1.3.2/src/blockchecks/engine/db_logger.py +22 -0
  167. blockchecks-1.3.2/src/blockchecks/engine/domain_loader.py +175 -0
  168. blockchecks-1.3.2/src/blockchecks/engine/fail_phase.py +128 -0
  169. blockchecks-1.3.2/src/blockchecks/engine/family_needs.py +222 -0
  170. blockchecks-1.3.2/src/blockchecks/engine/generators/__init__.py +43 -0
  171. blockchecks-1.3.2/src/blockchecks/engine/generators/base.py +41 -0
  172. blockchecks-1.3.2/src/blockchecks/engine/generators/custom.py +155 -0
  173. blockchecks-1.3.2/src/blockchecks/engine/generators/families/__init__.py +11 -0
  174. blockchecks-1.3.2/src/blockchecks/engine/generators/families/_helpers.py +112 -0
  175. blockchecks-1.3.2/src/blockchecks/engine/generators/families/fake.py +213 -0
  176. blockchecks-1.3.2/src/blockchecks/engine/generators/families/split.py +253 -0
  177. blockchecks-1.3.2/src/blockchecks/engine/generators/families/tamper.py +244 -0
  178. blockchecks-1.3.2/src/blockchecks/engine/generators/flowseal.py +335 -0
  179. blockchecks-1.3.2/src/blockchecks/engine/generators/standard.py +882 -0
  180. blockchecks-1.3.2/src/blockchecks/engine/in_ns_workers.py +784 -0
  181. blockchecks-1.3.2/src/blockchecks/engine/matrix_generator.py +287 -0
  182. blockchecks-1.3.2/src/blockchecks/engine/nfqws_config.py +94 -0
  183. blockchecks-1.3.2/src/blockchecks/engine/paths.py +322 -0
  184. blockchecks-1.3.2/src/blockchecks/engine/preflight.py +489 -0
  185. blockchecks-1.3.2/src/blockchecks/engine/preset_paths.py +109 -0
  186. blockchecks-1.3.2/src/blockchecks/engine/results.py +82 -0
  187. blockchecks-1.3.2/src/blockchecks/engine/run_deadline.py +144 -0
  188. blockchecks-1.3.2/src/blockchecks/engine/run_finalize.py +154 -0
  189. blockchecks-1.3.2/src/blockchecks/engine/secure_io.py +24 -0
  190. blockchecks-1.3.2/src/blockchecks/engine/settings.py +107 -0
  191. blockchecks-1.3.2/src/blockchecks/engine/settle_profile.py +178 -0
  192. blockchecks-1.3.2/src/blockchecks/engine/static_validator.py +286 -0
  193. blockchecks-1.3.2/src/blockchecks/engine/store/__init__.py +116 -0
  194. blockchecks-1.3.2/src/blockchecks/engine/store/models.py +16 -0
  195. blockchecks-1.3.2/src/blockchecks/engine/store/schema.py +201 -0
  196. blockchecks-1.3.2/src/blockchecks/engine/store/sqlite_store.py +743 -0
  197. blockchecks-1.3.2/src/blockchecks/engine/strategy_loader.py +64 -0
  198. blockchecks-1.3.2/src/blockchecks/engine/system_deps.py +489 -0
  199. blockchecks-1.3.2/src/blockchecks/engine/tcp_fanout.py +100 -0
  200. blockchecks-1.3.2/src/blockchecks/engine/test_runner.py +363 -0
  201. blockchecks-1.3.2/src/blockchecks/engine/triage.py +130 -0
  202. blockchecks-1.3.2/src/blockchecks/main.py +234 -0
  203. blockchecks-1.3.2/src/blockchecks/main_phases.py +1102 -0
  204. blockchecks-1.3.2/src/blockchecks/mcp/__init__.py +29 -0
  205. blockchecks-1.3.2/src/blockchecks/mcp/server.py +730 -0
  206. blockchecks-1.3.2/src/blockchecks/nfconf.py +366 -0
  207. blockchecks-1.3.2/src/blockchecks/provider_import.py +230 -0
  208. blockchecks-1.3.2/src/blockchecks/service/__init__.py +105 -0
  209. blockchecks-1.3.2/src/blockchecks/service/batch_bridge_probe.py +186 -0
  210. blockchecks-1.3.2/src/blockchecks/service/batch_models.py +67 -0
  211. blockchecks-1.3.2/src/blockchecks/service/batch_scheduler.py +110 -0
  212. blockchecks-1.3.2/src/blockchecks/service/batch_service.py +385 -0
  213. blockchecks-1.3.2/src/blockchecks/service/firewall.py +120 -0
  214. blockchecks-1.3.2/src/blockchecks/service/lua_bridge_ipc.py +133 -0
  215. blockchecks-1.3.2/src/blockchecks/service/lua_conf.py +112 -0
  216. blockchecks-1.3.2/src/blockchecks/service/lua_netns.py +82 -0
  217. blockchecks-1.3.2/src/blockchecks/service/lua_session.py +141 -0
  218. blockchecks-1.3.2/src/blockchecks/service/metrics.py +238 -0
  219. blockchecks-1.3.2/src/blockchecks/service/netns_pool.py +228 -0
  220. blockchecks-1.3.2/src/blockchecks/service/nfqws2.py +316 -0
  221. blockchecks-1.3.2/src/blockchecks/service/nfqws2_settle.py +71 -0
  222. blockchecks-1.3.2/src/blockchecks/service/probe.py +107 -0
  223. blockchecks-1.3.2/src/blockchecks/service/probe_service.py +221 -0
  224. blockchecks-1.3.2/src/blockchecks/service/run_control.py +178 -0
  225. blockchecks-1.3.2/src/blockchecks/service/server.py +430 -0
  226. blockchecks-1.3.2/src/blockchecks/shortlist_export.py +188 -0
  227. blockchecks-1.3.2/src/blockchecks/shortlist_import.py +206 -0
  228. blockchecks-1.3.2/src/blockchecks.egg-info/PKG-INFO +118 -0
  229. blockchecks-1.3.2/src/blockchecks.egg-info/SOURCES.txt +233 -0
  230. blockchecks-1.3.2/src/blockchecks.egg-info/dependency_links.txt +1 -0
  231. blockchecks-1.3.2/src/blockchecks.egg-info/entry_points.txt +5 -0
  232. blockchecks-1.3.2/src/blockchecks.egg-info/requires.txt +30 -0
  233. blockchecks-1.3.2/src/blockchecks.egg-info/top_level.txt +2 -0
  234. blockchecks-1.3.2/systemd/blockcheck-series.service +18 -0
  235. blockchecks-1.3.2/systemd/blockcheck-serve.service +18 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 blockcheckS contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,20 @@
1
+ include configs/*.conf
2
+ include configs/composite_discord.conf
3
+ recursive-include presets/strategies *.tls *.txt *.http *.quic *.udp
4
+ recursive-include presets/domains *.txt
5
+ include presets/blobs/README.md
6
+ recursive-include blobs *.bin
7
+ include blobs/README.md
8
+ recursive-include lua/blockchecks *.lua
9
+ recursive-include lua/custom *.lua *.toml
10
+ include lua/README.md
11
+ include lua/custom/README.md
12
+ include presets/README.md
13
+ include LICENSE
14
+ include README.md
15
+ include docs/todo.md
16
+ include docs/guide.md
17
+ include docs/package.md
18
+ include changelog.md
19
+ recursive-include systemd *.service
20
+ recursive-include src/blockchecks *.py
@@ -0,0 +1,118 @@
1
+ Metadata-Version: 2.4
2
+ Name: blockchecks
3
+ Version: 1.3.2
4
+ Summary: Asynchronous DPI strategy testing framework for nfqws2/zapret2
5
+ Author: zhoel-sherk
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/zhoel-sherk/blockcheckS
8
+ Project-URL: Repository, https://github.com/zhoel-sherk/blockcheckS
9
+ Project-URL: Changelog, https://github.com/zhoel-sherk/blockcheckS/blob/master/changelog.md
10
+ Project-URL: Documentation, https://github.com/zhoel-sherk/blockcheckS/blob/master/docs/guide.md
11
+ Keywords: nfqws2,zapret,dpi,network,bypass,blockcheck,netns
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Intended Audience :: System Administrators
15
+ Classifier: Operating System :: POSIX :: Linux
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: System :: Networking
21
+ Requires-Python: >=3.10
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ Requires-Dist: curl-cffi>=0.8.0
25
+ Requires-Dist: colorama>=0.4.6
26
+ Requires-Dist: aiosqlite>=0.20.0
27
+ Requires-Dist: tomli>=2.0.0; python_version < "3.11"
28
+ Requires-Dist: pydantic-settings>=2.0
29
+ Provides-Extra: mcp
30
+ Requires-Dist: mcp<2.0.0,>=1.1.0; extra == "mcp"
31
+ Provides-Extra: dev
32
+ Requires-Dist: pytest>=8.0.0; extra == "dev"
33
+ Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
34
+ Requires-Dist: pytest-cov>=7.0.0; extra == "dev"
35
+ Requires-Dist: pytest-randomly>=3.15; extra == "dev"
36
+ Requires-Dist: pytest-timeout>=2.0.0; extra == "dev"
37
+ Requires-Dist: pytest-xdist>=3.5.0; extra == "dev"
38
+ Requires-Dist: ruff>=0.9.0; extra == "dev"
39
+ Requires-Dist: vulture>=2.14; extra == "dev"
40
+ Requires-Dist: pytest-archon>=0.0.6; extra == "dev"
41
+ Requires-Dist: mutmut>=3.6; extra == "dev"
42
+ Requires-Dist: hypothesis>=6.0; extra == "dev"
43
+ Provides-Extra: discovery
44
+ Requires-Dist: aiohttp-socks>=0.11.0; extra == "discovery"
45
+ Requires-Dist: aiohttp>=3.9; extra == "discovery"
46
+ Provides-Extra: youtube
47
+ Requires-Dist: yt-dlp>=2024.1.0; extra == "youtube"
48
+ Dynamic: license-file
49
+
50
+ # blockchecks
51
+
52
+ Asynchronous DPI (Deep Packet Inspection) strategy testing framework for
53
+ **nfqws2** / **zapret2**.
54
+
55
+ It runs thousands of desync strategies against target domains inside isolated
56
+ network namespaces, using a browser-grade TLS fingerprint (JA4 via curl_cffi),
57
+ and reports which combinations actually work on a given network. Results are
58
+ stored in SQLite and can be exported to ready-to-use nfqws2 configuration
59
+ files for Keenetic / OpenWrt / Linux routers.
60
+
61
+ ## Features
62
+
63
+ - **Fast**: ~1 test/sec (33× faster than the reference `blockcheck.sh`) via
64
+ asyncio + a reused netns pool.
65
+ - **Accurate**: browser-grade JA4 TLS fingerprint (Chrome BoringSSL), content
66
+ validation, DPI fake-detection.
67
+ - **TCP + UDP**: TCP strategy families, HTTP :80, QUIC/HTTP3, and Discord
68
+ Voice UDP endpoint discovery (STUN + IP Discovery).
69
+ - **Resilient**: checkpoint/resume, SQLite state, adaptive priority queue.
70
+ - **Tooling**: static strategy validator (offline, 9+ rules), custom Lua
71
+ registry, MCP server for LLM agents.
72
+ - **Portable**: installs on x86_64, arm64 and armv7l (Raspberry Pi 2+) without
73
+ compiling native dependencies.
74
+
75
+ ## Requirements
76
+
77
+ - Linux with root (needed for network namespaces + iptables)
78
+ - Python 3.10+
79
+ - nfqws2 / zapret2 (auto-fetched on first run)
80
+
81
+ ## Quick start
82
+
83
+ ```bash
84
+ pip install blockchecks
85
+
86
+ # First scan — ~30 strategies against discord.com
87
+ sudo bs scan -d discord.com --generate --parallel 4
88
+
89
+ # Resume after interruption (checkpoint/resume)
90
+ sudo bs scan -d discord.com --generate --resume
91
+ ```
92
+
93
+ ## Export a router config
94
+
95
+ ```bash
96
+ # default: ~/.local/share/blockcheckS/export/nfqws2_<ts>.conf (+ raw, user.list)
97
+ bc-nfconf --db logs/run.db --out-dir /path/to/out
98
+
99
+ # optional: add an IP filter from the DNS cache (no DNS needed on the router)
100
+ bc-nfconf --db logs/run.db --out-dir /path/to/out --ipset
101
+ ```
102
+
103
+ ## Documentation
104
+
105
+ - [User guide](https://github.com/zhoel-sherk/blockcheckS/blob/master/docs/guide.md)
106
+ - [Architecture](https://github.com/zhoel-sherk/blockcheckS/blob/master/docs/architecture.md)
107
+ - [MCP server](https://github.com/zhoel-sherk/blockcheckS/blob/master/docs/mcp.md)
108
+ - [Changelog](https://github.com/zhoel-sherk/blockcheckS/blob/master/changelog.md)
109
+
110
+ ## License
111
+
112
+ MIT — see [LICENSE](https://github.com/zhoel-sherk/blockcheckS/blob/master/LICENSE).
113
+
114
+ ## Disclaimer
115
+
116
+ This software is an open-source analytical tool for educational, academic and
117
+ network-research purposes, intended for network administrators and systems
118
+ engineers to study DPI behaviors. Use entirely at your own risk.
@@ -0,0 +1,282 @@
1
+ # blockcheckS — lightspeed DPI strategy tester
2
+
3
+ [![version](https://img.shields.io/badge/version-1.3.2-green)](#)
4
+ [![python](https://img.shields.io/badge/python-3.10%2B-green)](#)
5
+ [![license](https://img.shields.io/badge/license-MIT-brightgreen)](LICENSE)
6
+ [![tests](https://img.shields.io/badge/tests-1266%20passed-success)](#)
7
+
8
+ **Твой провайдер режет YouTube, Discord и Telegram через DPI?**
9
+ *blockcheckS за 10 минут найдёт работающий обход из 10 000+ комбинаций,
10
+ пока ты пьёшь кофе. В 33 раза быстрее, чем blockcheck.sh.*
11
+
12
+ > Асинхронный подбор стратегий nfqws2/zapret2 в изолированных network
13
+ > namespaces. HTTP/2 и HTTP/3 через браузерный TLS-отпечаток (JA4),
14
+ > TCP×UDP pair matrix с авто-дискавери голосовых эндпоинтов Discord,
15
+ > checkpoint/resume, SQLite-стейт и экспорт готового конфига для Keenetic.
16
+
17
+ - ⚡ **1 тест/сек** — 33× быстрее blockcheck.sh (0.43 тест/сек)
18
+ - 🔍 **10 886+ стратегий** — StandardGenerator: TCP-семей + HTTP :80 + QUIC + UDP voice
19
+ - 🎭 **Браузерный JA4** — curl_cffi с Chrome 124 BoringSSL (не палится как скрипт)
20
+ - 🏊 **Netns pool** — пресозданные изолированные namespace'ы
21
+ - 🔬 **Preflight Triage** — детерминированный профиль DPI до скана (DNS/L3/SNI/
22
+ stream-stall/QoS/QUIC/TLS-fingerprint) → отсечение бесполезных веток генераторов
23
+ - 🧬 **Adaptive queue** — генетический буст PASS-стратегий по family/blob/traits
24
+ - 🛰️ **`bs serve`** — резидентный on-the-fly probe server (Unix socket + HTTP)
25
+ - 🧩 **`bs mcp`** — MCP-мост (FastMCP, stdio) для LLM-клиентов (Claude/Cursor/opencode)
26
+ - 🧪 **Статический валидатор** — офлайн-проверка стратегий до netns (9+ правил,
27
+ fuzz-устойчив) + кастомные Lua (`lua/custom/`, `manifest.toml` с included/excluded)
28
+ - 📊 **TCP×UDP матрицы** — ищет пары стратегий для голоса Discord
29
+ - 💾 **Checkpoint/resume** — упал роутер? Продолжи с места, SQLite помнит всё
30
+ - 📦 **nfconf export** — готовый конфиг для Keenetic, Linux, OpenWrt (+ `--ipset`
31
+ из DNS-кэша, IP→CIDR через ip2net)
32
+ - 🤖 **Zapret2 auto-fetch** — сам скачает nfqws2 с GitHub, если нет локально
33
+ - 🍓 **Raspberry Pi 2+ (armv7l)** — установка без компиляции (stdlib /proc, без psutil)
34
+
35
+ ---
36
+
37
+ ## Оглавление
38
+
39
+ 1. [Что такое blockcheckS? (30 секунд)](#что-такое-blockchecks-30-секунд)
40
+ 2. [Сравнение с blockcheck.sh](#сравнение-с-blockchecksh)
41
+ 3. [Быстрый старт](#быстрый-старт)
42
+ 4. [Установка](#установка)
43
+ 5. [CLI команды](#cli-команды)
44
+ 6. [Пресеты](#пресеты)
45
+ 7. [Экспорт конфига для роутера](#экспорт-конфига-для-роутера)
46
+ 8. [Документация](#документация)
47
+ 9. [For contributors](#for-contributors)
48
+ 10. [Дисклеймер](#дисклеймер)
49
+
50
+ ---
51
+
52
+ ## Что такое blockcheckS? (30 секунд)
53
+
54
+ Берёшь домен (скажем, `discord.com`), запускаешь одну команду — и через пару
55
+ минут получаешь список стратегий nfqws2, которые **реально работают** на твоём
56
+ провайдере. Никакого гадания на кофейной гуще с `badsum`/`fakedsplit` — только
57
+ холодный, циничный перебор через изолированные netns с браузерным JA4.
58
+
59
+ ```bash
60
+ sudo bs scan -d discord.com --generate --parallel 4
61
+ # → 29 стратегий за 8 секунд, 3 PASS
62
+ ```
63
+
64
+ Под капотом: asyncio + NetNsPool + curl_cffi + nfqws2 + SQLite + немного магии.
65
+
66
+ ---
67
+
68
+ ## Сравнение с blockcheck.sh
69
+
70
+ | blockcheck.sh (оригинал) | blockcheckS (этот парень) |
71
+ |---|---|
72
+ | ~60–120 сек на стратегию | ~3–5 сек на стратегию (async parallel) |
73
+ | System curl / OpenSSL | curl_cffi с браузерным JA4 (Chrome 124 BoringSSL) |
74
+ | Только TCP | TCP + UDP voice (STUN + IP Discovery) |
75
+ | Последовательный shell | asyncio + NetNsPool (netns переиспользуются) |
76
+ | Легко «ложно-зелёный» | Content validation + DPI fake detection |
77
+ | 32 000+ комбинаций, медленно | 10 886 комбинаций, **быстро** (покрытие ≥90% BC2) |
78
+ | Только bash | Python-пакет, `pip install`, pytest, ruff |
79
+
80
+ ---
81
+
82
+ ## Быстрый старт
83
+
84
+ Три команды — и ты в деле:
85
+
86
+ ```bash
87
+ # 1. Установка (editable, см. ниже почему)
88
+ pip install -e ".[dev,discovery]"
89
+
90
+ # 2. Первый скан — 29 стратегий на discord.com
91
+ sudo bs scan -d discord.com --generate --parallel 4
92
+
93
+ # 3. Продолжить после обрыва (checkpoint/resume)
94
+ sudo bs scan -d discord.com --generate --resume
95
+ ```
96
+
97
+ Больше примеров в [User Guide](docs/guide.md).
98
+
99
+ ---
100
+
101
+ ## Установка
102
+
103
+ **Linux с root** (нужен для netns + iptables). Python 3.10+.
104
+
105
+ ```bash
106
+ git clone https://github.com/zhoel-sherk/blockcheckS.git
107
+ cd blockcheckS
108
+ pip install -e ".[dev,discovery]"
109
+ ```
110
+
111
+ Почему **editable** (`-e`)? `configs/` и `presets/` лежат в корне репо —
112
+ plain wheel их не найдёт. Это осознанное решение (см. [ONB-7](docs/package.md)).
113
+
114
+ **nfqws2 / zapret2** — blockcheckS сам скачает официальный релиз
115
+ [bol-van/zapret2](https://github.com/bol-van/zapret2) при первом запуске в
116
+ `~/.local/share/blockcheckS/zapret2/` (под armv7l/arm64 — `binaries/linux-arm`).
117
+ Если nfqws2 уже стоит в `/opt/zapret2` — использует его. Отключить авто-фетч:
118
+ `--no-fetch-deps`.
119
+
120
+ **Блобы** (fake payloads) — в репо `blobs/` (без скачивания). Override:
121
+ `BLOCKCHECKS_BLOBS`. Опционально: `scripts/install_blobs.sh` для extras на хосте.
122
+ Flowseal-техники: `--tcp-sources flowseal` / `-M flowseal-fast`
123
+ ([Flowseal/zapret-discord-youtube](https://github.com/Flowseal/zapret-discord-youtube);
124
+ howto: [docs/cookbook/blobs.md](docs/cookbook/blobs.md)).
125
+
126
+ **Raspberry Pi 2+ (armv7l)** — все обязательные зависимости имеют armv7l
127
+ wheels на PyPI (psutil убран → stdlib `/proc`), поэтому установка **без
128
+ компиляции**:
129
+ ```bash
130
+ bash scripts/setup-standalone.sh # venv + pip install + smoke
131
+ # подробности: docs/install-rpi.md
132
+ ```
133
+
134
+ Юнит-тесты запускаются **без root**:
135
+ ```bash
136
+ pytest -m "not integration"
137
+ ```
138
+
139
+ ---
140
+
141
+ ## CLI команды
142
+
143
+ | Команда | Что делает | Пример |
144
+ |---|---|---|
145
+ | `bs scan` | Асинхронный TCP-батч | `sudo bs scan -d discord.com --generate --parallel 4` |
146
+ | `bs pair` | TCP×UDP pair matrix | `sudo bs pair -d discord.com --generate --auto-discover 5` |
147
+ | `bs full` | Масс-скан + экспорт (долгий) | `sudo bs full --parallel 4 --max-timeh 2` |
148
+ | `bs tcp` | Одна TCP-стратегия (sync) | `sudo bs tcp -d discord.com -c configs/simple_fake__fake_ts.conf` |
149
+ | `bs udp` | Один UDP-конфиг (sync) | `sudo bs udp -c configs/udp_voice__fake_r6.conf` |
150
+ | `bs composite` | Композитный TCP+UDP конфиг | `sudo bs composite -c configs/composite_discord.conf` |
151
+ | `bs bench-settle` | Калибровка settle/curl таймаутов | `sudo bs bench-settle -d discord.com` |
152
+ | `bs serve` | Резидентный probe server (Unix socket + HTTP) | `sudo bs serve --pool 2` |
153
+ | `bs mcp` | MCP-сервер (stdio) для LLM-клиентов | `bs-mcp` (см. [docs/mcp.md](docs/mcp.md)) |
154
+ | `bc-nfconf` | Экспорт nfqws2-конфигов из БД (+`--ipset`) | `bc-nfconf --db state.db --out-dir output --ipset` |
155
+
156
+ Флаги, которые стоит знать: `--resume`, `--preset`, `-M`, `--generate`,
157
+ `--tcp-sources`, `--parallel`, `--max`, `--scan-level`, `--repeats`,
158
+ `--disable-ech`, `--max-timeh`. Bare `--generate` (без значения) =
159
+ `custom,configs`; явно: `--generate fake,configs`.
160
+
161
+ Подробный CLI reference: [docs/guide.md](docs/guide.md).
162
+
163
+ ---
164
+
165
+ ## Пресеты
166
+
167
+ Готовые списки доменов и стратегий из GP control-plane:
168
+
169
+ ```bash
170
+ # Домены
171
+ bs scan --preset benchmark --generate # 6 доменов для быстрой проверки
172
+ bs scan --preset discord --generate # голый Discord (22 домена)
173
+ bs scan --preset google-youtube --generate # YouTube CDN (23 домена)
174
+ bs scan --preset critical --generate # критичные: YT + Discord + GV
175
+
176
+ # Стратегии
177
+ bs scan -d discord.com -M blockcheckS-best # 9 проверенных стратегий
178
+ bs scan -d discord.com -M gp-verified # 12 GP-подтверждённых
179
+ bs pair -d discord.com -M gp-voice # голосовые UDP-стратегии
180
+ ```
181
+
182
+ Посмотреть всё: `bs scan --list-presets`.
183
+ Детали: [presets/README.md](presets/README.md).
184
+
185
+ ---
186
+
187
+ ## Экспорт конфига для роутера
188
+
189
+ После прогона blockcheckS экспортирует готовые nfqws2-конфиги из best-стратегий
190
+ в XDG-каталог:
191
+
192
+ ```bash
193
+ # default: ~/.local/share/blockcheckS/export/nfqws2_<ts>.conf (+ raw, user.list)
194
+ bc-nfconf --db logs/run.db --out-dir /path/to/out
195
+
196
+ # Добавить IP-фильтр из DNS-кэша (без DNS на роутере):
197
+ # малые наборы → --ipset-ip inline, большие → user.ipset
198
+ bc-nfconf --db logs/run.db --out-dir /path/to/out --ipset
199
+ ```
200
+
201
+ На Keenetic скопируйте `nfqws2_*.conf` → `/opt/etc/nfqws2/nfqws2.conf`.
202
+ Детали: [configs/README.md](configs/README.md).
203
+
204
+ ---
205
+
206
+ ## Документация
207
+
208
+ | Документ | О чём |
209
+ |---|---|
210
+ | [User Guide](docs/guide.md) | CLI reference, примеры, known limitations |
211
+ | [Architecture](docs/architecture.md) | Data flow, module map, voice discovery flow |
212
+ | [Package Layout](docs/package.md) | XDG-пути, деревья, import graph |
213
+ | [Database Schema](docs/database.md) | ER-диаграмма, SQL examples, checkpoint logic |
214
+ | [MCP Server](docs/mcp.md) | Установка MCP в Claude Desktop / Cursor / opencode |
215
+ | [Raspberry Pi (armv7l)](docs/install-rpi.md) | Установка на RPi 2+ без компиляции |
216
+ | [Glossary](docs/glossary.md) | Терминология: netns, NFQUEUE, pair matrix, ... |
217
+ | [Changelog](changelog.md) | История версий (1.3.2 и ранее) |
218
+ | [Roadmap](docs/todo.md) | Бэклог: P1 (скорость), P2 (voice/GP), P3 (ML) |
219
+
220
+ Cookbook: [add checker](docs/cookbook/add-checker.md) ·
221
+ [add generator](docs/cookbook/add-generator.md) ·
222
+ [add CLI flag](docs/cookbook/add-cli-flag.md) ·
223
+ [GP bridge](docs/cookbook/gp-bridge.md).
224
+
225
+ ---
226
+
227
+ ## For contributors
228
+
229
+ - [CONTRIBUTING.md](CONTRIBUTING.md) — setup, тесты, PR flow, что коммитить а что нет
230
+ - [docs/architecture.md](docs/architecture.md) — data flow, module map
231
+ - [docs/cookbook/](docs/cookbook/) — как добавить checker / generator / CLI flag
232
+
233
+ Быстрый старт для разработчика:
234
+ ```bash
235
+ pip install -e ".[dev,discovery]"
236
+ ruff check src tests # линтер
237
+ pytest -m "not integration" # юнит-тесты (без root)
238
+ ```
239
+
240
+ ---
241
+
242
+ ## ⚖️ Legal Disclaimer / Дисклеймер
243
+
244
+ ### English
245
+ This software is provided "as is", without warranty of any kind, express or
246
+ implied. **blockcheckS** is an open-source analytical tool designed strictly for
247
+ educational, academic, and network research purposes. It is intended for network
248
+ administrators and systems engineers to analyze Deep Packet Inspection (DPI)
249
+ behaviors and diagnose network topologies.
250
+
251
+ * The author(s) do not encourage, facilitate, or promote any illegal
252
+ activities or violations of local telecommunication laws.
253
+ * This software does not contain any malicious code, malware, or exploits
254
+ designed to compromise computer security or bypass information protection
255
+ systems (in compliance with Art. 273 of the Criminal Code of the Russian
256
+ Federation).
257
+ * The use of this tool is entirely **at your own risk**. The author(s) shall
258
+ not be held liable for any direct, indirect, incidental, or consequential
259
+ damages, service disruptions, or legal actions resulting from the use or
260
+ misuse of this software.
261
+
262
+ ### Русский
263
+ Данное программное обеспечение предоставляется по принципу «как есть» (as is).
264
+ **blockcheckS** является аналитическим инструментом и распространяется
265
+ исключительно в ознакомительных, научно-исследовательских и диагностических
266
+ целях для системных инженеров и сетевых администраторов.
267
+
268
+ * **Исключительно исследовательский характер**: Программа предназначена для
269
+ изучения механизмов работы систем глубокого анализа пакетов (DPI) и не
270
+ содержит вредоносного функционала, средств обхода систем защиты информации
271
+ или вирусов (соответствует требованиям **Ст. 273 УК РФ**). Утилита
272
+ оперирует стандартными сетевыми вызовами и легитимными механизмами ядра
273
+ Linux.
274
+ * **Соблюдение законодательства**: Автор(ы) не призывают к нарушению
275
+ действующего законодательства Российской Федерации, включая Федеральный
276
+ закон «О связи» № 126-ФЗ и Федеральный закон «Об информации, информационных
277
+ технологиях и о защите информации» № 149-ФЗ.
278
+ * **Отказ от ответственности**: Вы используете данное ПО **на свой страх и
279
+ риск**. Автор(ы) не несут ответственности за любые ограничения связи,
280
+ блокировки, штрафы, потерю данных или иные прямые или косвенные
281
+ последствия, возникшие в результате работы или неправильной настройки
282
+ данной утилиты.
@@ -0,0 +1,69 @@
1
+ # blockchecks
2
+
3
+ Asynchronous DPI (Deep Packet Inspection) strategy testing framework for
4
+ **nfqws2** / **zapret2**.
5
+
6
+ It runs thousands of desync strategies against target domains inside isolated
7
+ network namespaces, using a browser-grade TLS fingerprint (JA4 via curl_cffi),
8
+ and reports which combinations actually work on a given network. Results are
9
+ stored in SQLite and can be exported to ready-to-use nfqws2 configuration
10
+ files for Keenetic / OpenWrt / Linux routers.
11
+
12
+ ## Features
13
+
14
+ - **Fast**: ~1 test/sec (33× faster than the reference `blockcheck.sh`) via
15
+ asyncio + a reused netns pool.
16
+ - **Accurate**: browser-grade JA4 TLS fingerprint (Chrome BoringSSL), content
17
+ validation, DPI fake-detection.
18
+ - **TCP + UDP**: TCP strategy families, HTTP :80, QUIC/HTTP3, and Discord
19
+ Voice UDP endpoint discovery (STUN + IP Discovery).
20
+ - **Resilient**: checkpoint/resume, SQLite state, adaptive priority queue.
21
+ - **Tooling**: static strategy validator (offline, 9+ rules), custom Lua
22
+ registry, MCP server for LLM agents.
23
+ - **Portable**: installs on x86_64, arm64 and armv7l (Raspberry Pi 2+) without
24
+ compiling native dependencies.
25
+
26
+ ## Requirements
27
+
28
+ - Linux with root (needed for network namespaces + iptables)
29
+ - Python 3.10+
30
+ - nfqws2 / zapret2 (auto-fetched on first run)
31
+
32
+ ## Quick start
33
+
34
+ ```bash
35
+ pip install blockchecks
36
+
37
+ # First scan — ~30 strategies against discord.com
38
+ sudo bs scan -d discord.com --generate --parallel 4
39
+
40
+ # Resume after interruption (checkpoint/resume)
41
+ sudo bs scan -d discord.com --generate --resume
42
+ ```
43
+
44
+ ## Export a router config
45
+
46
+ ```bash
47
+ # default: ~/.local/share/blockcheckS/export/nfqws2_<ts>.conf (+ raw, user.list)
48
+ bc-nfconf --db logs/run.db --out-dir /path/to/out
49
+
50
+ # optional: add an IP filter from the DNS cache (no DNS needed on the router)
51
+ bc-nfconf --db logs/run.db --out-dir /path/to/out --ipset
52
+ ```
53
+
54
+ ## Documentation
55
+
56
+ - [User guide](https://github.com/zhoel-sherk/blockcheckS/blob/master/docs/guide.md)
57
+ - [Architecture](https://github.com/zhoel-sherk/blockcheckS/blob/master/docs/architecture.md)
58
+ - [MCP server](https://github.com/zhoel-sherk/blockcheckS/blob/master/docs/mcp.md)
59
+ - [Changelog](https://github.com/zhoel-sherk/blockcheckS/blob/master/changelog.md)
60
+
61
+ ## License
62
+
63
+ MIT — see [LICENSE](https://github.com/zhoel-sherk/blockcheckS/blob/master/LICENSE).
64
+
65
+ ## Disclaimer
66
+
67
+ This software is an open-source analytical tool for educational, academic and
68
+ network-research purposes, intended for network administrators and systems
69
+ engineers to study DPI behaviors. Use entirely at your own risk.
@@ -0,0 +1,68 @@
1
+ # Baked strategy blobs
2
+
3
+ Committed `.bin` payloads for nfqws2 `--blob=` / Flowseal-style strategies.
4
+
5
+ - Prefer this directory at runtime (see `BLOCKCHECKS_BLOBS` / `config.BLOB_DIR`).
6
+ - Alias map: `src/blockchecks/engine/blob_aliases.py`
7
+ - How to add a file: [docs/cookbook/blobs.md](../docs/cookbook/blobs.md)
8
+ - Upstream reference: https://github.com/Flowseal/zapret-discord-youtube
9
+
10
+ ## TLS ClientHello blobs (TCP :443 fake payloads)
11
+
12
+ | Alias | File | Size | Source / note |
13
+ |---|---|---|---|
14
+ | `google` / `tls_clienthello` | `tls_clienthello_www_google_com.bin` | 681 B | www.google.com ClientHello (Flowseal bin) — базовый Google-фейк |
15
+ | `max_ru` | `tls_clienthello_max_ru.bin` | 664 B | max.ru ClientHello (Flowseal) — подтверждён на LLC Fiord |
16
+ | `4pda` | `tls_clienthello_4pda_to.bin` | 284 B | 4pda.to ClientHello (Flowseal) |
17
+ | `tls_vk` | `tls_clienthello_vk_com.bin` | 517 B | vk.com ClientHello |
18
+ | `tls_5ka` | `tls_5ka.bin` | 654 B | **5ka.ru ClientHello (NEW, Flowseal 2026)** — Пятёрочка, обход РКН |
19
+ | `tls_funpay` | `tls_funpay.bin` | 562 B | funpay.com ClientHello (Hellcat-95, PR #16591) |
20
+ | `tls_rzd` | `tls_rzd.bin` | 658 B | www.rzd.ru ClientHello (Hellcat-95, PR #16591) |
21
+
22
+ ## QUIC Initial blobs (UDP :443 fake payloads)
23
+
24
+ | Alias | File | Size | Source / note |
25
+ |---|---|---|---|
26
+ | `quic_google` | `quic_initial_www_google_com.bin` | 1200 B | www.google.com QUIC Initial (Flowseal) — базовый |
27
+ | `quic_dbank` | `quic_initial_dbankcloud_ru.bin` | 1357 B | dbankcloud.ru QUIC Initial (Flowseal) |
28
+ | `quic_4pda` | `quic_4pda.bin` | 1250 B | 4pda.to QUIC Initial (Flowseal) |
29
+ | `quic_tencent` | `quic_tencent.bin` | 1231 B | tencent.com QUIC Initial (Flowseal) |
30
+ | `quic_steam` | `quic_steam.bin` | 1200 B | steamcommunity.com QUIC Initial (Flowseal) |
31
+ | `quic_vk` | `quic_initial_vk_com.bin` | 1357 B | vk.com QUIC Initial |
32
+ | `quic_5ka` | `quic_5ka.bin` | 1250 B | **5ka.ru QUIC Initial (NEW, Flowseal 2026)** — Пятёрочка |
33
+ | `quic_rutube` | `quic_rutube.bin` | 1357 B | **rutube.ru QUIC Initial (NEW, Flowseal 2026)** — Rutube |
34
+ | `quic_funpay` | `quic_funpay.bin` | 1200 B | funpay.com QUIC Initial (Hellcat-95, PR #16591) |
35
+ | `quic_cloudflare` | `quic_cloudflare.bin` | 1200 B | www.cloudflare.com QUIC Initial (Hellcat-95, PR #16591) |
36
+ | `quic_alfabank` | `quic_alfabank.bin` | 1200 B | alfabank.ru QUIC Initial (Hellcat-95, PR #16591) |
37
+ | `quic_gv_kyber_1` | `quic_gv_kyber_1.bin` | 1230 B | googlevideo CDN QUIC + Kyber/ML-KEM key-share #1 |
38
+ | `quic_gv_kyber_2` | `quic_gv_kyber_2.bin` | 1230 B | googlevideo CDN QUIC + Kyber key-share #2 |
39
+ | `quic_gv_rr2` | `quic_gv_rr2.bin` | 1200 B | googlevideo CDN QUIC (rr2 snapshot) |
40
+ | `quic_initial` | `quic_initial.bin` | 1200 B | generic QUIC Initial (zapret2 default) |
41
+
42
+ ## UDP voice / STUN blobs
43
+
44
+ | Alias | File | Size | Source / note |
45
+ |---|---|---|---|
46
+ | `discord_udp` | `discord_udp.bin` | 1200 B | Flowseal ACTIVE_DISCORD_UDP.bin — Discord voice IP-discovery/media |
47
+ | `discord_ipdisc` | `discord_ipdisc.bin` | 74 B | Discord IP-discovery-with-port (70 B discovery) |
48
+ | `game_udp` | `game_udp.bin` | 1250 B | Flowseal ACTIVE_GAME_UDP.bin — game UDP fake |
49
+ | `stun` | `stun.bin` | 100 B | STUN binding request (Flowseal) |
50
+ | `stun2` | `stun2.bin` | 120 B | STUN variant 2 (Flowseal) |
51
+
52
+ ## Other
53
+
54
+ | Alias | File | Size | Source / note |
55
+ |---|---|---|---|
56
+ | `wireguard_init` | `wireguard_init.bin` | 148 B | WireGuard handshake initiation |
57
+ | `http_iana` | `http_iana.bin` | 427 B | fake HTTP GET to www.iana.org |
58
+
59
+ ## New blobs (2026-08)
60
+
61
+ Added from Flowseal zapret-discord-youtube (2026 tree):
62
+ - **5ka.ru** (`tls_5ka`, `quic_5ka`) — Пятёрочка (X5 Retail), россия, часто под РКН-фильтрацией.
63
+ Источник: [PR #16589](https://github.com/Flowseal/zapret-discord-youtube/pull/16589) (merged).
64
+ - **rutube.ru** (`quic_rutube`) — Rutube, российский видеохостинг.
65
+ - **funpay.com / www.cloudflare.com / alfabank.ru** (`quic_funpay`, `quic_cloudflare`,
66
+ `quic_alfabank`) и **funpay.com / www.rzd.ru** (`tls_funpay`, `tls_rzd`) —
67
+ из [PR #16591](https://github.com/Flowseal/zapret-discord-youtube/pull/16591)
68
+ (Hellcat-95, закрыт без мержа; блобы взяты из коммита 8c35287).
Binary file
Binary file
@@ -0,0 +1,9 @@
1
+ GET / HTTP/1.1
2
+ Host: www.iana.org
3
+ Connection: keep-alive
4
+ Upgrade-Insecure-Requests: 1
5
+ User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4300.0 Safari/537.36
6
+ Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
7
+ Accept-Encoding: gzip, deflate
8
+ Accept-Language: en-US,en;q=0.9,ru;q=0.8
9
+
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file