自己書き換えを用いたプログラムの解析防止方法の提案

神崎 雄一郎 (0151036)


従来より,不正行為を目的としたソフトウェアの解析・改ざんが問題となってお り,不正行為者の存在は,ソフトウェア業界における脅威となっている.例えば, コピープロテクトのチェックルーチンを解析し,そのルーチンが無効になるよう に改ざんする不正コピーの問題は後をたたず,開発者側に大きな不利益を生じさ せている.また, 近年普及しているコンテンツ流通のシステムに関しても,不正行為者に攻撃を受 け,被害が生じる危険性について案じられている. このようなシステムに対する攻撃によって 生じる問題が拡大しないためにも,不正行為を目的とした内部解析や改ざんを防 止することのできる技術が必要不可欠である.

そこで,本発表では, ソフトウェアを不正な解析行為から保護するための一手法を提案する. キーアイデアは,命令コードを自己書き換えする仕組みをプログラムに追加する ことで,プログラムの解析を困難にすることである. 提案方式によって得られる機械語プログラムは, 実行時に内容が変化する命令コードを多数含んでいる. これらの命令コードは,実行時のある期間だけ, オリジナルの命令コードとなるが,それ以外の期間においては, オリジナルのものと異なった,ダミーの命令を装っている. 不正行為者がこのようなプログラムの解析を試みるとき, ダミーの命令を装っている命令コードを含む部分を読むと 誤った理解をすることになり,解析に失敗する. 以上のようなアイデアに基づく 提案方式を用いると,特別なハードウェアを必要とせずに, 低コストで著しく解析が困難なソフトウェアが実現可能である.