123 lines
4.0 KiB
Markdown
123 lines
4.0 KiB
Markdown
# iSphere Live Probe Recorder
|
|
|
|
Date: 2026-07-10
|
|
Purpose: collect read-only runtime evidence from a machine where iSphere / IMPlatformClient can actually log in.
|
|
|
|
## Why this recorder exists
|
|
|
|
The current development machine cannot log in because the current network has no reachable server. Simulating login would only prove window rendering and would not prove the real logged-in runtime state required by the B-route sidecar connector.
|
|
|
|
Therefore the selected path is to carry a dedicated recorder executable to a working environment, run it after manual login, and bring the generated JSON evidence back.
|
|
|
|
## Built artifact
|
|
|
|
Package directory:
|
|
|
|
```text
|
|
runs/live-probe-recorder-package/
|
|
```
|
|
|
|
Executable:
|
|
|
|
```text
|
|
runs/live-probe-recorder-package/ISphereLiveProbeRecorder.exe
|
|
```
|
|
|
|
Zip package:
|
|
|
|
```text
|
|
runs/live-probe-recorder-package.zip
|
|
```
|
|
|
|
Compatibility layout:
|
|
|
|
```text
|
|
ISphereLiveProbeRecorder.exe # top-level x86 build, use this first
|
|
variants/ISphereLiveProbeRecorder-x86.exe # same x86 fallback copy
|
|
variants/ISphereLiveProbeRecorder-anycpu.exe # AnyCPU fallback
|
|
variants/ISphereLiveProbeRecorder-x64.exe # x64 fallback
|
|
check-and-run.bat # prints environment and tries the top-level recorder
|
|
run-recorder.bat # runs the top-level recorder
|
|
run-x86-fallback.bat # runs the x86 fallback
|
|
```
|
|
|
|
The top-level executable is intentionally x86 because it can start on both 32-bit and 64-bit Windows and is more compatible with older enterprise desktop clients.
|
|
|
|
The package is generated by:
|
|
|
|
```powershell
|
|
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\package-live-probe-recorder.ps1
|
|
```
|
|
|
|
## Operator steps
|
|
|
|
1. Copy `runs/live-probe-recorder-package.zip` to the machine/network where iSphere can connect to its server.
|
|
2. Extract the zip.
|
|
3. Manually open and log in to iSphere / `IMPlatformClient.exe`.
|
|
4. Manually open one direct-contact chat window and one group-chat window if possible. Keep the editor/send/attachment area visible, but do not send anything.
|
|
5. Keep the client window open.
|
|
6. Double-click `ISphereLiveProbeRecorder.exe`.
|
|
7. The program writes a folder under:
|
|
|
|
```text
|
|
probe-output/isphere-live-probe-<timestamp>/
|
|
```
|
|
|
|
8. Compress that generated folder and return it.
|
|
|
|
If Windows shows `System.BadImageFormatException`, delete the extracted folder, re-extract the latest zip package, and run `check-and-run.bat`. The previous package used an AnyCPU top-level executable; the current package uses x86 at the top level and keeps other builds under `variants/`.
|
|
|
|
## What it records
|
|
|
|
The recorder writes:
|
|
|
|
```text
|
|
manifest.json
|
|
probe_client_runtime.json
|
|
process_details.json
|
|
network_inventory.json
|
|
filesystem_inventory.json
|
|
services_registry_shortcuts.json
|
|
scan_windows.json
|
|
uia_summary.json
|
|
uia/*.json
|
|
feasibility_summary.json
|
|
README.txt
|
|
NEXT_STEP.txt
|
|
```
|
|
|
|
The important evidence is:
|
|
|
|
- target process PID/name/title/path;
|
|
- process bitness;
|
|
- loaded module list;
|
|
- command-line metadata with basic secret redaction;
|
|
- key module presence, including `smack.dll`, `IMPP.Interface.dll`, `IMPP.ServiceBase.dll`, `IMPP.Service.dll`, `TcpFileTransfer.dll`;
|
|
- visible window metadata;
|
|
- UIA tree for target windows, useful if route A UI/RPA is needed later.
|
|
- install/cache/config/log/database candidate metadata;
|
|
- version and SHA256 for important binaries;
|
|
- redacted text samples for small config/log files;
|
|
- uninstall registry entries;
|
|
- related services and shortcuts;
|
|
- target-process TCP connections;
|
|
- related named pipes.
|
|
|
|
## What it does not do
|
|
|
|
The recorder does not:
|
|
|
|
- send messages;
|
|
- send or upload files;
|
|
- click UI;
|
|
- type text;
|
|
- inject hooks;
|
|
- attach instrumentation;
|
|
- modify client files or data.
|
|
|
|
## Decision after returned evidence
|
|
|
|
If `probe_client_runtime.json` proves the loaded modules and bitness match the static evidence, continue with B-route sidecar design.
|
|
|
|
If the running client cannot be inspected, or the expected modules are absent, switch to the A-route constrained UI/RPA fallback.
|