Skip to content

Protocol Error #8

@sh1ftchg

Description

@sh1ftchg

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

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions