// ServiceSignatureA.jsx — shared helpers + signature sections for Web and Mobile (part 1) // Each "signature" is a unique, domain-specific animated module that makes its // service page visually distinct from the others. Registered on // window.SERVICE_SIGNATURES keyed by slug; dispatcher lives in part B. window.SERVICE_SIGNATURES = window.SERVICE_SIGNATURES || {}; // ── Inject keyframes once ── (function injectSigStyles() { if (document.getElementById('gs-sig-styles')) return; const s = document.createElement('style'); s.id = 'gs-sig-styles'; s.textContent = ` @keyframes gs-sweep { to { transform: rotate(360deg); } } @keyframes gs-blip { 0% { opacity: 0; transform: scale(0.2); } 30% { opacity: 1; transform: scale(1); } 100% { opacity: 0; transform: scale(1.6); } } @keyframes gs-draw { to { stroke-dashoffset: 0; } } @keyframes gs-flow { from { offset-distance: 0%; } to { offset-distance: 100%; } } @keyframes gs-flowx { from { transform: translateX(-120%); } to { transform: translateX(420%); } } @keyframes gs-fadeup { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } @keyframes gs-trace { 0% { opacity: 0.2; } 50% { opacity: 1; } 100% { opacity: 0.2; } } @keyframes gs-glowpulse { 0%,100% { box-shadow: 0 0 0 0 rgba(94,105,210,0.0); } 50% { box-shadow: 0 0 18px 2px rgba(94,105,210,0.35); } } `; document.head.appendChild(s); })(); // ── Shared hooks/components ── const useInView = (threshold = 0.25) => { const ref = React.useRef(null); const [seen, setSeen] = React.useState(false); React.useEffect(() => { const el = ref.current; if (!el) return; const obs = new IntersectionObserver(([e]) => { if (e.isIntersecting) { setSeen(true); obs.disconnect(); } }, { threshold }); obs.observe(el); return () => obs.disconnect(); }, []); return [ref, seen]; }; const useCountUp = (target, active, dur = 1400) => { const [v, setV] = React.useState(0); React.useEffect(() => { if (!active) return; let raf, start; const tick = (t) => { if (!start) start = t; const p = Math.min(1, (t - start) / dur); const eased = 1 - Math.pow(1 - p, 3); setV(target * eased); if (p < 1) raf = requestAnimationFrame(tick); }; raf = requestAnimationFrame(tick); return () => cancelAnimationFrame(raf); }, [active, target]); return v; }; const SigSection = ({ eyebrow, title, sub, children, max = 1280 }) => (

{eyebrow}

{title}

{sub &&

{sub}

}
{children}
); const SigPanel = React.forwardRef(({ children, accent = '#5e6ad2', pad = 24, style = {} }, ref) => (
{children}
)); const sevColor = (s) => s === 'critical' || s === 'C' ? '#e8543a' : s === 'high' || s === 'H' ? '#d98326' : s === 'medium' || s === 'M' ? '#5e6ad2' : s === 'low' || s === 'L' ? '#7a7fad' : '#27a644'; // ═══════════════ WEB — OWASP Top 10 coverage board ═══════════════ const WebSignature = () => { const cats = [ { id: 'A01', n: 'Broken Access Control', cov: 96, f: 142, d: 'IDOR cascades, privilege escalation, and tenant breakouts. The most common critical we report.' }, { id: 'A02', n: 'Cryptographic Failures', cov: 88, f: 61, d: 'Weak token signing, predictable secrets, plaintext at rest, and TLS downgrade paths.' }, { id: 'A03', n: 'Injection', cov: 94, f: 88, d: 'SQL, NoSQL, template, and command injection, each confirmed by manual reproduction.' }, { id: 'A04', n: 'Insecure Design', cov: 82, f: 47, d: 'Business-logic flaws, race conditions, and workflow skipping.' }, { id: 'A05', n: 'Security Misconfiguration', cov: 91, f: 73, d: 'Debug endpoints, default credentials, verbose errors, and permissive CORS.' }, { id: 'A06', n: 'Vulnerable Components', cov: 86, f: 55, d: 'Outdated libraries where the vulnerable code is reachable and exploitable.' }, { id: 'A07', n: 'Auth & Identity Failures', cov: 93, f: 79, d: 'MFA bypass, session fixation, JWT tampering, and credential-stuffing resilience.' }, { id: 'A08', n: 'Integrity Failures', cov: 79, f: 31, d: 'Insecure deserialization, unsigned updates, and CI/CD supply-chain trust gaps.' }, { id: 'A09', n: 'Logging & Monitoring', cov: 74, f: 24, d: 'Whether your own telemetry would have detected the activity, tested against your real logging pipeline.' }, { id: 'A10', n: 'Server-Side Request Forgery', cov: 90, f: 42, d: 'Cloud-metadata reachability, internal service pivoting, and blind-SSRF confirmation.' }, ]; const [ref, seen] = useInView(); const [active, setActive] = React.useState(0); React.useEffect(() => { if (!seen) return; const t = setInterval(() => setActive(a => (a + 1) % cats.length), 2600); return () => clearInterval(t); }, [seen]); const cur = cats[active]; return (
{cats.map((c, i) => ( ))}
{cur.id} · OWASP 2021

