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.
[!IMPORTANT] Archived because Ciphey is already way better for this…
§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 - Base Metadata. It contains the name, short name, base, and padding of a base.
- Crack
Data - Crack data.
Enums§
- Base
Error - Errors that can occur while getting a base.
- Decode
Error - Errors that can occur while decoding.
Traits§
- Base
- A base encoding/decoding module.
Functions§
- crack
- Cracks the given ciphertext using the specified bases and return the result as a tree of steps.
- crack_
round - Iterates over the given bases and generates a tree of all possible combinations of good bases.
- decode
- Decodes the given ciphertext using the specified bases and return the result as a vector of steps. E.g. (ciphertext, step1, step2, …, plaintext)
- encode
- Encodes the given plaintext using the specified bases and return the result as a vector of steps. E.g. (plaintext, step1, step2, …, ciphertext)
- get_
base_ from_ name - Get a base from its name or short name.
- get_
bases - Get a list of all defined bases.
- get_
bases_ from_ names - Get a list of bases from a list of names or short names.
- get_
bases_ names - Get a list of all defined bases’ names and short names.
- get_
recipe - Returns the base sequence of the given node including itself, until the root node.