9a0d9ea832535e716bdfee8ae106cbd1eef070f8dd0e1c0b8636d4bc9efd867a
Detection Ratio
0 / 109 rules matched
Hashes
9a0d9ea832535e716bdfee8ae106cbd1eef070f8dd0e1c0b8636d4bc9efd867a
702d629aaaece3df7c6a77c0cebf6109430c13b7
9e766b17cf29f6ca21a967de03e66b45
cb08811ee816c97efdfdd5235bb42f3a4800fe5aebab7884addb2554d3cb60ac0145cb050e53262437997922e69f98ab523a189ffdeab6b001bca05e536a1fd8
File Properties
| Offset (hex) | Offset (dec) | String |
|---|---|---|
| 0x3 | 3 | # Description: Launch and manage the Flyby11 helper (Windows 10 > Windows 11 Upgrade tool). |
| 0x60 | 96 | # Category: Tool |
| 0x72 | 114 | # Host: log |
| 0x7F | 127 | # Options: Run Flyby11; Check version; Open exe folder; Open Releases page; Help |
| 0xD1 | 209 | # PoweredBy: Belim |
| 0xE5 | 229 | # PoweredUrl: https://github.com/builtbybel/Flyoobe |
| 0x11C | 284 | [CmdletBinding()] |
| 0x12F | 303 | param( |
| 0x137 | 311 | [string]$Option, |
| 0x14D | 333 | [string]$ArgsText |
| 0x169 | 361 | # -------------------------- |
| 0x187 | 391 | # Helpers |
| 0x192 | 402 | # -------------------------- |
| 0x1B0 | 432 | function Get-BaseDir { |
| 0x1C8 | 456 | try { return [AppDomain]::CurrentDomain.BaseDirectory } |
| 0x205 | 517 | catch { return (Get-Location).Path } |
| 0x234 | 564 | function Resolve-FlybyExe { |
| 0x251 | 593 | param([string]$base = (Get-BaseDir)) |
| 0x27D | 637 | # 1) Prefer exact known folder ./scripts/Flyby11/Flyby11.exe |
| 0x2BF | 703 | $exact = Join-Path $base 'scripts\Flyby11\Flyby11.exe' |
| 0x2FB | 763 | if (Test-Path $exact) { return (Get-Item $exact).FullName } |
| 0x33E | 830 | # 2) If folder exists, pick any exe inside (in case the filename differs) |
| 0x38D | 909 | $folder = Join-Path $base 'scripts\Flyby11' |
| 0x3BE | 958 | if (Test-Path $folder) { |
| 0x3DC | 988 | $any = Get-ChildItem -Path $folder -Filter '*.exe' -File -ErrorAction SilentlyContinue | Select-Object -First 1 |
| 0x455 | 1109 | if ($any) { return $any.FullName } |
| 0x48A | 1162 | # 3) Common roots to search (scripts, script root, base) |
| 0x4C8 | 1224 | $roots = @( |
| 0x4D9 | 1241 | (Join-Path $base 'scripts'), |
| 0x4FF | 1279 | $PSScriptRoot, |
| 0x517 | 1303 | $base |
| 0x526 | 1318 | ) | Where-Object { $_ -and (Test-Path $_) } | Select-Object -Unique |
| 0x571 | 1393 | foreach ($r in $roots) { |
| 0x58F | 1423 | try { |
| 0x59E | 1438 | $found = Get-ChildItem -Path $r -Recurse -File -Include 'Flyby11.exe','*Flyby11*.exe' -ErrorAction SilentlyContinue | Select-Object -First 1 |
| 0x638 | 1592 | if ($found) { return $found.FullName } |
| 0x66C | 1644 | } catch { } |
| 0x68A | 1674 | # 4) Last resort: any exe named like Flyby*.exe anywhere under scripts |
| 0x6D6 | 1750 | try { |
| 0x6E1 | 1761 | $fallback = Get-ChildItem -Path (Join-Path $base 'scripts') -Recurse -File -Include 'Flyby*.exe' -ErrorAction SilentlyContinue | Select-Object -First 1 |
| 0x782 | 1922 | if ($fallback) { return $fallback.FullName } |
| 0x7B8 | 1976 | } catch { } |
| 0x7CB | 1995 | return $null |
| 0x7E4 | 2020 | function Get-FileVersion { |
| 0x800 | 2048 | param([string]$path) |
| 0x81A | 2074 | try { |
| 0x825 | 2085 | $v = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($path) |
| 0x86F | 2159 | return $v.FileVersion |
| 0x88E | 2190 | } catch { return $null } |
| 0x8B1 | 2225 | function Start-Flyby { |
| 0x8C9 | 2249 | param([string]$exePath, [string]$args) |
| 0x8F7 | 2295 | if (-not (Test-Path $exePath)) { throw "Executable not found: $exePath" } |
| 0x948 | 2376 | Write-Output "Starting Flyby11: $exePath" |
| 0x977 | 2423 | if (-not [string]::IsNullOrWhiteSpace($args)) { |
| 0x9AC | 2476 | Write-Output "Arguments: $args" |
| 0x9DE | 2526 | # Start the GUI exe without opening a PS console |
| 0xA14 | 2580 | try { |
| 0xA1F | 2591 | $startInfo = New-Object System.Diagnostics.ProcessStartInfo |
| 0xA64 | 2660 | $startInfo.FileName = $exePath |
| 0xA8C | 2700 | if (-not [string]::IsNullOrWhiteSpace($args)) { $startInfo.Arguments = $args } |
| 0xAE4 | 2788 | $startInfo.UseShellExecute = $true |
| 0xB10 | 2832 | $proc = [System.Diagnostics.Process]::Start($startInfo) |
| 0xB51 | 2897 | if ($proc -ne $null) { |
| 0xB71 | 2929 | Write-Output "Flyby11 started (PID $($proc.Id))." |
| 0xBB0 | 2992 | # $proc.WaitForExit(); Write-Output "Flyby11 exited with code $($proc.ExitCode)." |
| 0xC0F | 3087 | } else { |
| 0xC21 | 3105 | throw "Process.Start returned null." |
| 0xC53 | 3155 | } |
| 0xC5E | 3166 | } catch { |
| 0xC6D | 3181 | throw "Failed to start Flyby11: $($_.Exception.Message)" |
| 0xCBB | 3259 | function Open-Folder { |
| 0xCD3 | 3283 | param([string]$path) |
| 0xCED | 3309 | if (-not (Test-Path $path)) { throw "Path not found: $path" } |
| 0xD30 | 3376 | Start-Process explorer.exe -ArgumentList ("/select,`"$path`"") |
| 0xD79 | 3449 | function Open-Url { |
| 0xD8E | 3470 | param([string]$url) |
| 0xDA7 | 3495 | if ([string]::IsNullOrWhiteSpace($url)) { throw "No URL specified." } |
| 0xDF2 | 3570 | try { Start-Process $url } catch { throw "Failed to open URL: $($_.Exception.Message)" } |
| 0xE57 | 3671 | function Show-Help { |
| 0xE6D | 3693 | Write-Output "Flyby11 Upgrade Assistant |
| 0xE9C | 3740 | How-to" |
| 0xEA6 | 3750 | Write-Output "------------------------------------------------------------" |
| 0xEF7 | 3831 | Write-Output "1) Download source" |
| 0xF1E | 3870 | Write-Output " - Choose a download source in the assistant (Microsoft ISO, Media Creation Tool, or local ISO)." |
| 0xF95 | 3989 | Write-Output " - We recommend using the Media Creation Tool if you want to keep apps and settings." |
| 0x1000 | 4096 | Write-Output "" |
| 0x1015 | 4117 | Write-Output "2) Prepare the ISO" |
| 0x103C | 4156 | Write-Output " - If you used the Media Creation Tool: create the ISO and save it locally." |
| 0x109E | 4254 | Write-Output " - If you downloaded an official Microsoft ISO, keep note where it is saved." |
| 0x1101 | 4353 | Write-Output "" |
| 0x1116 | 4374 | Write-Output "3) Apply the patch (Patch Action)" |
| 0x114C | 4428 | Write-Output " - Drag & drop the downloaded ISO into the dashed 'Patch Action' box in the assistant" |
| 0x11B8 | 4536 | Write-Output " (or click the box to select the ISO from disk)." |
| 0x1201 | 4609 | Write-Output " - Follow the on-screen assistant steps to run the autopilot/patch process." |
| 0x1263 | 4707 | Write-Output " - The bypass will be applied automatically during the upgrade process." |
| 0x12C1 | 4801 | Write-Output "" |
| 0x12D6 | 4822 | Write-Output "4) Advanced Options" |
| 0x12FE | 4862 | Write-Output " - Use the 'Advanced Options' dropdown to enable extra behaviors." |
| 0x1356 | 4950 | Write-Output " - Example: Join the ESU (Extended Security Updates) program for Windows 10" |
| 0x13B8 | 5048 | Write-Output " (only use if you have the proper entitlement/licensing)." |
| 0x140A | 5130 | Write-Output "" |
| 0x141F | 5151 | Write-Output "5) Notes & Tips" |
| 0x1443 | 5187 | Write-Output " - Run this helper as Administrator when requested (UAC may appear)." |
| 0x149E | 5278 | Write-Output " - Make a backup or system image before major upgrades if possible." |
| 0x14F8 | 5368 | Write-Output " - If you want to keep apps & settings, prefer the Media Creation Tool ISO." |
| 0x155A | 5466 | Write-Output " - If something fails, use 'Open exe folder' to confirm Flyby11.exe is present." |
| 0x15C0 | 5568 | Write-Output "" |
| 0x15D5 | 5589 | Write-Output "6) Help & Releases" |
| 0x15FC | 5628 | Write-Output " - Use 'Open Releases page' to download the latest Flyby11 helper manually." |
| 0x165E | 5726 | Write-Output " - If you need step-by-step screenshots or a guide, check the repository page." |
| 0x16C3 | 5827 | Write-Output "------------------------------------------------------------" |
| 0x1717 | 5911 | # -------------------------- |
| 0x1735 | 5941 | # Main |
| 0x173D | 5949 | # -------------------------- |
| 0x175B | 5979 | switch ($Option) { |
| 0x176F | 5999 | 'Run Flyby11' { |
| 0x1784 | 6020 | $exe = Resolve-FlybyExe |
| 0x17A5 | 6053 | if (-not $exe) { throw "Flyby11.exe not found. Place the exe in the scripts folder." } |
| 0x1805 | 6149 | Start-Flyby -exePath $exe -args $ArgsText |
| 0x1838 | 6200 | break |
| 0x1850 | 6224 | 'Check version' { |
| 0x1867 | 6247 | $exe = Resolve-FlybyExe |
| 0x1888 | 6280 | if (-not $exe) { Write-Output "Flyby11.exe not found." ; break } |
| 0x18D2 | 6354 | $ver = Get-FileVersion -path $exe |
| 0x18FD | 6397 | Write-Output "Flyby11 found: $exe" |
| 0x1929 | 6441 | Write-Output "File version: $ver" |
| 0x1954 | 6484 | break |
| 0x196C | 6508 | 'Open exe folder' { |
| 0x1985 | 6533 | $exe = Resolve-FlybyExe |
| 0x19A6 | 6566 | if (-not $exe) { Write-Output "Flyby11.exe not found." ; break } |
| 0x19F0 | 6640 | $folder = Split-Path -Parent $exe |
| 0x1A1B | 6683 | Write-Output "Opening folder: $folder" |
| 0x1A4B | 6731 | Start-Process explorer.exe -ArgumentList $folder |
| 0x1A85 | 6789 | break |
| 0x1A9D | 6813 | 'Open Releases page' { |
| 0x1AB9 | 6841 | $url = 'https://github.com/builtbybel/FlyOOBE/releases' |
| 0x1AFA | 6906 | Write-Output "Opening Releases page: $url" |
| 0x1B2E | 6958 | Open-Url -url $url |
| 0x1B4A | 6986 | break |
| 0x1B62 | 7010 | 'Help' { |
| 0x1B70 | 7024 | Show-Help |
| 0x1B83 | 7043 | break |
| 0x1B9B | 7067 | default { |
| 0x1BAA | 7082 | # If user provided only raw args (no option) -> treat as run |
| 0x1BF0 | 7152 | if (-not [string]::IsNullOrWhiteSpace($ArgsText) -and [string]::IsNullOrWhiteSpace($Option)) { |
| 0x1C58 | 7256 | $exe = Resolve-FlybyExe |
| 0x1C7D | 7293 | if (-not $exe) { throw "Flyby11.exe not found. Place the exe in the scripts folder." } |
| 0x1CE1 | 7393 | Start-Flyby -exePath $exe -args $ArgsText |
| 0x1D18 | 7448 | break |
| 0x1D2B | 7467 | } |
| 0x1D38 | 7480 | throw "Unknown option. Use 'Help' for usage." |