|
Magic Codes is a program that allows you to play around with
coded messages. At it's very basics, without any sort of
cryptographic or analytical plugins, it can help you perform
simple conversions between data formats like text, binary,
and hex. Add into that a plugin architecture and you can
perform limitless operations on any of these data types.
Out of the box, it ships with a handful of plugins. With
the power of Java interfaces, it takes mere minutes to add
new functionality.
Please
take a look at the
demonstration
for screenshots and examples.
Magic Codes was designed with two types of people in mind:
The intelligent nonprogrammer: There is a class of people
who understand the concepts of secret codes and cryptography, but
may not have a firm grasp of the underlying details and
certainly do not know programming. This
person may not know which tools to use or where to find them,
or may have a half-dozen different online tools bookmarked.
Often, this person might understand what a base conversion
from hex to ASCII-text is but might not know how to do so
by hand. This type of person would use Magic Codes as
a "black box"--giving it inputs and receiving outputs without
necessarily understanding the gritty details of what is
going on behind the buttons and text fields.
The novice or lazy programmer: This is a class of people
who understand the concepts of codes and cryptography and
have some programming experience--perhaps only a little,
perhaps a lot. This class of person either does not know
how to make a full-fledged application or has done it so
many times in the past that it becomes annoying to do so yet again.
Either way, this class of user knows enough to write plugins,
allowing Magic Codes to handle all of the user interface,
error checking, input, output, and hex/binary/ASCII
translations. This class of user would write new plugins,
perhaps by copying an existing plugin and simply changing
a single function.
Out of the box, Magic Codes ships with the following plugins:
Name
|
Description
|
Encryption/Decription Plugins
|
No-Op
|
This plugin does absolutely nothing. It performs no
operation upon the input data. How could this possibly be
useful? If you have the hex digits "48656C6C6F" and want
to, say, convert them to ASCII text without having
a plugin change anything, then this is the plugin to use.
|
XOR
|
This plugin does XOR "encryption/decryption" on the
input data.
|
RotN
|
This plugin performs simple rotations (from 1 to 26)
on the input data. If you are dealing with a
simple
Caesar cipher, this plugin will make the plaintext clear.
|
VigenereDecrypt
|
This plugin decrypts Vigenere ciphers. These are
simple polyalphabetic substitution codes. You will need
the correct key (or need to guess it).
|
VigenereCrypt
|
This plugin encrypts Vigenere ciphers. These are
simple polyalphabetic substitution codes.
|
MD5
|
This plugin will calculate the MD5 checksum of the input
data. While this is no substitute for a brute-force tool
like
John The Ripper
,
it makes spot-checking specific words or phrases easy.
|
BASE-64 Encoder
|
This plugin will convert binary input data into text-save
BASE-64 output.
|
BASE-64 Decoder
|
This plugin will convert text-safe input data into
binary output data.
|
TexelCode
|
This decrypts a variation of XOR code used during
the MU Alternate Reality Game. The particular encoding
algorithm is a chaining XOR. The first letter of the
cyphertext is the same as plaintext. That letter is
used as the key for the next ciphertext letter. The
decryption of THAT letter is then the key for the
following, etc. plainLetter(n) = cipherLetter(n)
XOR plainLetter(n-1). This is not very useful in a
nd of
itself, but is here for historic purposes.
|
Informational Plugins
|
Analyze Frequency
|
This plugin analyzes letter frequencies on the input
data. If the input data is a simple alphabetic substitution
then certain coded letters will appear more often than
others. This corresponds with the English language in which
"E" appears most frequently, followed by "T," then "A."
It should be noted that if the letter frequency detected
matches that of English, you are likely not dealing with
a substitution cipher, but a letter rearrangement.
|
XOR:Analysis
|
This plugin calculates the Index of Coincidence on
different key lengths of your input. If you believe
the input to be an XOR code, but do not know the
plaintext or key, this plugin will help you determine
whether it is XOR (and if so, the probable key length).
|
|