-
Notifications
You must be signed in to change notification settings - Fork 19
Open
Description
There are some issues with protocol encoding so I took the liberty of reverse engineer the protocol for myself. It appears that the binary sequence processing is the issue.
Should you choose to fix the issue in your implementation; I ask that you include:
Reverse engineered by sh1ftchg.
Anyway, here are the details of the protocol.
/*
===================================================
Reverse Engineered Quest Protocol Information
===================================================
Usage constraints.
Reverse engineered by sh1ftchg. This line must be present in any implementation.
---------------------------------------------------
Notes:
---------------------------------------------------
JHA identifies this as the "Windows" Protocol.
---------------------------------------------------
Protocol:
--------------------------------------------------
The messages are by default windows-1252 encoded.
The protocol is a child variation of pseudo-terminal
protocols SSH and TELNET. IE, SSH ANSI escape being 0x1B.
Quantifiers: (Similar to regex!)
() = Group.
[] = Class.
| = Or.
? = Once or not at all.
* = One or more.
Generic Types:
WIN = an 8 bit byte that is windows-1252 encoded
RAW = an 8 bit byte that is NOT encoded or raw
DEC = an 8 bit byte windows-1252 encoded digit representing an encoded number value
Constants: (Inherited from parent protocols.)
ALERT = 0x07
ESCAPE = 0x1B
Message Data Constants:
MD_TLD = 0x7E
MD_EQU = 0x3D
Message Constants:
MSG_ESC = 0xFB
MSG_END = 0xFC
MSG_BIN = 0xFD
MSG_CMD = 0xFE
Message payloads have the same general format:
TAG = The tag identifying the message controller. IE. "File", "Line" etc.
ENTRY* = Optional. A list of entries, tilde (~) delineated.
NAME(=VALUE)? = Optional. A "name=value" -or- value-less "name" entry pair.
BINARY? = Optional. Data with escape sequences for special cases.
Encoding:
ESCAPE MSG_CMD = From server to client. Begin an encoded message.
ALERT DEC+ '\r' = From client to server. Begin an encoded message. DEC+ is the string value of the
following message's length.
WIN* MSG_END? = TAG and ENTRY's if applicable and optionally a MSG_END to annotate the end of a
message, for example if the message lacks binary data.
MSG_BIN = Start a BINARY data sequence, no more WIN encoding possible in this message.
RAW = Default sequence.
MSG_CMD MSG_END = This sequence is the only way to exit a binary sequence.
MSG_CMD RAW = This allows the encoding of a characters from "BadCharList".
MSG_ESC DEC DEC DEC = String of 3 decimal characters representing a byte value in the CP1252 charset.
*/I will not be creating a fix/pull request because I've since abandoned RepDev altogether. I've written my own utility that I am unwilling to share which uses JavaFX. The comment pasted above is from this utility.
Metadata
Metadata
Assignees
Labels
No labels