#requires -Version 5.1 <# ------------------------------------------------------- TALON.PS1 v2026.6.5.30 (c) 2026-Present Raven Technologies Group LLC ------------------------------------------------------- /!\ ARE YOU LOST? ----------------- You might have accidentally stumbled upon this when trying to download Talon. If so, that is okay. Here is the proper link: https://raventechnologiesgroup.com/explore#talon This is a PowerShell script for running Talon via PowerShell, rather than the manual method of downloading then running the EXE. The correct way to run this script is as follows: irm https://debloat.win | iex ------------------------------------------------------- /!\ CODE PAST THIS POINT! /!\ ------------------------------------------------------- #> Set-StrictMode -Version Latest $ErrorActionPreference = 'Stop' function Fail { param([string]$Message,[int]$Code=1) Write-Host $Message -ForegroundColor Red cmd /c pause > $null exit $Code } function Ensure-Admin { if (([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent() ).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { return } $script = $PSCommandPath if (-not $script) { Fail "Not elevated. Open PowerShell as Administrator then try again." } try { Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile","-ExecutionPolicy","Bypass","-File",$script -Verb RunAs exit } catch { Fail "Elevation failed or was cancelled. Right-click PowerShell and select Run as administrator, then re-run this script." } } function New-TalonTempFolder { param([string]$BasePath) $folder = Join-Path $BasePath "temporary_folder_for_talon" try { if (-not (Test-Path -LiteralPath $folder)) { New-Item -ItemType Directory -Path $folder -Force | Out-Null } return $folder } catch { Fail "Failed to create temporary Talon folder." } } function Add-DefenderExclusionSafe { param([string]$Path) try { Add-MpPreference -ExclusionPath $Path } catch { Fail "Failed to add Windows Defender exclusion." } } function Remove-DefenderExclusionSafe { param([string]$Path) try { Remove-MpPreference -ExclusionPath $Path } catch {} } function Download-Zip { param([string]$Url,[string]$OutFile) try { Invoke-WebRequest -Uri $Url -OutFile $OutFile -TimeoutSec 120 if (-not (Test-Path -LiteralPath $OutFile) -or (Get-Item -LiteralPath $OutFile).Length -le 0) { Fail "Download completed but file is empty. Check connectivity and retry." } } catch { Fail "Failed to download from $Url. Check your internet connection or firewall and try again." } } function Verify-FileHash { param( [string]$Path, [string]$ExpectedHash ) try { if (-not (Test-Path -LiteralPath $Path)) { Fail "Downloaded file not found for hash verification." } $actual = (Get-FileHash -LiteralPath $Path -Algorithm SHA256).Hash.ToLower() $expected = $ExpectedHash.ToLower() if ($actual -ne $expected) { try { Remove-Item -LiteralPath $Path -Force } catch {} Fail "Integrity verification failed. The downloaded file may have been tampered with. Please report this to Raven Technologies Group." } } catch { Fail "Failed to verify file integrity." } } function Extract-Zip { param([string]$ZipPath,[string]$Destination) try { if (Test-Path -LiteralPath $Destination) { Remove-Item -LiteralPath $Destination -Recurse -Force } Expand-Archive -Path $ZipPath -DestinationPath $Destination -Force Remove-Item -LiteralPath $ZipPath -Force } catch { Fail "Failed to extract the archive. The ZIP may be corrupt. Re-run the script." } } function Find-Exe { param([string]$Root) $paths = @( (Join-Path $Root "Talon.exe"), (Join-Path $Root "Talon\Talon.exe") ) foreach ($p in $paths) { if (Test-Path -LiteralPath $p) { return $p } } Fail "Talon.exe not found in expected locations." } function Stage-Exe { param([string]$Source,[string]$Dest) try { Copy-Item -LiteralPath $Source -Destination $Dest -Force if ((Get-Item -LiteralPath $Dest).Length -le 0) { Fail "Staged Talon.exe is empty. Aborting." } } catch { Fail "Failed to stage Talon.exe in the TEMP directory. Check permissions or disk space and retry." } } function Wait-AnyKey { param([string]$Prompt) if ($Prompt) { Write-Host $Prompt } cmd /c pause > $null } function Run-Talon { param([string]$ExePath) try { $proc = Start-Process -FilePath $ExePath -PassThru -WindowStyle Hidden $proc.WaitForExit() if ($proc.ExitCode -ne 0) { Fail "Talon exited with code $($proc.ExitCode). Review logs or retry." } } catch { Fail "Failed to execute Talon.exe. Ensure security software allows it and try again." } } function Cleanup { param([string[]]$Paths) foreach ($p in $Paths) { try { if (Test-Path -LiteralPath $p) { Remove-Item -LiteralPath $p -Recurse -Force } } catch {} } } Write-Host @" ###################### ######## ###### ################### ####### ##### ###### ########## ###### ####### ####### ######## ##### ###### ############ ###### ###### ###### ########## ##### ###### ###### ##### ###### ###### ###### ########### ##### ###### ###### ##### ###### ###### ###### ###### ##### ##### ###### ###### ###### ###### ###### ###### ###### ###### ##### ###### ###### ###### ###### ###### ###### ###### ##### ##### ###### ###### ####### ###### ###### ###### ###### ##### ##### ###### #################### ###### ###### ###### ###### ########## ###### ###################### ###### ###### ###### ###### ######## ###### ###### ###### ###### ####### ####### ###### ####### ###### ###### ###### ################## ################### ###### ###### (c) 2026 Raven Technologies Group, LLC Talon is open source. The source code is publicly available at: https://github.com/ravendevteam/talon "@ Ensure-Admin $base = $env:TEMP $temp = New-TalonTempFolder -BasePath $base $zip = Join-Path $temp "talon.zip" $extract = Join-Path $temp "extracted" $exe = Join-Path $temp "Talon.exe" Write-Host "A temporary exclusion is made to the folder where Talon was downloaded. This exclusion prevents interference mid-process which may cause problems. This exclusion is removed after Talon is complete." Add-DefenderExclusionSafe -Path $temp Write-Host "Downloading Talon... This may take a few moments. The blue bar at the top indicates the download's progress." Download-Zip -Url "https://dl.raventechnologiesgroup.com/get?f=Talon%2FTalon.zip&k=Is6CWx8h" -OutFile $zip Write-Host "" Write-Host "Verifying download..." Verify-FileHash -Path $zip -ExpectedHash "9f1a0bb9ae2882dfded15a95e9099932774693078fe0dd2df1a18890dc6c011f" Write-Host "Extracting and preparing to launch..." Extract-Zip -ZipPath $zip -Destination $extract $found = Find-Exe -Root $extract Write-Host "Launching Talon..." Write-Host "KEEP THIS WINDOW OPEN!" -ForegroundColor DarkYellow Run-Talon -ExePath $found Write-Host "Cleaning up leftover files..." Cleanup -Paths @($temp) Write-Host "Removing temporary exclusion..." Remove-DefenderExclusionSafe -Path $temp Write-Host "Complete. Thank you for using Talon." -ForegroundColor Green Write-Host "NOTE: It is highly recommended to restart your system for all changes to apply!" -ForegroundColor Yellow cmd /c pause > $null exit