クライアントプロテクション技術には、パッキング、難読化、アンチデコンパイル、改ざん検知など、さまざまなアプローチがあるが、本発表ではこれらのアプローチの優劣について検討し、我々のコンパイラ型のクライアントプロテクションツール DeClang を紹介する。
今までの先行研究では、LLVM ベースのオープンソースプロジェクトは沢山存在する。しかし、これらのプロジェクトのほとんどが実験段階にとどまり、バグが潜んでいる、ARMがサポートされていない、モバイルアプリのビルドフローに適用できないなど、様々な欠点が存在している。DeClang はこれらの問題を克服し、実用レベルの難読化コンパイラとして一部オープンソース化される。
本発表では、Unity のビルドフローを分析し、いかにして DeClang を Unity のビルドフローに取り込めるかを説明する。さらに、難読化コンパイラとして実用レベルのものとするにあたり、obfuscator-llvm というプロジェクトに長期潜んでいたバグを見つけ、解決した手法についても紹介する。本発表を通じて誰でも手軽にモバイルアプリを守れるように実現させたいと考えている。