Hikari_pe_x64 Link (720p 2K)
clang-cl.exe /O2 /GS- /c payload.c -mllvm -enable-pass-plugin=C:\Hikari\lib\hikari_pe_x64.dll -mllvm -sub -mllvm -bcf -mllvm -fla -mllvm -split Use lld-link.exe (or MSVC link.exe):
Example full obfuscation:
__attribute__((annotate("sub"))) __attribute__((annotate("fla"))) void critical_function() // heavily obfuscated hikari_pe_x64
Download prebuilt hikari_pe_x64.dll from: github.com/HikariObfuscator/Hikari/releases (look for Hikari-LLVM15.0-windows-x64.zip ) Extract the zip to C:\Hikari\ : clang-cl
loc_obf_1: mov eax, switch_var cmp eax, 0x1 -> jmp loc_realblock1 cmp eax, 0x2 -> jmp loc_realblock2 ... If prebuilt plugin fails: switch_var cmp eax
clang-cl.exe /O2 /GS- /c source.c ^ -mllvm -enable-pass-plugin=C:\Hikari\lib\hikari_pe_x64.dll ^ -mllvm -sub -mllvm -sub_loop=1 | Flag | Effect | |------|--------| | -sub | Instruction substitution | | -sub_loop=1 | Substitution on loops | | -bcf | Bogus control flow | | -bcf_loop=1 | Bogus flow in loops | | -fla | Control flow flattening | | -fla_loop=1 | Flatten loops | | -split | Basic block splitting | | -split_num=2 | Split into 2 blocks | | -indibran | Indirect branching (opaque predicates) |
