Skip to content

Commit

Permalink
Update BadPS.ps1
Browse files Browse the repository at this point in the history
  • Loading branch information
InfoSecREDD authored Sep 7, 2023
1 parent 84d0ff9 commit 7ee11a3
Showing 1 changed file with 97 additions and 10 deletions.
107 changes: 97 additions & 10 deletions BadPS.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
# features will be added later. This project is meant for development
# and education purposes only.
# AUTHOR: InfoSecREDD
# Version: 2.2.5
# Version: 2.2.6
# Target: Windows
$version = "2.2.5"
$version = "2.2.6"
$source = @"
using System;
using System.Collections.Generic;
Expand Down Expand Up @@ -77,8 +77,12 @@ $specialKeys = @{
}
$atos = "$pwd/setting.db"
$core = "1"
$hosted = "https://raw.githubusercontent.com"
$author = "InfoSecREDD"
$projectName = "BadPS"
$projectFileType = "ps1"
$BpPID = $PID
$URL = "https://raw.githubusercontent.com/InfoSecREDD/BadPS/main/BadPS.ps1"
$UChk = "${hosted}/${author}/${projectName}/main/${projectName}.${projectFileType}"
$windowHeight = $Host.UI.RawUI.WindowSize.Height
$windowWidth = $Host.UI.RawUI.WindowSize.Width
$fileName = $MyInvocation.MyCommand.Name
Expand Down Expand Up @@ -108,12 +112,12 @@ if ($args.Count -gt 0) {
Write-Host ".`\$fileName --version - Show local Version of BadPS"
Write-Host ".`\$fileName - Launch BadPS in Dev Mode"
Write-Host "`n"
Write-Host "Supported BadUSB Commands:"
Write-Host "Supported Flipper BadUSB Core Commands:"
Write-Host "DELAY, DEFAULT_DELAY, BACKSPACE, ENTER, PRINTSCREEN, GUI, ALT, CTRL, SHIFT, ESCAPE, "
Write-Host "CTRL-SHIFT, SHIFT-ALT, SHIFT-GUI, CTRL-ALT, F1-12, UP, DOWN, LEFT, RIGHT, STRING/ALTSTRING,"
Write-Host "TAB, SCROLLLOCK, CAPSLOCK, INSERT, SPACE, RELEASE, HOLD, PAUSE, REPEAT`n"
Write-Host "TAB, SCROLLLOCK, CAPSLOCK, INSERT, SPACE, RELEASE, HOLD, PAUSE, REPEAT, ALTCHAR`n"
Write-Host "Un-Supported BadUSB Commands:"
Write-Host "DEFINE, EXFIL, CTRL-ALT DELETE (due to Windows Limits), ALTCODE, Unknown`n`n`n"
Write-Host " CTRL-ALT DELETE (due to Windows Limits), Unknown`n`n`n"
exit 0
}
if ($args -eq '--version' -Or $args -eq '-version' -Or $args -eq '-v' -Or $args -eq 'version') {
Expand All @@ -122,7 +126,7 @@ if ($args.Count -gt 0) {
}
if ($args -eq '--update' -Or $args -eq '-update' -Or $args -eq 'update') {
Write-Host "Checking GitHub for newer release..."
$content = Invoke-RestMethod -Uri $url
$content = Invoke-RestMethod -Uri $UChk
if ($content) {
$lines = $content -split "`r`n"
if ($lines.Count -ge 11) {
Expand Down Expand Up @@ -456,6 +460,71 @@ function Shift
}
[KeyboardSend.KeyboardSend]::KeyUp([System.Windows.Forms.Keys]::ShiftKey)
}
function AltChar {
param (
[string]$inputCode
)
$inputCode = $inputCode.Trim()
$altCodeMapping = @{
"1" = [char]0x263A; "2" = [char]0x263B; "3" = [char]0x2665; "4" = [char]0x2666; "5" = [char]0x2663;
"6" = [char]0x2660; "7" = [char]0x2022; "8" = [char]0x25D8; "9" = [char]0x25CB; "10" = [char]0x25D9;
"11" = [char]0x2642; "12" = [char]0x2640; "13" = [char]0x266A; "14" = [char]0x266B; "15" = [char]0x263C;
"16" = [char]0x25BA; "17" = [char]0x25C4; "18" = [char]0x2195; "19" = [char]0x203C; "20" = [char]0x00B6;
"21" = [char]0x00A7; "22" = [char]0x25AC; "23" = [char]0x21A8; "24" = [char]0x2191; "25" = [char]0x2193;
"26" = [char]0x2192; "27" = [char]0x2190; "28" = [char]0x221F; "29" = [char]0x2194; "30" = [char]0x25B2;
"31" = [char]0x25BC; "32" = [char]0x0020; "33" = [char]0x0021; "34" = [char]0x0022; "35" = [char]0x0023;
"36" = [char]0x0024; "37" = [char]0x0025; "38" = [char]0x0026; "39" = [char]0x0027; "40" = [char]0x0028;
"41" = [char]0x0029; "42" = [char]0x002A; "43" = [char]0x002B; "44" = [char]0x002C; "45" = [char]0x002D;
"46" = [char]0x002E; "47" = [char]0x002F; "48" = [char]0x0030; "49" = [char]0x0031; "50" = [char]0x0032;
"51" = [char]0x0033; "52" = [char]0x0034; "53" = [char]0x0035; "54" = [char]0x0036; "55" = [char]0x0037;
"56" = [char]0x0038; "57" = [char]0x0039; "58" = [char]0x003A; "59" = [char]0x003B; "60" = [char]0x003C;
"61" = [char]0x003D; "62" = [char]0x003E; "63" = [char]0x003F; "64" = [char]0x0040; "65" = [char]0x0041;
"66" = [char]0x0042; "67" = [char]0x0043; "68" = [char]0x0044; "69" = [char]0x0045; "70" = [char]0x0046;
"71" = [char]0x0047; "72" = [char]0x0048; "73" = [char]0x0049; "74" = [char]0x004A; "75" = [char]0x004B;
"76" = [char]0x004C; "77" = [char]0x004D; "78" = [char]0x004E; "79" = [char]0x004F; "80" = [char]0x0050;
"81" = [char]0x0051; "82" = [char]0x0052; "83" = [char]0x0053; "84" = [char]0x0054; "85" = [char]0x0055;
"86" = [char]0x0056; "87" = [char]0x0057; "88" = [char]0x0058; "89" = [char]0x0059; "90" = [char]0x005A;
"91" = [char]0x005B; "92" = [char]0x005C; "93" = [char]0x005D; "94" = [char]0x005E; "95" = [char]0x005F;
"96" = [char]0x0060; "97" = [char]0x0061; "98" = [char]0x0062; "99" = [char]0x0063; "100" = [char]0x0064;
"101" = [char]0x0065; "102" = [char]0x0066; "103" = [char]0x0067; "104" = [char]0x0068; "105" = [char]0x0069;
"106" = [char]0x006A; "107" = [char]0x006B; "108" = [char]0x006C; "109" = [char]0x006D; "110" = [char]0x006E;
"111" = [char]0x006F; "112" = [char]0x0070; "113" = [char]0x0071; "114" = [char]0x0072; "115" = [char]0x0073;
"116" = [char]0x0074; "117" = [char]0x0075; "118" = [char]0x0076; "119" = [char]0x0077; "120" = [char]0x0078;
"121" = [char]0x0079; "122" = [char]0x007A; "123" = [char]0x007B; "124" = [char]0x007C; "125" = [char]0x007D;
"126" = [char]0x007E; "127" = [char]0x2302; "128" = [char]0x00C7; "129" = [char]0x00FC; "130" = [char]0x00E9;
"131" = [char]0x00E2; "132" = [char]0x00E4; "133" = [char]0x00E0; "134" = [char]0x00E5; "135" = [char]0x00E7;
"136" = [char]0x00EA; "137" = [char]0x00EB; "138" = [char]0x00E8; "139" = [char]0x00EF; "140" = [char]0x00EE;
"141" = [char]0x00EC; "142" = [char]0x00C4; "143" = [char]0x00C5; "144" = [char]0x00C9; "145" = [char]0x00E6;
"146" = [char]0x00C6; "147" = [char]0x00F4; "148" = [char]0x00F6; "149" = [char]0x00F2; "150" = [char]0x00FB;
"151" = [char]0x00F9; "152" = [char]0x00FF; "153" = [char]0x00D6; "154" = [char]0x00DC; "155" = [char]0x00A2;
"156" = [char]0x00A3; "157" = [char]0x00A5; "158" = [char]0x20A7; "159" = [char]0x0192; "160" = [char]0x00E1;
"161" = [char]0x00ED; "162" = [char]0x00F3; "163" = [char]0x00FA; "164" = [char]0x00F1; "165" = [char]0x00D1;
"166" = [char]0x00AA; "167" = [char]0x00BA; "168" = [char]0x00BF; "169" = [char]0x2310; "170" = [char]0x00AC;
"171" = [char]0x00BD; "172" = [char]0x00BC; "173" = [char]0x00A1; "174" = [char]0x00AB; "175" = [char]0x00BB;
"176" = [char]0x2591; "177" = [char]0x2592; "178" = [char]0x2593; "179" = [char]0x2502; "180" = [char]0x2524;
"181" = [char]0x2561; "182" = [char]0x2562; "183" = [char]0x2556; "184" = [char]0x2555; "185" = [char]0x2563;
"186" = [char]0x2551; "187" = [char]0x2557; "188" = [char]0x255D; "189" = [char]0x255C; "190" = [char]0x255B;
"191" = [char]0x2510; "192" = [char]0x2514; "193" = [char]0x2534; "194" = [char]0x252C; "195" = [char]0x251C;
"196" = [char]0x2500; "197" = [char]0x253C; "198" = [char]0x2522; "199" = [char]0x2521; "200" = [char]0x255A;
"201" = [char]0x2554; "202" = [char]0x2569; "203" = [char]0x2566; "204" = [char]0x2560; "205" = [char]0x2550;
"206" = [char]0x256C; "207" = [char]0x2567; "208" = [char]0x2568; "209" = [char]0x2564; "210" = [char]0x2565;
"211" = [char]0x2559; "212" = [char]0x2558; "213" = [char]0x2552; "214" = [char]0x2553; "215" = [char]0x256B;
"216" = [char]0x256A; "217" = [char]0x2518; "218" = [char]0x251C; "219" = [char]0x2588; "220" = [char]0x2584;
"221" = [char]0x258C; "222" = [char]0x2590; "223" = [char]0x2580; "224" = [char]0x03B1; "225" = [char]0x00DF;
"226" = [char]0x0393; "227" = [char]0x03C0; "228" = [char]0x03A3; "229" = [char]0x03C3; "230" = [char]0x00B5;
"231" = [char]0x03C4; "232" = [char]0x03A6; "233" = [char]0x0398; "234" = [char]0x03A9; "235" = [char]0x03B4;
"236" = [char]0x221E; "237" = [char]0x03C6; "238" = [char]0x03B5; "239" = [char]0x2229; "240" = [char]0x2261;
"241" = [char]0x00B1; "242" = [char]0x2265; "243" = [char]0x2264; "244" = [char]0x2320; "245" = [char]0x2321;
"246" = [char]0x00F7; "247" = [char]0x2248; "248" = [char]0x00B0; "249" = [char]0x2219; "250" = [char]0x00B7;
"251" = [char]0x221A; "252" = [char]0x207F; "253" = [char]0x00B2; "254" = [char]0x25A0; "255" = [char]0x00A0;
}
if ($altCodeMapping.ContainsKey($inputCode)) {
$character = $altCodeMapping[$inputCode]
[System.Windows.Forms.SendKeys]::SendWait($character)
} else {
Write-Host "Alt Code not found for $inputCode"
}
}
function CtrlShift
{
param (
Expand Down Expand Up @@ -792,15 +861,24 @@ function runFlipper {
}
}
}
if ($line -match '^ALTCHAR (.*)') {
$char = $matches[1]
if ($char -ne '' -Or $char -ne ' ') {
$charArray = $char.Split(' ')
$result = $charArray[0]
$char = "$result"
AltChar "$char"
}
}
}
if (!([string]::IsNullOrEmpty($payload))) {
if (Test-Path $filePath -PathType Leaf) {
Get-Content -Path $filePath | ForEach-Object {
$line = $_
if ($line -match '^REPEAT (\d+)') {
$repeatCount = [int]$matches[1]
#$repeatCountFix = [int]$repeatCount - 1
#$repeatCount = $repeatCountFix
$repeatCountFix = [int]$repeatCount + 1
$repeatCount = $repeatCountFix
} else {
$lastLine = $line
}
Expand Down Expand Up @@ -989,6 +1067,15 @@ function runFlipper {
}
}
}
if ($line -match '^ALTCHAR (.*)') {
$char = $matches[1]
if ($char -ne '' -Or $char -ne ' ') {
$charArray = $char.Split(' ')
$result = $charArray[0]
$char = "$result"
AltChar "$char"
}
}
}
for ($i = 1; $i -le $repeatCount; $i++) {
runFlipper -COMMAND "$lastLine"
Expand Down Expand Up @@ -1051,7 +1138,7 @@ function runMenu {
$userInput = Read-Host " ${BW}Select ${BC}#${BW} and Press ENTER"
if ($userInput -eq 'update' -or $userInput -eq 'u') {
Write-Host "`n`nChecking GitHub for newer release..."
$content = Invoke-RestMethod -Uri $url
$content = Invoke-RestMethod -Uri $UChk
if ($content) {
$lines = $content -split "`r`n"
if ($lines.Count -ge 11) {
Expand Down

0 comments on commit 7ee11a3

Please sign in to comment.