Java 7におけるAPI名隠ぺいのためのinvokedynamic命令を用いた難読化の試み

書誌事項

タイトル別名
  • A Prototype of Obfuscation Technique for Hiding API Names with Invokedynamic for Java 7 Platform

抄録

JavaはAOPなどを利用したリバースエンジニアリングが容易であるため,攻撃される危険性が高い.そこで,攻撃を防止するため,意図的にプログラムの理解を妨げる難読化手法が多数提案されている.その手法の一つに,リフレクションを用いた動的名前解決難読化がある.しかし,この手法には実行速度が著しく低下するという問題がある.本稿では,Java 7で導入されたinvokedynamic命令を用いて動的名前解決難読化を行う.この命令はJVM上で動くスクリプト言語のために用意された命令であり,呼び出すメソッドを文字列で指定できるようになる.この命令を用いることで,従来手法に比べ実行速度の改善が期待できる.

Java programs are easy to analyze while executing, since useful dynamic analysis tools are provided, such as AOP. Therefore, various obfuscation techniques are proposed to prevent illegal analysis. The one of the techniques is to hide API names with reflection mechanism. The obfuscation technique is named dynamic name resolution (DNR). Indeed, the tecunique can hide API names, however, great delays are also introduced. This paper proposes new DNR mechanism with invokedynamic instruction instead of reflection mechanism. The invokedynamic instruction is introduced for script language running on Java virtual machine in Java 7 platform. Introducing the mechanism expects more acceptable performance than conventional mechanism.

収録刊行物

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

  • CRID
    1050855522107763968
  • NII論文ID
    170000080876
  • Web Site
    http://id.nii.ac.jp/1001/00098310/
  • 本文言語コード
    ja
  • 資料種別
    conference paper
  • データソース種別
    • IRDB
    • CiNii Articles

問題の指摘

ページトップへ