Files
reverse-skills-max/our-skills/vibeproxy-reverse-pipeline/SKILL.md

3.4 KiB

name, description
name description
vibeproxy-reverse-pipeline Reverse engineer a WinUI 3 MSIX app: ILSpy decompile, self-contained publish, MSIX staging/sign/install, and design modification with pixel verification

VibeProxy Reverse Engineering Pipeline

Architecture

  • VibeProxy = WinUI 3 (.NET 8) MSIX app, C# code-behind + XAML (XBF v2.1 compiled)
  • VibeProxyServices.exe = pkg-compiled OmniRoute v3.8.50 (Node.js Next.js standalone)
  • VibeProxy launches VibeProxyServices.exe as child process on internal port (8316), proxies via external port (8317)
  • Backend API: /api/monitoring/health, /api/providers/{id}/login, /api/oauth/ — OmniRoute endpoints, NOT 9router
  • 9router = separate npm package (v0.5.50), installed by OmniRoute's service manager, NOT the same as OmniRoute

Steps

1. Decompile

ilspycmd -p --decompile-baml "C:\Program Files\WindowsApps\AtC.VibeProxy_3.7.2.0_x64__g8zz5t3ayajdt\VibeProxy.dll" -o VibeProxy_src2
  • Fix CS0136 duplicate variables, inline literals, LangVersion=preview in csproj
  • HintPaths to libs/ directory with 244 DLLs

2. Publish self-contained

dotnet publish VibeProxy.csproj -c Release -r win-x64 --self-contained true
  • Framework-dependent build fails in MSIX (no framework found)
  • Self-contained bundles .NET runtime in package

3. Stage MSIX

  • Copy publish output to staging dir
  • Overlay original resources.pri, Assets/, Watchers/, locale dirs, Microsoft.UI.Xaml/, native WinUI DLLs
  • EXCLUDE: AppxSignature.p7x, AppxBlockMap.xml, AppxMetadata/ from staging
  • Write AppxManifest.xml with new Identity (Name=AtC.VibeProxyRev, bumped Version, Publisher=CN=...)
  • Publisher MUST exactly match cert Subject

4. Sign and install

New-SelfSignedCertificate -Subject "CN=..." -KeyUsage DigitalSignature -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3","2.5.29.19={text}")
# Add to Trusted Root + Trusted People (LocalMachine)
makeappx pack /d staging /p output.msix /nv
signtool sign /fd SHA256 /a /f cert.pfx /p password output.msix
Add-AppxPackage -Path output.msix

5. Launch and verify

Start-Process explorer.exe -ArgumentList 'shell:AppsFolder\PackageFamilyName!App'
# Wait 8+ seconds, check PID path matches Rev package
# Verify via UI Automation (System.Windows.Automation) for text elements
# Verify via pixel sampling (System.Drawing.Bitmap.GetPixel) for color changes

6. Cleanup

  • Remove self-signed cert from LocalMachine\Root, TrustedPeople, CurrentUser\My
  • Delete PFX file
  • Installed MSIX continues to work without cert in store

Key gotchas

  • PowerShell $_ variables get stripped through bash inline — use .ps1 script files
  • RequestedTheme not available on Window in WinUI 3
  • NavigationView.PaneBackground doesn't exist in WinUI 3
  • Color is ambiguous between System.Drawing.Color and Windows.UI.Color — qualify as Windows.UI.Color
  • NavView.SelectedItem must be preserved when adding design changes
  • XBF v2.1 format not decompilable — XAML structure uses original resources.pri
  • ILSpy artifacts (Unknown result type, _003C compiler classes) in 61+ files — code compiles but WinRT projection incomplete

What's NOT reversible

  • XAML markup (24 XBF files) — format v2.1, node encoding unknown
  • ILSpy WinRT projection artifacts
  • Backend sourcemaps (production build, empty .js.map)
  • VibeProxy-specific OmniRoute delta (diff between git clone and extracted dist not proven)