libObfuscate 1.00
ISO C / open-source / system independent
Modern 256bit cryptography / scrambling / multi-layered obfuscation
references and links (*)
- CSPRNG - Based on AES:
Seed
Functions
- Hashing - 512bit:
Grostl
Keccak
SHA2
Skein
- Cryptography - 256bit - ECB - 128bit block:
AES
Anubis
Camellia
Cast-256
Clefia
FROG
Hierocrypt3
Idea-NXT
MARS
RC6
Safer+
SC2000
Serpent
Speed
Twofish
Unicorn-A
Wrapper
- Multi-cryptography - 256 + 256bit - CBC - Segment
- Scrambling
- Multi-layered obfuscation
- Randomness:
ChiSquare deviation
White noise
- Utility:
CRC32
Hamming distance
Seed Functions
Grostl Keccak SHA2 Skein
AES Anubis Camellia Cast-256 Clefia FROG Hierocrypt3 Idea-NXT MARS RC6 Safer+ SC2000 Serpent Speed Twofish Unicorn-A Wrapper
|
(Windows) Linking:
Redistributing:
|
CSPRNG - Based on AES: Seed
Manual Seed : Seed = { Key , CTR } = Hash ( passw , nonce )
CSPRNG_DATA csprng;
|
typedef enum {
|
HW AutoSeed : Seed = { Key , CTR } = RaceCondition ( Shared values )
CSPRNG_DATA csprng;
|
Architecture![]() Enlarge |
User interaction callback
// progress callback
|
HW AutoSeed![]() Enlarge |
CSPRNG - Based on AES: Functions
Decrypt : buf [k * 16] = Multi-cipher CBC -1( buf ' [k * 16] )
BYTE bValue = CSPRNG_get_byte( &csprng );
|
User interaction callbacks
// progress callback
|
Hashing - 512bit: Grostl
Hashing : hash [64] = Grostl ( inBuf [len] )
GROSTL512_DATA grostl;
|
Hashing - 512bit: Keccak
Hashing : hash [64] = Keccak ( inBuf [len] )
KECCAK512_DATA keccak;
|
Hashing - 512bit: SHA2
Hashing : hash [64] = SHA2 ( inBuf [len] )
SHA512_DATA sha;
|
Hashing - 512bit: Skein
Hashing : hash [64] = Skein ( inBuf [len] )
SKEIN512_DATA skein;
|
Cryptography - 256bit - ECB - 128bit block: AES
Encrypt : outBuf [16] = AES ECB ( inBuf [16] )
RIJNDAEL_STATIC_DATA rijndael;
|
Decrypt : outBuf [16] = AES ECB -1( inBuf [16] )
RIJNDAEL_STATIC_DATA rijndael;
|
Cryptography - 256bit - ECB - 128bit block: Anubis
Encrypt : outBuf [16] = Anubis ECB ( inBuf [16] )
ANUBIS_STATIC_DATA anubis;
|
Decrypt : outBuf [16] = Anubis ECB -1( inBuf [16] )
ANUBIS_STATIC_DATA anubis;
|
Cryptography - 256bit - ECB - 128bit block: Camellia
Encrypt : outBuf [16] = Camellia ECB ( inBuf [16] )
CAMELLIA_STATIC_DATA camellia;
|
Decrypt : outBuf [16] = Camellia ECB -1( inBuf [16] )
CAMELLIA_STATIC_DATA camellia;
|
Cryptography - 256bit - ECB - 128bit block: Cast-256
Encrypt : outBuf [16] = Cast-256 ECB ( inBuf [16] )
CAST256_STATIC_DATA cast256;
|
Decrypt : outBuf [16] = Cast-256 ECB -1( inBuf [16] )
CAST256_STATIC_DATA cast256;
|
Cryptography - 256bit - ECB - 128bit block: Clefia
Encrypt : outBuf [16] = Clefia ECB ( inBuf [16] )
CLEFIA_STATIC_DATA clefia;
|
Decrypt : outBuf [16] = Clefia ECB -1( inBuf [16] )
CLEFIA_STATIC_DATA clefia;
|
Cryptography - 256bit - ECB - 128bit block: FROG
Encrypt : outBuf [16] = FROG ECB ( inBuf [16] )
FROG_STATIC_DATA frog;
|
Decrypt : outBuf [16] = FROG ECB -1( inBuf [16] )
FROG_STATIC_DATA frog;
|
Cryptography - 256bit - ECB - 128bit block: Hierocrypt3
Encrypt : outBuf [16] = Hierocrypt3 ECB ( inBuf [16] )
HIEROCRYPT3_STATIC_DATA hierocrypt3;
|
Decrypt : outBuf [16] = Hierocrypt3 ECB -1( inBuf [16] )
HIEROCRYPT3_STATIC_DATA hierocrypt3;
|
Cryptography - 256bit - ECB - 128bit block: Idea-NXT
Encrypt : outBuf [16] = Idea-NXT ECB ( inBuf [16] )
IDEANXT128_STATIC_DATA ideanxt;
|
Decrypt : outBuf [16] = Idea-NXT ECB -1( inBuf [16] )
IDEANXT128_STATIC_DATA ideanxt;
|
Cryptography - 256bit - ECB - 128bit block: MARS
Encrypt : outBuf [16] = MARS ECB ( inBuf [16] )
MARS_STATIC_DATA mars;
|
Decrypt : outBuf [16] = MARS ECB -1( inBuf [16] )
MARS_STATIC_DATA mars;
|
Cryptography - 256bit - ECB - 128bit block: RC6
Encrypt : outBuf [16] = RC6 ECB ( inBuf [16] )
RC6_STATIC_DATA rc6;
|
Decrypt : outBuf [16] = RC6 ECB -1( inBuf [16] )
RC6_STATIC_DATA rc6;
|
Cryptography - 256bit - ECB - 128bit block: Safer+
Encrypt : outBuf [16] = Safer+ ECB ( inBuf [16] )
SAFERP_STATIC_DATA saferp;
|
Decrypt : outBuf [16] = Safer+ ECB -1( inBuf [16] )
SAFERP_STATIC_DATA saferp;
|
Cryptography - 256bit - ECB - 128bit block: SC2000
Encrypt : outBuf [16] = SC2000 ECB ( inBuf [16] )
SC2000_STATIC_DATA sc2000;
|
Decrypt : outBuf [16] = SC2000 ECB -1( inBuf [16] )
SC2000_STATIC_DATA sc2000;
|
Cryptography - 256bit - ECB - 128bit block: Serpent
Encrypt : outBuf [16] = Serpent ECB ( inBuf [16] )
SERPENT_STATIC_DATA serpent;
|
Decrypt : outBuf [16] = Serpent ECB -1( inBuf [16] )
SERPENT_STATIC_DATA serpent;
|
Cryptography - 256bit - ECB - 128bit block: Speed
Encrypt : outBuf [16] = Speed ECB ( inBuf [16] )
SPEED_STATIC_DATA speed;
|
Decrypt : outBuf [16] = Speed ECB -1( inBuf [16] )
SPEED_STATIC_DATA speed;
|
Cryptography - 256bit - ECB - 128bit block: Twofish
Encrypt : outBuf [16] = Twofish ECB ( inBuf [16] )
TWOFISH_STATIC_DATA twofish;
|
Decrypt : outBuf [16] = Twofish ECB -1( inBuf [16] )
TWOFISH_STATIC_DATA twofish;
|
Cryptography - 256bit - ECB - 128bit block: Unicorn-A
Encrypt : outBuf [16] = Unicorn-A ECB ( inBuf [16] )
UNICORNA_STATIC_DATA unicorn;
|
Decrypt : outBuf [16] = Unicorn-A ECB -1( inBuf [16] )
UNICORNA_STATIC_DATA unicorn;
|
Cryptography - 256bit - ECB - 128bit block: Wrapper
Encrypt : outBuf [16] = Cipher ECB ( inBuf [16] )
MULTI_STATIC_DATA multi;
|
typedef enum {
|
Decrypt : outBuf [16] = Cipher ECB -1( inBuf [16] )
MULTI_STATIC_DATA multi;
|
Multi-cryptography - 256 + 256bit - CBC - Segment
Encrypt : buf ' [k * 16] = Multi-cipher CBC ( buf [k * 16] )
MULTI_DATA multi;
|
Architecture![]() Enlarge |
Decrypt : buf [k * 16] = Multi-cipher CBC -1( buf ' [k * 16] )
MULTI_DATA multi;
|
Cipher selection![]() Enlarge |
User interaction callbacks
// progress callback
|
Example![]() Enlarge |




English Manual
Source & redistributable (.dll)



