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

Bibliographic Information

Other Title
  • 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.


Details 詳細情報について

  • CRID
  • NII Article ID
  • Web Site
  • Text Lang
  • Article Type
    conference paper
  • Data Source
    • IRDB
    • CiNii Articles

Report a problem

Back to top