code wiki / (root) / nx_cdnaccess_research_fetch.nx

nx_cdnaccess_research_fetch.nx source

↩ module page · 72 lines · 6318 B

1// nx_cdnaccess_research_fetch.nx -- SOVEREIGN researcher for POLITE CDN/anti-bot ACCESS techniques (operator 2// 2026-07-03: "lots of tools politely walk by these cdns; use the nishi researcher + census for our options -- a 3// good example is how Playwright legally handles these for different tools to allow automation"). The nhentai 4// image CDN dropped our TLS ClientHello (Cloudflare JA3/JA4 fingerprint). This banks the July-2026 landscape of 5// LEGITIMATE approaches so nx_cdnaccess_census grades our sovereign options on a REAL corpus. Same proven pattern 6// (own TLS + Mozilla CA, idempotent have-skip). Axes: A TLS-FINGERPRINT (JA3/JA4, ClientHello order) · B TLS- 7// IMPERSONATION TOOLS (curl-impersonate, uTLS) · C BROWSER AUTOMATION (Playwright, Puppeteer, Selenium -- the 8// "real browser" path) · D CHALLENGE SOLVERS (FlareSolverr, cloudscraper) · E HTTP/2 + HEADER fingerprinting · 9// F POLITENESS/ETHICS (robots, rate, ToS). expect_exit:0 license_tier: ORIGINAL 10import "nx_syscalls.nx" 11import "nx_x509_trust_store.nx" 12import "nx_trust_store_load_from_certdata.nx" 13import "nx_https_fetch_follow.nx" 14const K_MAGIC_4194304: i64 = 4194304 15 16func cf_puts(s: *u8) -> i64 { var n: i64=0; while s[n]!=(0 as u8){n=n+1} sys_write(1,s,n); return 0 } 17func cf_putn(v: i64) -> i64 { if v==0 { sys_write(1,"0" as *u8,1); return 0 } var m: i64=v; if m<0{sys_write(1,"-" as *u8,1);m=0-m} let d:*u8=sys_mmap(24); var k:i64=0; while m>0{d[k]=(48+(m%10)) as u8;m=m/10;k=k+1} var i:i64=k-1; while i>=0{let o:*u8=sys_mmap(1);o[0]=d[i];sys_write(1,o,1);i=i-1} return 0 } 18func have_file(path: *u8) -> i64 { let fd: i64=sys_openat_rd(path); if fd<0{return 0} sys_close(fd); return 1 } 19func fetch_save(url: *u8, opath: *u8, store: *TrustStore, out: *u8, cap: i64) -> i64 { 20 if have_file(opath)==1 { cf_puts(opath); cf_puts(" [have-skip]\n"); return 1 } 21 let status: *i64=sys_mmap(8) as *i64 22 let n: i64=nx_https_fetch_follow(url, store, out, cap, 6, status) 23 cf_puts(url); cf_puts(" status="); cf_putn(status[0]); cf_puts(" bytes="); cf_putn(n) 24 if n<=0 { cf_puts(" FETCH-FAIL\n"); return 0 } 25 var gz: i64=0; if n>=2 { if out[0]==0x1f as u8 { if out[1]==0x8b as u8 { gz=1 } } } 26 if gz==1 { cf_puts(" [GZIP-skip]\n"); return 0 } 27 let fd: i64=sys_openat_wr(opath, 0x1a4); if fd<0 { cf_puts(" SAVE-FAIL\n"); return 0 } 28 sys_write(fd, out, n); sys_close(fd); cf_puts(" SAVED\n"); return 1 29} 30 31func main() -> i64 { 32 let r: i64 = nx_trust_store_load_from_certdata("data/mozilla_certdata.txt" as *u8, 512, K_MAGIC_4194304) 33 if r<=0 { cf_puts("CDNACCESS-RESEARCH: certdata load failed\n"); return 1 } 34 let store: *TrustStore = r as *TrustStore 35 cf_puts("CA roots="); cf_putn(trust_store_count(store)); cf_puts("\n") 36 let cap: i64=K_MAGIC_4194304 37 let out: *u8=sys_mmap(cap) 38 var ok: i64=0 39 40 cf_puts("== A. TLS FINGERPRINTING (what the CDN keys on) ==\n") 41 ok = ok + fetch_save("https://en.wikipedia.org/wiki/Transport_Layer_Security" as *u8, "knowledge/fetched/cdn_a_tls.raw" as *u8, store, out, cap) 42 ok = ok + fetch_save("https://raw.githubusercontent.com/salesforce/ja3/master/README.md" as *u8, "knowledge/fetched/cdn_a_ja3.raw" as *u8, store, out, cap) 43 ok = ok + fetch_save("https://raw.githubusercontent.com/FoxIO-LLC/ja4/main/README.md" as *u8, "knowledge/fetched/cdn_a_ja4.raw" as *u8, store, out, cap) 44 45 cf_puts("== B. TLS IMPERSONATION TOOLS (match a real browser's ClientHello) ==\n") 46 ok = ok + fetch_save("https://raw.githubusercontent.com/lwthiker/curl-impersonate/main/README.md" as *u8, "knowledge/fetched/cdn_b_curlimpersonate.raw" as *u8, store, out, cap) 47 ok = ok + fetch_save("https://raw.githubusercontent.com/refraction-networking/utls/master/README.md" as *u8, "knowledge/fetched/cdn_b_utls.raw" as *u8, store, out, cap) 48 ok = ok + fetch_save("https://raw.githubusercontent.com/yifeikong/curl_cffi/main/README.md" as *u8, "knowledge/fetched/cdn_b_curlcffi.raw" as *u8, store, out, cap) 49 50 cf_puts("== C. BROWSER AUTOMATION (the 'real browser' path -- Playwright/Puppeteer/Selenium) ==\n") 51 ok = ok + fetch_save("https://raw.githubusercontent.com/microsoft/playwright/main/README.md" as *u8, "knowledge/fetched/cdn_c_playwright.raw" as *u8, store, out, cap) 52 ok = ok + fetch_save("https://raw.githubusercontent.com/puppeteer/puppeteer/main/README.md" as *u8, "knowledge/fetched/cdn_c_puppeteer.raw" as *u8, store, out, cap) 53 ok = ok + fetch_save("https://en.wikipedia.org/wiki/Selenium_(software)" as *u8, "knowledge/fetched/cdn_c_selenium.raw" as *u8, store, out, cap) 54 ok = ok + fetch_save("https://raw.githubusercontent.com/ultrafunkamsterdam/undetected-chromedriver/master/README.md" as *u8, "knowledge/fetched/cdn_c_undetected.raw" as *u8, store, out, cap) 55 56 cf_puts("== D. CHALLENGE SOLVERS (Cloudflare/anti-bot managed) ==\n") 57 ok = ok + fetch_save("https://raw.githubusercontent.com/FlareSolverr/FlareSolverr/master/README.md" as *u8, "knowledge/fetched/cdn_d_flaresolverr.raw" as *u8, store, out, cap) 58 ok = ok + fetch_save("https://raw.githubusercontent.com/VeNoMouS/cloudscraper/master/README.md" as *u8, "knowledge/fetched/cdn_d_cloudscraper.raw" as *u8, store, out, cap) 59 60 cf_puts("== E. HTTP/2 + HEADER FINGERPRINTING (beyond TLS) ==\n") 61 ok = ok + fetch_save("https://en.wikipedia.org/wiki/HTTP/2" as *u8, "knowledge/fetched/cdn_e_http2.raw" as *u8, store, out, cap) 62 ok = ok + fetch_save("https://raw.githubusercontent.com/wwhtrsww/akamai-http2-fingerprint/main/README.md" as *u8, "knowledge/fetched/cdn_e_h2fp.raw" as *u8, store, out, cap) 63 ok = ok + fetch_save("https://en.wikipedia.org/wiki/User_agent" as *u8, "knowledge/fetched/cdn_e_ua.raw" as *u8, store, out, cap) 64 65 cf_puts("== F. POLITENESS / ETHICS / LEGAL (how tools do it responsibly) ==\n") 66 ok = ok + fetch_save("https://en.wikipedia.org/wiki/Robots_exclusion_standard" as *u8, "knowledge/fetched/cdn_f_robots.raw" as *u8, store, out, cap) 67 ok = ok + fetch_save("https://en.wikipedia.org/wiki/Web_scraping" as *u8, "knowledge/fetched/cdn_f_scraping.raw" as *u8, store, out, cap) 68 ok = ok + fetch_save("https://en.wikipedia.org/wiki/HTTP_cookie" as *u8, "knowledge/fetched/cdn_f_cookie.raw" as *u8, store, out, cap) 69 70 cf_puts("READABLE SOURCES SAVED: "); cf_putn(ok); cf_puts(" / 19\n") 71 return 0 72}