dr-tkxx commited on
Commit
4a58cb9
·
verified ·
1 Parent(s): b7c1b3e

Update index.html

Browse files
Files changed (1) hide show
  1. index.html +401 -23
index.html CHANGED
@@ -1,29 +1,407 @@
1
  <!DOCTYPE html>
2
- <html lang="en">
3
-
4
  <head>
5
- <meta charset="UTF-8" />
6
- <link rel="stylesheet" href="style.css" />
 
 
 
 
 
 
 
 
 
7
 
8
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
9
- <title>Transformers.js - Object Detection</title>
10
- </head>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  <body>
13
- <h1>Object Detection w/ 🤗 Transformers.js</h1>
14
- <label id="container" for="upload">
15
- <svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
16
- <path fill="#000"
17
- d="M3.5 24.3a3 3 0 0 1-1.9-.8c-.5-.5-.8-1.2-.8-1.9V2.9c0-.7.3-1.3.8-1.9.6-.5 1.2-.7 2-.7h18.6c.7 0 1.3.2 1.9.7.5.6.7 1.2.7 2v18.6c0 .7-.2 1.4-.7 1.9a3 3 0 0 1-2 .8H3.6Zm0-2.7h18.7V2.9H3.5v18.7Zm2.7-2.7h13.3c.3 0 .5 0 .6-.3v-.7l-3.7-5a.6.6 0 0 0-.6-.2c-.2 0-.4 0-.5.3l-3.5 4.6-2.4-3.3a.6.6 0 0 0-.6-.3c-.2 0-.4.1-.5.3l-2.7 3.6c-.1.2-.2.4 0 .7.1.2.3.3.6.3Z">
18
- </path>
19
- </svg>
20
- Click to upload image
21
- <label id="example">(or try example)</label>
22
- </label>
23
- <label id="status">Loading model...</label>
24
- <input id="upload" type="file" accept="image/*" />
25
-
26
- <script src="index.js" type="module"></script>
27
- </body>
 
 
 
 
 
 
 
 
 
 
 
 
28
 
29
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  <!DOCTYPE html>
2
+ <html lang="pt-br">
 
3
  <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>VIGILANTE DA DOBRA - Matrix Security Console</title>
7
+ <style>
8
+ :root {
9
+ --matrix-green: #00FF41;
10
+ --matrix-dark: #003B00;
11
+ --aoi-purple: #8A2BE2;
12
+ --bg-black: #0D0208;
13
+ --alert-red: #FF0000;
14
+ }
15
 
16
+ body, html {
17
+ margin: 0;
18
+ padding: 0;
19
+ width: 100%;
20
+ height: 100%;
21
+ background-color: var(--bg-black);
22
+ color: var(--matrix-green);
23
+ font-family: 'Courier New', Courier, monospace;
24
+ overflow: hidden;
25
+ }
26
+
27
+ #matrix-canvas {
28
+ position: fixed;
29
+ top: 0;
30
+ left: 0;
31
+ z-index: -1;
32
+ }
33
+
34
+ #ui-layer {
35
+ position: relative;
36
+ z-index: 1;
37
+ display: grid;
38
+ grid-template-columns: 300px 1fr;
39
+ grid-template-rows: 60px 1fr 150px;
40
+ height: 100vh;
41
+ gap: 10px;
42
+ padding: 10px;
43
+ box-sizing: border-box;
44
+ background: rgba(13, 2, 8, 0.85);
45
+ }
46
+
47
+ header {
48
+ grid-column: 1 / span 2;
49
+ border: 1px solid var(--matrix-green);
50
+ display: flex;
51
+ align-items: center;
52
+ justify-content: space-between;
53
+ padding: 0 20px;
54
+ background: rgba(0, 59, 0, 0.2);
55
+ box-shadow: 0 0 10px var(--matrix-green);
56
+ }
57
+
58
+ .title {
59
+ font-size: 1.5rem;
60
+ font-weight: bold;
61
+ text-transform: uppercase;
62
+ letter-spacing: 2px;
63
+ color: var(--aoi-purple);
64
+ text-shadow: 0 0 5px var(--matrix-green);
65
+ }
66
+
67
+ aside {
68
+ border: 1px solid var(--matrix-green);
69
+ padding: 15px;
70
+ display: flex;
71
+ flex-direction: column;
72
+ gap: 20px;
73
+ overflow-y: auto;
74
+ }
75
+
76
+ main {
77
+ border: 1px solid var(--matrix-green);
78
+ padding: 15px;
79
+ overflow-y: auto;
80
+ position: relative;
81
+ }
82
+
83
+ footer {
84
+ grid-column: 1 / span 2;
85
+ border: 1px solid var(--matrix-green);
86
+ padding: 10px;
87
+ font-size: 0.8rem;
88
+ overflow-y: auto;
89
+ background: rgba(0, 0, 0, 0.8);
90
+ }
91
+
92
+ .status-box {
93
+ border: 1px solid var(--aoi-purple);
94
+ padding: 10px;
95
+ margin-bottom: 10px;
96
+ background: rgba(138, 43, 226, 0.1);
97
+ }
98
+
99
+ .status-item {
100
+ display: flex;
101
+ justify-content: space-between;
102
+ margin: 5px 0;
103
+ }
104
+
105
+ .label { color: var(--aoi-purple); }
106
+ .value { color: var(--matrix-green); }
107
+
108
+ .log-entry {
109
+ margin: 2px 0;
110
+ border-left: 3px solid var(--matrix-green);
111
+ padding-left: 10px;
112
+ animation: fadeIn 0.3s;
113
+ }
114
+
115
+ .log-alert {
116
+ border-left: 3px solid var(--alert-red);
117
+ color: var(--alert-red);
118
+ font-weight: bold;
119
+ }
120
 
