Spaces:
Running
Running
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Flipper Zero Code Generator</title> | |
<style> | |
:root { | |
--primary: #00ff9d; | |
--dark: #1a1a1a; | |
--light: #f0f0f0; | |
--accent: #ff003c; | |
} | |
* { | |
margin: 0; | |
padding: 0; | |
box-sizing: border-box; | |
font-family: 'Courier New', monospace; | |
} | |
body { | |
background: var(--dark); | |
color: var(--light); | |
line-height: 1.6; | |
padding: 2rem; | |
} | |
.container { | |
max-width: 1000px; | |
margin: 0 auto; | |
} | |
h1 { | |
color: var(--primary); | |
text-align: center; | |
margin-bottom: 2rem; | |
text-shadow: 0 0 10px rgba(0,255,157,0.5); | |
} | |
.generator { | |
background: rgba(255,255,255,0.05); | |
padding: 2rem; | |
border-radius: 10px; | |
box-shadow: 0 0 20px rgba(0,0,0,0.3); | |
} | |
.form-group { | |
margin-bottom: 1.5rem; | |
} | |
label { | |
display: block; | |
margin-bottom: 0.5rem; | |
color: var(--primary); | |
} | |
select, input { | |
width: 100%; | |
padding: 0.75rem; | |
background: var(--dark); | |
border: 1px solid var(--primary); | |
color: var(--light); | |
border-radius: 5px; | |
outline: none; | |
} | |
select:focus, input:focus { | |
box-shadow: 0 0 10px rgba(0,255,157,0.3); | |
} | |
button { | |
background: var(--primary); | |
color: var(--dark); | |
padding: 1rem 2rem; | |
border: none; | |
border-radius: 5px; | |
cursor: pointer; | |
font-weight: bold; | |
transition: all 0.3s ease; | |
margin-top: 1rem; | |
} | |
button:hover { | |
transform: translateY(-2px); | |
box-shadow: 0 5px 15px rgba(0,255,157,0.4); | |
} | |
.output { | |
margin-top: 2rem; | |
background: rgba(0,0,0,0.3); | |
padding: 1.5rem; | |
border-radius: 5px; | |
position: relative; | |
} | |
.code { | |
font-family: 'Courier New', monospace; | |
color: var(--primary); | |
white-space: pre-wrap; | |
} | |
.copy-btn { | |
position: absolute; | |
top: 10px; | |
right: 10px; | |
background: var(--accent); | |
color: var(--light); | |
padding: 0.5rem 1rem; | |
font-size: 0.8rem; | |
} | |
.matrix-bg { | |
position: fixed; | |
top: 0; | |
left: 0; | |
width: 100%; | |
height: 100%; | |
z-index: -1; | |
opacity: 0.1; | |
} | |
@media (max-width: 768px) { | |
body { | |
padding: 1rem; | |
} | |
} | |
</style> | |
</head> | |
<body> | |
<canvas class="matrix-bg" id="matrix"></canvas> | |
<div class="container"> | |
<h1>🔓 Flipper Zero Code Generator</h1> | |
<div class="generator"> | |
<div class="form-group"> | |
<label>Attack Type</label> | |
<select id="attackType"> | |
<option value="wifi">WiFi Attack</option> | |
<option value="rfid">RFID Clone</option> | |
<option value="subghz">SubGHz Replay</option> | |
<option value="nfc">NFC Manipulation</option> | |
</select> | |
</div> | |
<div class="form-group"> | |
<label>Target Protocol</label> | |
<select id="protocol"> | |
<option value="wpa2">WPA2</option> | |
<option value="wpa3">WPA3</option> | |
<option value="wps">WPS</option> | |
<option value="wep">WEP (Legacy)</option> | |
</select> | |
</div> | |
<div class="form-group"> | |
<label>Custom Parameters</label> | |
<input type="text" id="params" placeholder="Enter custom parameters"> | |
</div> | |
<button onclick="generateCode()">Generate Code</button> | |
<div class="output" id="output" style="display: none;"> | |
<button class="copy-btn" onclick="copyCode()">Copy</button> | |
<pre class="code" id="codeOutput"></pre> | |
</div> | |
</div> | |
</div> | |
<script> | |
// Matrix rain effect | |
const canvas = document.getElementById('matrix'); | |
const ctx = canvas.getContext('2d'); | |
canvas.width = window.innerWidth; | |
canvas.height = window.innerHeight; | |
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@#$%^&*'; | |
const fontSize = 14; | |
const columns = canvas.width/fontSize; | |
const drops = []; | |
for(let x = 0; x < columns; x++) { | |
drops[x] = 1; | |
} | |
function drawMatrix() { | |
ctx.fillStyle = 'rgba(0, 0, 0, 0.05)'; | |
ctx.fillRect(0, 0, canvas.width, canvas.height); | |
ctx.fillStyle = '#00ff9d'; | |
ctx.font = fontSize + 'px monospace'; | |
for(let i = 0; i < drops.length; i++) { | |
const text = chars[Math.floor(Math.random() * chars.length)]; | |
ctx.fillText(text, i*fontSize, drops[i]*fontSize); | |
if(drops[i]*fontSize > canvas.height && Math.random() > 0.975) | |
drops[i] = 0; | |
drops[i]++; | |
} | |
} | |
setInterval(drawMatrix, 33); | |
// Code generation | |
function generateCode() { | |
const attackType = document.getElementById('attackType').value; | |
const protocol = document.getElementById('protocol').value; | |
const params = document.getElementById('params').value; | |
const codeTemplates = { | |
wifi: `Flipper Zero WiFi Attack Script | |
Protocol: ${protocol} | |
Parameters: ${params} | |
sub: ${protocol}_attack | |
while(true) | |
wifi_scan() | |
target_found = find_network("${params}") | |
if target_found | |
launch_attack("${protocol}", "${params}") | |
wait(1000) | |
end | |
end | |
`, | |
rfid: `Flipper Zero RFID Clone Script | |
Mode: Read & Emulate | |
Frequency: 125kHz | |
sub: clone_card | |
card_data = scan_rfid() | |
if card_data | |
save_data("${params}") | |
emulate(card_data) | |
end | |
`, | |
subghz: `Flipper Zero SubGHz Script | |
Frequency: 433.92MHz | |
Mode: Capture & Replay | |
sub: capture_signal | |
while(true) | |
signal = listen(433.92) | |
if signal_detected | |
save_signal("${params}") | |
replay_signal() | |
end | |
end | |
`, | |
nfc: `Flipper Zero NFC Script | |
Mode: Emulation | |
Type: NTAG215 | |
sub: nfc_routine | |
card = scan_nfc() | |
if card | |
clone_uid("${params}") | |
emulate_tag() | |
end | |
` | |
}; | |
const output = document.getElementById('output'); | |
const codeOutput = document.getElementById('codeOutput'); | |
output.style.display = 'block'; | |
codeOutput.textContent = codeTemplates[attackType]; | |
} | |
function copyCode() { | |
const codeOutput = document.getElementById('codeOutput'); | |
navigator.clipboard.writeText(codeOutput.textContent); | |
const copyBtn = document.querySelector('.copy-btn'); | |
copyBtn.textContent = 'Copied!'; | |
setTimeout(() => { | |
copyBtn.textContent = 'Copy'; | |
}, 2000); | |
} | |
</script> | |
</body> | |
</html> |