49 lines
1.3 KiB
Markdown
49 lines
1.3 KiB
Markdown
# tsclientlib Query Spike
|
|
|
|
Chanora proof-of-concept. **Not product code.**
|
|
|
|
## Purpose
|
|
|
|
Prove what user/profile data can be observed from a normal TeamSpeak client
|
|
connection to `kr.teamspeak.app` without ServerQuery credentials.
|
|
|
|
## What it does
|
|
|
|
1. Connects to a TeamSpeak server with `tsclientlib`.
|
|
2. Subscribes to the server tree and pumps events so the live client/channel
|
|
snapshot is populated.
|
|
3. Prints the online client table.
|
|
4. Resolves a target client by nickname, UID, DBID, or CLID.
|
|
5. Requests richer client data with `clientgetvariables` and connection stats
|
|
with `getconnectioninfo`, then reads the populated values back out of the
|
|
live `tsclientlib` connection state.
|
|
6. Falls back gracefully when the server denies permission-gated lookups such
|
|
as `clientdbinfo`.
|
|
|
|
## Run
|
|
|
|
```bash
|
|
cargo run --offline -- \
|
|
--address kr.teamspeak.app \
|
|
--nickname ChanoraPoC-Inspector \
|
|
--target-nickname EdisonJwa
|
|
```
|
|
|
|
Useful flags:
|
|
|
|
- `--target-nickname <name>`
|
|
- `--target-uid <uid>`
|
|
- `--target-dbid <dbid>`
|
|
- `--target-clid <clid>`
|
|
- `--identity <identity-string>`
|
|
|
|
## Scope boundaries
|
|
|
|
- No ServerQuery login or administrative credentials.
|
|
- No attempt to bypass permission-gated data.
|
|
- No persistence of the generated identity.
|
|
|
|
## Verification
|
|
|
|
See `VERIFICATION.md`.
|