121
+ .log-extract {
122
+ border-left: 3px solid var(--aoi-purple);
123
+ color: #d8bfd8;
124
+ }
125
+
126
+ @keyframes fadeIn {
127
+ from { opacity: 0; transform: translateX(-10px); }
128
+ to { opacity: 1; transform: translateX(0); }
129
+ }
130
+
131
+ .btn {
132
+ background: var(--matrix-dark);
133
+ color: var(--matrix-green);
134
+ border: 1px solid var(--matrix-green);
135
+ padding: 5px 10px;
136
+ cursor: pointer;
137
+ text-transform: uppercase;
138
+ font-size: 0.8rem;
139
+ }
140
+
141
+ .btn:hover {
142
+ background: var(--matrix-green);
143
+ color: var(--bg-black);
144
+ }
145
+
146
+ .btn-alert {
147
+ border-color: var(--alert-red);
148
+ color: var(--alert-red);
149
+ }
150
+
151
+ .btn-alert:hover {
152
+ background: var(--alert-red);
153
+ color: white;
154
+ }
155
+
156
+ .terminal-input {
157
+ width: 100%;
158
+ background: transparent;
159
+ border: none;
160
+ color: var(--matrix-green);
161
+ font-family: inherit;
162
+ outline: none;
163
+ margin-top: 10px;
164
+ }
165
+
166
+ .blink {
167
+ animation: blinker 1s linear infinite;
168
+ }
169
+
170
+ @keyframes blinker {
171
+ 50% { opacity: 0; }
172
+ }
173
+
174
+ ::-webkit-scrollbar { width: 5px; }
175
+ ::-webkit-scrollbar-track { background: var(--bg-black); }
176
+ ::-webkit-scrollbar-thumb { background: var(--matrix-dark); }
177
+ ::-webkit-scrollbar-thumb:hover { background: var(--matrix-green); }
178
+ </style>
179
+ </head>
180
  <body>
181
+ <canvas id="matrix-canvas"></canvas>
182
+
183
+ <div id="ui-layer">
184
+ <header>
185
+ <div class="title">MATRIX SECURITY MASTER <span class="blink">_</span></div>
186
+ <div>
187
+ SANTUÁRIO: <span id="santuario-status" style="color:var(--matrix-green)">ONLINE</span> |
188
+ ÂNCORA: <span style="color:var(--aoi-purple)">i=1, q=1, n=-2</span>
189
+ </div>
190
+ </header>
191
+
192
+ <aside>
193
+ <div class="status-box">
194
+ <div class="label" style="text-align: center; font-weight: bold;">SECURITY ENGINE</div>
195
+ <hr style="border-color: var(--aoi-purple)">
196
+ <div class="status-item"><span>Status:</span> <span class="value">ACTIVE</span></div>
197
+ <div class="status-item"><span>Threats:</span> <span id="threat-count" class="value">0</span></div>
198
+ <div class="status-item"><span>Blocked IPs:</span> <span id="block-count" class="value">0</span></div>
199
+ </div>
200
+
201
+ <div class="status-box">
202
+ <div class="label" style="text-align: center; font-weight: bold;">EXTRACTION (NEXUS)</div>
203
+ <hr style="border-color: var(--aoi-purple)">
204
+ <div class="status-item"><span>Task:</span> <span class="value" id="extract-task">IDLE</span></div>
205
+ <div class="status-item"><span>Progress:</span> <span id="extract-progress" class="value">0%</span></div>
206
+ <div class="status-item"><span>Storage:</span> <span class="value">G:\Users\..\nexus</span></div>
207
+ </div>
208
 
