open-obfuscator / o-mvll

:electron: O-MVLL is a LLVM-based obfuscator for native code (Android & iOS)
https://obfuscator.re/omvll
Apache License 2.0
611 stars 66 forks source link

Cache host and target user IR modules #24

Closed antoniofrighetto closed 1 year ago

antoniofrighetto commented 1 year ago

User-supplied encode/decode functions are compiled into IR modules lazily in the pass. To accomplish this, we run a nested instance of clang in a child process, which causes a measurable overhead. Do not this again for every compile unit and instead cache such modules.