MCPcopy Create free account
hub / github.com/andrivet/ADVobfuscator / blocks_obfuscation

Function blocks_obfuscation

Examples/example/main.cpp:78–119  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

76}
77
78void blocks_obfuscation() {
79 static constexpr auto rcon0 = ObfuscatedBytes{"01 02 04 08 10 20 40 80 1b 36"};
80 describe(rcon0);
81 std::cout << hexdump32(rcon0.decode()) << '\n';
82
83 static constexpr auto rcon = "01 02 04 08 10 20 40 80 1b 36"_obf_bytes;
84 describe(rcon);
85 std::cout << hexdump32(rcon.decode()) << '\n';
86
87 for(std::size_t i = 0; i < rcon.size(); ++i)
88 std::cout << std::hex << std::setw(2) << (int)rcon[i] << ' ';
89 std::cout << std::dec << '\n';
90
91 // Note that it is a static constexpr
92 static constexpr ObfuscatedBytes<16 * 3> sbox[16] = {
93 "63 7C 77 7B F2 6B 6F C5 30 01 67 2B FE D7 AB 76"_obf_bytes,
94 "CA 82 C9 7D FA 59 47 F0 AD D4 A2 AF 9C A4 72 C0"_obf_bytes,
95 "B7 FD 93 26 36 3F F7 CC 34 A5 E5 F1 71 D8 31 15"_obf_bytes,
96 "04 C7 23 C3 18 96 05 9A 07 12 80 E2 EB 27 B2 75"_obf_bytes,
97 "09 83 2C 1A 1B 6E 5A A0 52 3B D6 B3 29 E3 2F 84"_obf_bytes,
98 "53 D1 00 ED 20 FC B1 5B 6A CB BE 39 4A 4C 58 CF"_obf_bytes,
99 "D0 EF AA FB 43 4D 33 85 45 F9 02 7F 50 3C 9F A8"_obf_bytes,
100 "51 A3 40 8F 92 9D 38 F5 BC B6 DA 21 10 FF F3 D2"_obf_bytes,
101 "CD 0C 13 EC 5F 97 44 17 C4 A7 7E 3D 64 5D 19 73"_obf_bytes,
102 "60 81 4F DC 22 2A 90 88 46 EE B8 14 DE 5E 0B DB"_obf_bytes,
103 "E0 32 3A 0A 49 06 24 5C C2 D3 AC 62 91 95 E4 79"_obf_bytes,
104 "E7 C8 37 6D 8D D5 4E A9 6C 56 F4 EA 65 7A AE 08"_obf_bytes,
105 "BA 78 25 2E 1C A6 B4 C6 E8 DD 74 1F 4B BD 8B 8A"_obf_bytes,
106 "70 3E B5 66 48 03 F6 0E 61 35 57 B9 86 C1 1D 9E"_obf_bytes,
107 "E1 F8 98 11 69 D9 8E 94 9B 1E 87 E9 CE 55 28 DF"_obf_bytes,
108 "8C A1 89 0D BF E6 42 68 41 99 2D 0F B0 54 BB 16"_obf_bytes};
109
110 for(const auto &i : sbox)
111 std::cout << hexdump16(i.raw(), 16);
112
113 for(const auto &i : sbox) {
114 // This is not permitted since data() modifies the object (non-const)
115 // std::cout << hexdump32(i.data(), 16);
116 // So use decode() instead:
117 std::cout << hexdump16(i.decode());
118 }
119}
120
121void certificate_obfuscation() {
122 auto s1 = R"(-----BEGIN CERTIFICATE-----

Callers 1

mainFunction · 0.70

Calls 4

describeFunction · 0.85
decodeMethod · 0.45
sizeMethod · 0.45
rawMethod · 0.45

Tested by

no test coverage detected