Simon Jackson
|
666d8cec15
|
feat: Phase 2 - RDPWInst C# console installer
Complete translation of src-installer/RDPWInst.dpr (1,464 lines) to C#:
Program.cs — entry point
- Banner + usage text matching Delphi originals
- Arg parsing: -l / -i [-s] [-o] / -u [-k] / -w / -r
- OS version and architecture guards
- Dispatches to InstallerEngine
InstallerEngine.cs — all installer logic
- CheckInstall() registry TermService validation
- CheckTermsrvProcess() EnumServicesStatusEx loop + auto-start
- CheckTermsrvDependencies() CertPropSvc / SessionEnv enable
- CheckTermsrvVersion() file version + support-level classification
- TSConfigRegistry() fDenyTSConnections, EnableConcurrentSessions,
AllowMultipleTSSessions, AddIns sub-keys
- TSConfigFirewall() netsh advfirewall add / delete rule
- ExtractFiles() install-dir creation, ACLs, INI, rdpw32/64,
rdpclip, rfxvmt optional helpers
- SetWrapperDll() REG_EXPAND_SZ write + Vista reg.exe workaround
- ResetServiceDll() restore termsrv.dll on uninstall
- DeleteFiles() remove rdpwrap.ini + DLL + folder
- TryAutoGenerateOffsets() download OffsetFinder + Zydis, run, clean up
- CheckUpdate() date-compare INI, kill/restart svc, write new INI
- Install() / Uninstall() / Update() / Restart() orchestration
app.manifest — requireAdministrator UAC elevation
RDPWInst.csproj — ApplicationManifest + conditional EmbeddedResource items
Resources/README.md — documents expected binary payload placement
|
1 month ago |
Simon Jackson
|
ae426da271
|
feat: Phase 1 - C# migration scaffold (RDPWrap.Common shared library)
Add src-csharp/ solution structure for the Delphi-to-C# migration:
Solution & projects:
- RDPWrap.sln (VS 2022, x86/x64 configurations)
- Directory.Build.props (net8.0-windows, shared TFM/platform settings)
- RDPWrap.Common.csproj - shared class library
- RDPWInst.csproj - console installer (stub)
- RDPConf.csproj - WinForms config UI (stub)
- RDPCheck.csproj - WinForms RDP tester (stub)
RDPWrap.Common helpers (all translated from Delphi source):
- NativeMethods.cs - all P/Invoke: kernel32, advapi32, winsta.dll
- ArchHelper.cs - arch detection + WOW64 redirection
- RegistryHelper.cs - HKLM typed read/write with WOW64 view support
- ServiceHelper.cs - SCM wrappers (start-type, start, state, enum)
- FileVersionHelper.cs - file version reading via BCL FileVersionInfo
- ProcessHelper.cs - ExecWait (hidden) + KillProcess
- HttpHelper.cs - HttpClient replacing WinInet (sync + async)
- ResourceHelper.cs - embedded manifest resource extract/read
- IniHelper.cs - INI section presence check + support level
- SecurityHelper.cs - SID/ACL (GrantSidFullAccess) + token privileges
Also adds TODO.md tracking the full 44-item migration plan.
|
1 month ago |