A Method for Evaluating the Stealthiness of Protected Code Based on Its Artificiality
Jazyk: | japonština |
---|---|
Rok vydání: | 2014 |
Předmět: | |
Zdroj: | 情報処理学会論文誌. 55(2):1005-1015 |
ISSN: | 1882-7764 |
Popis: | 本論文では,ソフトウェア保護機構のステルシネス(保護されていないコードとの区別のつきにくさ)を評価する一方法を提案する.保護のために追加・変形されたコードの「不自然さ」が,保護されていないコードとの区別を容易にし,ステルシネスを低くするという仮定のもと,コードのステルシネスをコードの不自然さを用いて評価する.コードの不自然さ,すなわち,コンパイラが出力したコードとしてもっともらしくない度合いは,確率的言語モデル(N-gramモデル)によって数値化する.ケーススタディでは,既存のソフトウェア保護方法が適用されたコードの不自然さを提案方法によって数値化し,ステルシネスを考察した.結果から,コードの制御構造や命令表現の変形のみを行う保護はコードのステルシネスを高く維持できる一方,コードの暗号化など,元来のコードの意味を破壊する変形をともなう保護や,意味のないコードを無作為に挿入する保護は,コードのステルシネスを低くする傾向が強いことが分かった. This paper proposes a method for evaluating the stealthiness of protected code, that is, the degree to which protected code can be distinguished from unprotected code. Artificial code fragments, which means unusual code fragments caused by obfuscation, are easy to distinguish from unprotected code fragments. Based on the fact, we estimate the degree of stealthiness according to the “artificiality” of the protected code. We quantitate artificiality of the code by means of probabilistic language model (N-gram model). In the case study, we evaluate the stealthiness of the various programs that are obfuscated by the previous obfuscation techniques, by the proposed method. The result shows that the semantics-preserving obfuscating transformations (e.g., transformation of the control flow of the program) have little affect on the stealthiness. On the other hand, the obfuscation techniques that corrupt the original semantics of the program (e.g., code encryption), or that just insert junk code fragments to the program, tend to decrease the stealthiness. |
Databáze: | OpenAIRE |
Externí odkaz: |