Crate basecracker
source ·Expand description
BaseCracker
BaseCracker is a tool to encode, decode and crack encoded data. It can be really useful to crack some random encoded strings in CTFs.
Installation
From crates.io:
cargo install basecracker
Current supported encodings
- base2 / binary (padded by 8)
- base10 / decimal
- hexadecimal
- base32 (RFC4648)
- base36
- base58
- base62
- base64
- base85
Options
Encode, Decode and Crack encoded data, useful to crack some random encoded strings in CTFs.
Usage: basecracker [OPTIONS] <COMMAND>
Commands:
encode Encode given plaintext/file using the specified bases
decode Decode given cipher/file using the specified bases
crack Crack given cipher/file
help Print this message or the help of the given subcommand(s)
Options:
-q, --quiet
Quiet mode, don't print anything except results
-v, --verbose
Verbose mode
-m, --min-printable-percentage <MIN_PRINTABLE_PERCENTAGE>
Minimum printable percentage to consider a result valid [default: 0.9]
-n, --no-newline
Do not output the trailing newline
-h, --help
Print help
-V, --version
Print version
Example
$ basecracker encode "Awsome CTF tool" b64,b85,hex,b32,b62,b58
2eSHB3WFgFiySPWP47oyrMrT6Vb4WXTEv5ZyWdmWWJNJ4H65n2auRW4ZFutQPtXegrNimoCAeUfiQwMAnb4UYg6grcK2WUCTL9LquGa4564JBJK2jAbRfPVjKx9sCgUVdrsUfyMuMR6MipKYERRr
$ basecracker decode 2eSHB3WFgFiySPWP47oyrMrT6Vb4WXTEv5ZyWdmWWJNJ4H65n2auRW4ZFutQPtXegrNimoCAeUfiQwMAnb4UYg6grcK2WUCTL9LquGa4564JBJK2jAbRfPVjKx9sCgUVdrsUfyMuMR6MipKYERRr b64,b85,hex,b32,b62,b58 -r
Awsome CTF tool
$ basecracker crack 2eSHB3WFgFiySPWP47oyrMrT6Vb4WXTEv5ZyWdmWWJNJ4H65n2auRW4ZFutQPtXegrNimoCAeUfiQwMAnb4UYg6grcK2WUCTL9LquGa4564JBJK2jAbRfPVjKx9sCgUVdrsUfyMuMR6MipKYERRr
Recipe: base58,base62,base32,hex,base85,base64
Awsome CTF tool
Verbose mode
Useful if you want to see the steps of encoding/decoding/cracking
$ basecracker -v crack 2eSHB3WFgFiySPWP47oyrMrT6Vb4WXTEv5ZyWdmWWJNJ4H65n2auRW4ZFutQPtXegrNimoCAeUfiQwMAnb4UYg6grcK2WUCTL9LquGa4564JBJK2jAbRf
PVjKx9sCgUVdrsUfyMuMR6MipKYERRr
Recipe: base58,base62,base32,hex,base85,base64
Applying base58: 9Y91a8AfMC1fYZFb6THWx0VBVu1R6BPhFsVhmAksMcKNLIibCXXnDGACS9woBiiuUhmwYgcEHrO4ZjPlvMVUTBxuOkLovyLgGTL2MOCZml9y
Applying base62: GUYTIMZUMQ2TMNZQGU3DMYZXGA3TMNTGGRSTMYRXGY2TQNTGGUYTMNRVG43DINTCGU3DMYZXGA3WEMRV
Applying base32: 51434d5670566c70766f4e6b76586f516657646b566c707b25
Applying hex: QCMVpVlpvoNkvXoQfWdkVlp{%
Applying base85: QXdzb21lIENURiB0b29s
Applying base64: Awsome CTF tool
Awsome CTF tool
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Structs
- Base Metadata. It contains the name, short name, base, and padding of a base.
- Crack data.
Enums
- Errors that can occur while getting a base.
- Errors that can occur while decoding.
Traits
- A base encoding/decoding module.
Functions
- Cracks the given ciphertext using the specified bases and return the result as a tree of steps.
- Iterates over the given bases and generates a tree of all possible combinations of good bases.
- Decodes the given ciphertext using the specified bases and return the result as a vector of steps. E.g. (ciphertext, step1, step2, …, plaintext)
- Encodes the given plaintext using the specified bases and return the result as a vector of steps. E.g. (plaintext, step1, step2, …, ciphertext)
- Get a base from its name or short name.
- Get a list of all defined bases.
- Get a list of bases from a list of names or short names.
- Get a list of all defined bases’ names and short names.
- Returns the base sequence of the given node including itself, until the root node.
Type Definitions
- Crack node.
- Crack tree.