209
+ <button class="btn" onclick="startExtraction()">START EXTRACTION</button>
210
+ <button class="btn btn-alert" onclick="toggleSecurity()">TOGGLE SECURITY</button>
211
+ <button class="btn" onclick="clearLogs()">CLEAR CONSOLE</button>
212
+ </aside>
213
+
214
+ <main id="terminal-main">
215
+ <div id="logs-container">
216
+ <div class="log-entry">Initializing Sanctuary Protocols...</div>
217
+ <div class="log-entry">Loading Matrix Security Master Algorithm...</div>
218
+ <div class="log-entry">Validating Algebraic Anchor: [ (8+1)/2 ] + [ (8-1)/2 ] = 8 => OK.</div>
219
+ <div class="log-entry">Establishing Federation Communicator...</div>
220
+ </div>
221
+ </main>
222
+
223
+ <footer>
224
+ <div id="footer-logs">
225
+ [SYSTEM]: Waiting for command...
226
+ </div>
227
+ <input type="text" id="terminal-cmd" class="terminal-input" placeholder="Execute protocol (e.g., 'scan-network', 'lockdown')...">
228
+ </footer>
229
+ </div>
230
+
231
+ <script>
232
+ // --- MATRIX RAIN ENGINE ---
233
+ const canvas = document.getElementById('matrix-canvas');
234
+ const ctx = canvas.getContext('2d');
235
+
236
+ canvas.width = window.innerWidth;
237
+ canvas.height = window.innerHeight;
238
+
239
+ const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$+-*/=%\"'#&_(),.;:?!\\|{}<>[]^~";
240
+ const fontSize = 16;
241
+ const columns = canvas.width / fontSize;
242
+ const drops = [];
243
+
244
+ for (let x = 0; x < columns; x++) {
245
+ drops[x] = 1;
246
+ }
247
+
248
+ function drawMatrix() {
249
+ ctx.fillStyle = "rgba(13, 2, 8, 0.05)";
250
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
251
+
252
+ ctx.fillStyle = "#0F0"; // Matrix Green
253
+ ctx.font = fontSize + "px monospace";
254
+
255
+ for (let i = 0; i < drops.length; i++) {
256
+ const text = alphabet.charAt(Math.floor(Math.random() * alphabet.length));
257
+ ctx.fillText(text, i * fontSize, drops[i] * fontSize);
258
+
259
+ if (drops[i] * fontSize > canvas.height && Math.random() > 0.975) {
260
+ drops[i] = 0;
261
+ }
262
+ drops[i]++;
263
+ }
264
+ }
265
+
266
+ setInterval(drawMatrix, 30);
267
+
268
+ // --- SECURITY ENGINE (Logic from matrix_security_master.py) ---
269
+ const XSS_PATTERNS = [
270
+ /<script.*?>.*?<\/script>/gi, /javascript:/gi, /vbscript:/gi,
271
+ /onload=/gi, /onerror=/gi, /onmouseover=/gi, /onfocus=/gi,
272
+ /onclick=/gi, /alert\(/gi, /document\.cookie/gi, /window\.location/gi,
273
+ /<iframe.*?>/gi, /<svg.*?>/gi
274
+ ];
275
+
276
+ const SQLI_PATTERNS = [
277
+ /(\%27)|(\')|(\-\-)|(\%23)|(#)/gi,
278
+ /((\%3D)|(=))[^\n]*((\%27)|(\')|(\-\-)|(\%3B)|(;))/gi,
279
+ /\w*((\%27)|(\'))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/gi,
280
+ /select/gi, /union/gi, /exec(\s|\+)+(s|x)p\w+/gi, /drop(\s|\+)+table/gi
281
+ ];
282
+
283
+ let threatCount = 0;
284
+ let blockCount = 0;
285
+ let securityActive = true;
286
+
287
+ function detectThreat(text) {
288
+ for (let p of XSS_PATTERNS) if (p.test(text)) return "XSS ATTACK";
289
+ for (let p of SQLI_PATTERNS) if (p.test(text)) return "SQL INJECTION";
290
+ return null;
291
+ }
292
+
293
+ // --- EXTRACTION SIMULATOR (Logic from extract_TRF.py) ---
294
+ let extractionActive = false;
295
+ const targetSites = [
296
+ { name: "FOLHA SITE", url: "https://www.folha.uol.com.br/" },
297
+ { name: "TRF APP", url: "https://www.trf1.jus.br/login" }
298
+ ];
299
+
300
+ function startExtraction() {
301
+ if (extractionActive) return;
302
+ extractionActive = true;
303
+ addLog("🚀 NEXUS V28 - HIDRATAÇÃO DE ASSETS INICIADA", "log-extract");
304
+ document.getElementById('extract-task').innerText = "RUNNING";
305
+
306
+ let progress = 0;
307
+ const interval = setInterval(() => {
308
+ if (!extractionActive) {
309
+ clearInterval(interval);
310
+ return;
311
+ }
312
+
313
+ const site = targetSites[Math.floor(Math.random() * targetSites.length)];
314
+ addLog(`✅ Capturado: ${site.url}`, "log-extract");
315
+
316
+ progress += Math.floor(Math.random() * 5);
317
+ if (progress >= 100) {
318
+ progress = 0;
319
+ addLog("--- CICLO DE HIDRATAÇÃO COMPLETO ---", "log-extract");
320
+ }
321
+ document.getElementById('extract-progress').innerText = progress + "%";
322
+ }, 2000);
323
+ }
324
+
325
+ // --- UI & CONTROL ---
326
+ const logContainer = document.getElementById('logs-container');
327
+ const footerLogs = document.getElementById('footer-logs');
328
+
329
+ function addLog(msg, className = "") {
330
+ const entry = document.createElement('div');
331
+ entry.className = "log-entry " + className;
332
+ const time = new Date().toLocaleTimeString();
333
+ entry.innerText = `[${time}] ${msg}`;
334
+ logContainer.appendChild(entry);
335
+ logContainer.scrollTop = logContainer.scrollHeight;
336
+
337
+ // Simular ataque aleatório para o log
338
+ if (securityActive && Math.random() > 0.95) {
339
+ simulateAttack();
340
+ }
341
+ }
342
+
343
+ function simulateAttack() {
344
+ const attacks = ["<script>alert('pwned')</script>", "SELECT * FROM users; --", "curl -X POST /login"];
345
+ const attack = attacks[Math.floor(Math.random() * attacks.length)];
346
+ const threat = detectThreat(attack);
347
+
348
+ if (threat) {
349
+ threatCount++;
350
+ blockCount++;
351
+ document.getElementById('threat-count').innerText = threatCount;
352
+ document.getElementById('block-count').innerText = blockCount;
353
+ const ip = `192.168.1.${Math.floor(Math.random() * 255)}`;
354
+ addLog(`[!] ${threat} DETECTADO DE ${ip}`, "log-alert");
355
+ footerLogs.innerText = `[ALERT]: Blocked ${ip} for ${threat}`;
356
+ }
357
+ }
358
+
359
+ function toggleSecurity() {
360
+ securityActive = !securityActive;
361
+ const status = document.getElementById('santuario-status');
362
+ status.innerText = securityActive ? "ONLINE" : "OFFLINE";
363
+ status.style.color = securityActive ? "var(--matrix-green)" : "var(--alert-red)";
364
+ addLog(`SECURITY SYSTEM: ${securityActive ? 'ACTIVATED' : 'DEACTIVATED'}`);
365
+ }
366
+
367
+ function clearLogs() {
368
+ logContainer.innerHTML = "";
369
+ addLog("Console Cleared.");
370
+ }
371
+
372
+ function startFooterHeartbeat() {
373
+ setInterval(() => {
374
+ const sysLoad = (Math.random() * 10).toFixed(2);
375
+ const memory = (Math.random() * 100).toFixed(1);
376
+ footerLogs.innerText = `[STATUS]: CPU LOAD: ${sysLoad}% | MEMORY: ${memory}MB | NEXUS HEARTBEAT: OK`;
377
+ }, 3000);
378
+ }
379
+
380
+ // CMD Input
381
+ document.getElementById('terminal-cmd').addEventListener('keypress', function (e) {
382
+ if (e.key === 'Enter') {
383
+ const cmd = this.value;
384
+ addLog(`> Executing: ${cmd}`);
385
+ this.value = "";
386
+
387
+ // Simple command parsing
388
+ if (cmd === 'scan') simulateAttack();
389
+ if (cmd === 'lockdown') {
390
+ addLog("!!! LOCKDOWN PROTOCOL INITIATED !!!", "log-alert");
391
+ toggleSecurity();
392
+ }
393
+ }
394
+ });
395
+
396
+ window.onload = () => {
397
+ startFooterHeartbeat();
398
+ addLog("Santuário de Aoi - Vigilante Console Ready.");
399
+ };
400
+
401
+ window.onresize = () => {
402
+ canvas.width = window.innerWidth;
403
+ canvas.height = window.innerHeight;
404
+ };
405
+ </script>
406
+ </body>
407
+ </html>