APIライブラリ名隠ぺいのための動的名前解決を用いた名前難読化

機関リポジトリ HANDLE オープンアクセス

書誌事項

タイトル別名
  • Obfuscating API Library Names Using Dynamic Name Resolution

抄録

名前難読化とは,プログラム中の名前(識別子)を別の名前に付け替えることで,プログラムを理解しづらいものにするソフトウェア保護手法である.従来の名前難読化手法は,各名前を静的に別の文字列で置換するものであり,プログラム中に現れる任意のユーザ定義の名前を隠ぺいできる.しかしながら,従来手法を用いてシステム定義の名前(標準ライブラリやAPIの呼出し等)を難読化することは,プログラムの移植性を著しく低下させるため,現実的に不可能である.そこで本論文では,オブジェクト指向言語を対象に,システム定義の名前をも隠ぺい可能な新たな名前難読化手法を提案する.具体的には,プログラム中の名前使用部分をあらかじめ暗号化しておき,実行時に名前を復号して当該処理を実行する,動的名前解決の仕組みを導入する.提案手法では,オブジェクト指向言語のリフレクション機構を用いて,クラスの参照,メソッド呼出し,フィールドの参照・代入に現れる任意の名前を動的解決する方法を実現している.また,提案手法をJavaプログラム用に実装し評価実験を行った.ある実用プログラムへの適用では,4.11倍の性能劣化でプログラム中のすべてのクラス名,メソッド名,フィールド名(計10,580回出現)を難読化できることが分かった.

収録刊行物

関連プロジェクト

もっと見る

詳細情報 詳細情報について

問題の指摘

ページトップへ