Skip to content

TheZoidMaster/CEE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CEE

This readme is modified from KEE and is temporary.

Future instructions will likely be in the CEE section of the KEE wiki.

Topics

  1. About
  2. Installation
  3. Usage

About

CEE is a KEE implementation with a few extra features. This includes modified source and key formats, as well as additional instructions.

All files encrypted with KEE can be decrypted with the correct CEE key, but the opposite is not true.

All credit for KEE and the KEE standard goes to Jae

Warning

At this time, CEE is more of a novelty than an actual file encryption program, and has not been thoroughly tested. Always ensure your files are safely backed up, or don't overwrite the input file.

I am not responsible for any lost data.

Installation

From the Releases

  1. Download the latest release of CEE for your operating system.

  2. (Optional) Rename the file to CEE (OSX & Linux) or CEE.exe (Windows)

  3. Done!

Note

CEE requires .NET >= 9

Usage

This section will explain every feature of CEE and CEED. If you want to skip to a specific part, look here!

Encrypting/Decrypting Files with a key

Let's say we have an example file, my_file.txt, and it contains the following content:

My day has been going great!

We can now encrypt our text file with a key called my_key.cee!

cee file my_file.txt my_key.cee [output_file.txt] [-d]

Note

Specifying an output is optional; however, if you choose not to, the input file will be overwritten.

Appending -d anywhere in the command will switch CEE into decryption mode, getting back the original file.


Writing your own keys

About CEED

CEED is the encryption language in which keys are written. It's a human-readable version of the .cee format, with some additional features. It compiles to .cee, which then can be used for encryption. CEED is similar to assembly, but there are differences that we'll talk about in a bit.

CEED Syntax

The syntax for CEED is quite basic, easy to learn, and easy to understand, even for beginner programmers.

Every line is formatted like a variation of the following syntax:

instruction <arguments>

Sometimes, there aren't any arguments required at all

instruction

Of course, you're also able to write comments.

# Here's a comment!
instruction # They also support being inline

Base Concepts

Whenever a byte exceeds 0xff, it loops back around to 0x00. The same applies in reverse.

CEED Instructions

  • LGD: Adds a linear gradient on top of the file, input 1 is the starting value, input 2 is the ending value.
  • GRD: Adds multiple linear gradients on top of the file, evenly spaced apart. This can have any number of inputs above 1.
  • ADD: Adds a number to every byte.
  • SUB: Subtracts a number from every byte.
  • LSH: Applies a left-shift to every byte.
  • RSH: Applies a right-shift to every byte.

CEED Arguments

Arguments in CEED are quite simple.

add 0xff
add ff

Both of these would add 255 to every byte in the file.

Aside from standard hex arguments, there are also special keywords that can be used. All of these have special behavior when the key is compiled.

  • RND: Turns into a random number.
    • Input is optional, specifies maximum value.
  • UTC: Turns into the current UTC hour
    • No input.
  • DEC: Allows decimal input.
    • Input is a decimal number.
  • BIN: Allows binary input.
    • Input is a binary number.

Warning

Since these get calculated during key compilation, they cannot be recovered via a decompile.

Decompiled keys that had special keywords will only contain the hex codes that they became.

Here's an example without input:

add rnd # This could be anything 0x00-0xff

And here's one with input:

add DEC(64) # Gets converted into 0x40

Compiling and decompiling

Once you're done writing your key, you can compile it with the following command:

cee compile my_key.ceed [cool_key.cee]

Note

Specifying an output is optional. If you choose not to, the output file will be named the same as the input, but with .cee as the file extension.

If you have a key with no source, you can also decompile it with this command:

cee decompile my_key.cee [cool_key.ceed]

Note

Specifying an output is optional. If you choose not to, the output file will be named the same as the input, but with .ceed as the file extension.

About

A standard-compliant* KEE alternative with extra instructions.

Topics

Resources

License

Stars

Watchers

Forks

Languages