# Packages

No description provided by the author
No description provided by the author
No description provided by the author

# README

Encoders

General purpose data encoders, these are the server-side versions. Due to the build process of implants it's tricky for server/encoders and sliver/encoders to share the same code, however it's imperative these two packages are interoperable, though some encode/decode operations may only be used on one side (e.g., the implant can decode English but not encode to it). This is because certain encoders (like the English encoder) may require external files that we don't want to bundle with the implant.

There are two interfaces, both can encode arbitrary binary data but the outputs differ:

  • BinaryEncoder - Encodes binary data and outputs other binary data formats (e.g., encoding data into a PNGs/images)
  • ASCIIEncoder - Encode/decode binary data and only outputs valid ASCII (e.g., base64 or english text)

Encoders

Base64

Encodes data using base64 encoding with a custom alphabet so that it's not interoperable with standard Base64 encoding.

Hex

Encodes data to ASCII/hex

English

Encodes arbitrary binary data into English text, this requires a dictionary file when encoding (one is provided in assets/). This is designed to be an inefficient encoder but the amount of inefficiency can be adjusted based off of the length of the words in the dictionary used during the encoding process.