reverse-skills-max: initial public release (restored, redacted, hardened)
This commit is contained in:
73
our-skills/vibeproxy-reverse-pipeline/SKILL.md
Normal file
73
our-skills/vibeproxy-reverse-pipeline/SKILL.md
Normal file
@@ -0,0 +1,73 @@
|
||||
---
|
||||
name: vibeproxy-reverse-pipeline
|
||||
description: "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
|
||||
```bash
|
||||
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
|
||||
```bash
|
||||
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
|
||||
```powershell
|
||||
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
|
||||
```powershell
|
||||
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)
|
||||
Reference in New Issue
Block a user