Reverse engineering
Java VMや.NET Frameworkなど、仮想マシンあるいは中間言語方式のフレームワーク上で動作するアプリケーションソフトウェアはリバースエンジニアリングしやすい性質を持つが、第三者によるリバースエンジニアリングを防止するために、難読化 (obfuscation) を施すこともある。