3.4 KiB
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 RequestedThemenot available on Window in WinUI 3NavigationView.PaneBackgrounddoesn't exist in WinUI 3Coloris 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)