Help
RSS
API
Feed
Maltego
Contact
Domain > cynp.net
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-11-02
18.160.78.79
(
ClassC
)
2025-11-02
18.160.78.88
(
ClassC
)
2026-02-27
3.169.173.42
(
ClassC
)
Port 80
HTTP/1.1 301 Moved PermanentlyServer: CloudFrontDate: Fri, 27 Feb 2026 12:39:09 GMTContent-Type: text/htmlContent-Length: 167Connection: keep-aliveLocation: https://cynp.net/X-Cache: Redirect from cloudfrontVia: 1.1 42eb5dfcc641e959ebaf60f01fc7d582.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P4X-Amz-Cf-Id: aR2euWn-TXsVcaiXsXOHsEW85HaU2ivaAzxCpWv-5xDiFHyhr-WSRA html>head>title>301 Moved Permanently/title>/head>body>center>h1>301 Moved Permanently/h1>/center>hr>center>CloudFront/center>/body>/html>
Port 443
HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 12978Connection: keep-aliveLast-Modified: Sat, 18 Oct 2025 12:46:23 GMTx-amz-server-side-encryption: AES256Accept-Ranges: bytesServer: AmazonS3Date: Fri, 27 Feb 2026 12:39:10 GMTETag: 0920b4e758ef154da2ac1584e24ea4ecX-Cache: RefreshHit from cloudfrontVia: 1.1 bb0a0a1792594c22377eddc835c4b882.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P4X-Amz-Cf-Id: in8WSvF14cgwaqWRodpZkXsw8WRMSBblYICj1OsroH6R0TLQdAD31A !doctype html>html langja>meta charsetutf-8>meta nameviewport contentwidthdevice-width, initial-scale1>title>One-off Screen/title>style> :root { --bg-a: hsl(220 20% 10%); --bg-b: hsl(260 30% 12%); --fg: hsl(0 0% 96%); --accent: hsl(200 80% 55%); } * { box-sizing: border-box; } html, body { margin:0; height:100%; overflow:hidden; background: radial-gradient(120% 120% at 20% 0%, var(--bg-a), var(--bg-b)); color: var(--fg); font: 16px/1.5 system-ui, -apple-system, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, Apple Color Emoji, Segoe UI Emoji; } main { min-height: 100vh; display: grid; grid-template-rows: 1fr; } #stage { position: relative; height: 100%; padding: 0; } #hero { position: relative; width: 100%; height: 100%; overflow: hidden; } #art { width: 100%; height: 100%; display: block; } footer { position: fixed; left: 0; right: 0; bottom: 0; padding: 10px 12px; display:flex; align-items:center; justify-content: flex-start; gap:12px; background: none; border: 0; } .id { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, Liberation Mono, monospace; font-size: 12px; opacity: 0.85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-shadow: 0 1px 2px rgba(0,0,0,.6); }/style>main> div idstage> div idhero> svg idart viewBox0 0 1000 1000 preserveAspectRatioxMidYMid slice aria-hiddentrue>/svg> /div> /div> footer> div classid idmeta>/div> /footer>/main>script>(() > { // ---- Utilities ------------------------------------------------------------ const hex (u32) > u32.toString(16).padStart(8, 0); const clamp (x, a, b) > Math.max(a, Math.min(b, x)); // Convert hex string to bytes const hexToBytes (hexStr) > { const out new Uint8Array(hexStr.length / 2); for (let i 0; i out.length; i++) outi parseInt(hexStr.substr(i*2, 2), 16); return out; }; // ---- Bloom Filter (localStorage-backed) ---------------------------------- // 1,048,576 bits (~128 KiB); 4 hash functions. False positive ~1e-4 @ 100k items. const BLOOM_BITS 1 20; const BLOOM_U32 BLOOM_BITS >>> 5; const BLOOM_K 4; const BLOOM_KEY oneoff_bloom_v1; const loadBloom () > { const b64 localStorage.getItem(BLOOM_KEY); const arr new Uint32Array(BLOOM_U32); if (!b64) return arr; try { const bin atob(b64); const buf new Uint8Array(bin.length); for (let i 0; i bin.length; i++) bufi bin.charCodeAt(i); const view new Uint32Array(buf.buffer); arr.set(view.subarray(0, arr.length)); } catch {} return arr; }; const saveBloom (arr) > { const bytes new Uint8Array(arr.buffer); let s ; for (let i 0; i bytes.length; i++) s + String.fromCharCode(bytesi); localStorage.setItem(BLOOM_KEY, btoa(s)); }; // FNV-1a 32-bit const fnv1a32 (bytes) > { let h 0x811c9dc5 >>> 0; for (let i 0; i bytes.length; i++) { h ^ bytesi; h Math.imul(h, 0x01000193) >>> 0; } return h >>> 0; }; // Double hashing const bloomIndices (bytes) > { const h1 fnv1a32(bytes) >>> 0; const h2 fnv1a32(bytes.slice().reverse()) >>> 0; const idx new Uint32Array(BLOOM_K); for (let i 0; i BLOOM_K; i++) { idxi (h1 + Math.imul(i, (h2 | 1))) & (BLOOM_BITS - 1); } return idx; }; const bloomHas (arr, bytes) > { const idx bloomIndices(bytes); for (let i 0; i idx.length; i++) { const bit idxi; if ((arrbit >>> 5 & (1 (bit & 31))) 0) return false; } return true; }; const bloomAdd (arr, bytes) > { const idx bloomIndices(bytes); for (let i 0; i idx.length; i++) { const bit idxi; arrbit >>> 5 | (1 (bit & 31)); } }; // ---- Seeded PRNG (xoshiro128**) ------------------------------------------ const xoshiro128ss (a, b, c, d) > { let s0 a|0, s1 b|0, s2 c|0, s3 d|0; const rotl (x, k) > (x k) | (x >>> (32 - k)); return () > { const result Math.imul(rotl(Math.imul(s1, 5)|0, 7), 9) >>> 0; const t (s1 9) >>> 0; s2 ^ s0; s3 ^ s1; s1 ^ s2; s0 ^ s3; s2 ^ t; s3 rotl(s3, 11) >>> 0; return (result >>> 0) / 0x1_0000_0000; }; }; // ---- Screen ID generation ------------------------------------------------- const newId128 () > { const u32 new Uint32Array(4); crypto.getRandomValues(u32); return hex(u320) + hex(u321) + hex(u322) + hex(u323); // 32 hex chars }; const shortId (hex32) > hex32.slice(0, 12).toUpperCase(); // ---- Deterministic content from seed ------------------------------------- const prngFromId (hex32) > { const u32 new Uint32Array(4); for (let i 0; i 4; i++) u32i parseInt(hex32.slice(i*8, i*8+8), 16) >>> 0; const rnd xoshiro128ss(u320, u321, u322, u323); const rand () > rnd(); const randint (a, b) > Math.floor(a + rand() * (b - a + 1)); const choice (arr) > arrrandint(0, arr.length - 1); return { rand, randint, choice }; }; // ---- Content generators --------------------------------------------------- const wordsA 静寂,波紋,余韻,黎明,残光,呼吸,螺旋,空色,風韻,光跡,星屑,映像,輪郭,余白; const wordsB 設計,構図,断章,旋律,装置,秩序,景色,構造,意匠,記譜,詩篇,幾何,方程,断面; const phrases この瞬間だけの構成を提示します。, 二度と同じ輪郭には戻りません。, 秩序と偶然の交差点に立っています。, 色は記憶、形は時間の切片。, これはあなたのための一回性です。 ; const setTheme (rand) > { const h rand()*360; const h2 (h + 40 + rand()*60) % 360; const s1 15 + rand()*20; const s2 22 + rand()*25; const l1 8 + rand()*8; const l2 12 + rand()*10; const accent `hsl(${(h+180)%360} ${50 + rand()*40}% ${50 + rand()*20}%)`; document.documentElement.style.setProperty(--bg-a, `hsl(${h} ${s1}% ${l1}%)`); document.documentElement.style.setProperty(--bg-b, `hsl(${h2} ${s2}% ${l2}%)`); document.documentElement.style.setProperty(--accent, accent); }; // 文字情報はフッターに集約(オーバーレイ) const renderCopyToFooter (seed, rand, choice) > { const a choice(wordsA), b choice(wordsB); const tags `ID:${shortId(seed)}`, `layout:${(parseInt(seed.slice(0,2),16)%3)+1}`, `shapes:${12 + (parseInt(seed.slice(2,4),16)%28)}`, `ver:1` ; const phrase choice(,, ...phrases); const meta document.getElementById(meta); meta.textContent `${a}×${b} • ${tags.join( • )}${phrase ? • + phrase : }`; }; // フィット(フッターはオーバーレイなので差し引き不要) const fitToViewport () > { const vh window.innerHeight || document.documentElement.clientHeight; const main document.querySelector(main); const stage document.getElementById(stage); const hero document.getElementById(hero); main.style.height vh + px; stage.style.height vh + px; hero.style.height vh + px; }; const renderArt (seed, rand, randint, choice) > { const svg document.getElementById(art); svg.innerHTML ; const defs document.createElementNS(http://www.w3.org/2000/svg, defs); const grad document.createElementNS(http://www.w3.org/2000/svg, linearGradient); grad.setAttribute(id, g); grad.setAttribute(x1, 0); grad.setAttribute(y1, 0); grad.setAttribute(x2, 1); grad.setAttribute(y2, 1); for (let i 0; i 3; i++) { const stop document.createElementNS(http://www.w3.org/2000/svg, stop); const px (i/2); const h (rand()*360)|0, s 50 + rand()*40, l 35 + rand()*25; stop.setAttribute(offset, String(px)); stop.setAttribute(stop-color, `hsl(${h} ${s}% ${l}%)`); stop.setAttribute(stop-opacity, 0.9); grad.appendChild(stop); } defs.appendChild(grad); svg.appendChild(defs); const layout parseInt(seed.slice(0,2),16) % 3; const count 24 + (parseInt(seed.slice(2,4),16) % 24); const bg document.createElementNS(http://www.w3.org/2000/svg, rect); bg.setAttribute(x,0); bg.setAttribute(y,0); bg.setAttribute(width,1000); bg.setAttribute(height,1000); bg.setAttribute(fill,url(#g)); bg.setAttribute(opacity,0.28); svg.appendChild(bg); for (let i 0; i count; i++) { const t choice(circle,rect,poly); const g document.createElementNS(http://www.w3.org/2000/svg, g); const alpha 0.25 + rand()*0.5; const hue (rand()*360)|0, sat 50 + rand()*45, lig 35 + rand()*35; const fill `hsl(${hue} ${sat}% ${lig}%)`; const cx layout 0 ? 200 + rand()*600 : layout 1 ? (i%2? 650 + rand()*300 : 50 + rand()*300) : 80 + (i%3)* (420) + rand()*220; const cy layout 0 ? 80 + (i%3)* (420) + rand()*220 : layout 1 ? 150 + (i%3)* (320) + rand()*160 : 200 + rand()*600; if (t circle) { const el document.createElementNS(http://www.w3.org/2000/svg, circle); el.setAttribute(cx, cx.toFixed(2)); el.setAttribute(cy, cy.toFixed(2)); el.setAttribute(r, (30 + rand()*160).toFixed(2)); el.setAttribute(fill, fill); el.setAttribute(opacity, alpha.toFixed(2)); g.appendChild(el); } else if (t rect) { const el document.createElementNS(http://www.w3.org/2000/svg, rect); const w 80 + rand()*260, h 60 + rand()*220; el.setAttribute(x, (cx - w/2).toFixed(2)); el.setAttribute(y, (cy - h/2).toFixed(2)); el.setAttribute(width, w.toFixed(2)); el.setAttribute(height, h.toFixed(2)); el.setAttribute(rx, (8 + rand()*32).toFixed(2)); el.setAttribute(fill, fill); el.setAttribute(opacity, alpha.toFixed(2)); g.appendChild(el); } else { const el document.createElementNS(http://www.w3.org/2000/svg, polygon); const r 40 + rand()*180; const th rand()*Math.PI*2; const p1 cx + r*Math.cos(th), cy + r*Math.sin(th); const p2 cx + r*Math.cos(th+2.0), cy + r*Math.sin(th+2.0); const p3 cx + r*Math.cos(th+4.0), cy + r*Math.sin(th+4.0); el.setAttribute(points, `${p10.toFixed(2)},${p11.toFixed(2)} ${p20.toFixed(2)},${p21.toFixed(2)} ${p30.toFixed(2)},${p31.toFixed(2)}`); el.setAttribute(fill, fill); el.setAttribute(opacity, alpha.toFixed(2)); g.appendChild(el); } g.setAttribute(transform, `rotate(${(rand()*360).toFixed(2)} ${cx.toFixed(2)} ${cy.toFixed(2)})`); svg.appendChild(g); } const ring document.createElementNS(http://www.w3.org/2000/svg, circle); ring.setAttribute(cx,500); ring.setAttribute(cy,500); ring.setAttribute(r, (220 + (parseInt(seed.slice(-2),16))).toString()); ring.setAttribute(fill,none); ring.setAttribute(stroke,url(#g)); ring.setAttribute(stroke-width,10); ring.setAttribute(opacity,0.9); svg.appendChild(ring); }; // ---- Orchestration -------------------------------------------------------- let bloom loadBloom(); const generateUnique (maxTries 64) > { for (let i 0; i maxTries; i++) { const id newId128(); const bytes hexToBytes(id); if (!bloomHas(bloom, bytes)) { bloomAdd(bloom, bytes); saveBloom(bloom); return id; } } return newId128(); }; const render (id) > { const { rand, randint, choice } prngFromId(id); setTheme(rand); renderArt(id, rand, randint, choice); renderCopyToFooter(id, rand, choice); document.title `One-off • ${shortId(id)}`; fitToViewport(); }; const boot () > { fitToViewport(); const id generateUnique(); render(id); }; window.addEventListener(resize, fitToViewport); window.addEventListener(orientationchange, fitToViewport); if (window.visualViewport) window.visualViewport.addEventListener(resize, fitToViewport); boot();})();/script>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]