{cur.n}

{cur.d}

{cur.f}
findings reported
{cur.cov}%
manual coverage
); }; // ═══════════════ MOBILE — MASVS radar chart ═══════════════ const MobileSignature = () => { const [ref, seen] = useInView(); const axes = [ { l: 'Storage', v: 0.82 }, { l: 'Crypto', v: 0.74 }, { l: 'Auth', v: 0.9 }, { l: 'Network', v: 0.86 }, { l: 'Platform', v: 0.7 }, { l: 'Resilience', v: 0.64 }, ]; const cx = 150, cy = 150, R = 110; const pt = (i, r) => { const a = (Math.PI * 2 * i) / axes.length - Math.PI / 2; return [cx + Math.cos(a) * R * r, cy + Math.sin(a) * R * r]; }; const poly = (vals) => vals.map((v, i) => pt(i, v).join(',')).join(' '); return (
{[0.25, 0.5, 0.75, 1].map((r, i) => ( r))} fill="none" stroke="#1e1f22" strokeWidth="1" /> ))} {axes.map((a, i) => { const [x, y] = pt(i, 1); return ; })} {/* baseline */} 0.42))} fill="rgba(98,102,109,0.12)" stroke="#3e3e44" strokeWidth="1.5" style={{ opacity: seen ? 1 : 0, transition: 'opacity 800ms 200ms' }} /> {/* tested */} a.v))} fill="rgba(94,105,210,0.18)" stroke="#828fff" strokeWidth="2" style={{ opacity: seen ? 1 : 0, transform: seen ? 'scale(1)' : 'scale(0.3)', transformOrigin: '150px 150px', transition: 'opacity 700ms 400ms, transform 800ms 400ms cubic-bezier(.2,.8,.2,1)' }} /> {axes.map((a, i) => { const [x, y] = pt(i, 1.2); return {a.l}; })} {seen && axes.map((a, i) => { const [x, y] = pt(i, a.v); return ; })}
{[{ p: 'iOS', d: 'iPhone 12+ · iOS 16/17', sub: 'jailbroken & stock', icon: 'lock' }, { p: 'Android', d: 'AOSP 11–14', sub: 'rooted & user builds', icon: 'fingerprint' }].map(d => (
{d.p}
{d.d}
{d.sub}
))}
Runtime instrumentation
{['Frida', 'Objection', 'SSL-kill-switch', 'MobSF', 'Ghidra', 'Hopper', 'jadx', 'r2'].map(t => ( {t} ))}

Jailbreak and root-detection bypass, SSL-pinning circumvention, and IPC fuzzing on real devices, then the backend API in the same engagement.

); }; Object.assign(window, { useInView, useCountUp, SigSection, SigPanel, sevColor, WebSignature, MobileSignature, }); window.SERVICE_SIGNATURES['web'] = WebSignature; window.SERVICE_SIGNATURES['mobile'] = MobileSignature;