Top > Search of Japanese Patents > PROGRAM CONVERSION DEVICE, EXECUTION SUPPORT DEVICE, METHOD FOR THEM, AND COMPUTER PROGRAM FOR THEM

PROGRAM CONVERSION DEVICE, EXECUTION SUPPORT DEVICE, METHOD FOR THEM, AND COMPUTER PROGRAM FOR THEM meetings

Patent code P07A010533
File No. P04-72
Posted date Sep 14, 2007
Application number P2005-171372
Publication number P2006-344160A
Patent number P4669934
Date of filing Jun 10, 2005
Date of publication of application Dec 21, 2006
Date of registration Jan 28, 2011
Inventor
  • (In Japanese)玉田 春昭
  • (In Japanese)門田 暁人
  • (In Japanese)中村 匡秀
  • (In Japanese)松本 健一
Applicant
  • (In Japanese)国立大学法人 奈良先端科学技術大学院大学
Title PROGRAM CONVERSION DEVICE, EXECUTION SUPPORT DEVICE, METHOD FOR THEM, AND COMPUTER PROGRAM FOR THEM meetings
Abstract PROBLEM TO BE SOLVED: To provide a program conversion device and the like capable of hiding a call for a method for preventing the perception of a program.
SOLUTION: A method call change part 32 changes a call for a method written in a main body program 23 to a dynamic call, and then, changes it into a call via the execution support device. An encryption part 35 encrypts a character string designating the dynamic call changed by the method call change part 32 to change the main body program 23. Therefore, the call for the method can be concealed, and the program can be hardly understood.
Outline of related art and contending technology (In Japanese)


近年、ソフトウェアプロテクションに関する研究が盛んに行なわれている。このソフトウェアプロテクションとは、ソフトウェアの改ざん、解析、コピー、再利用(盗用)などの攻撃からソフトウェアシステムを保護する技術の総称であり、難読化、暗号化、多様化、電子透かし、バースマークなどの要素技術がある。



これらのソフトウェアプロテクション技術の中で、攻撃のしにくさという観点から、追加のプロテクション機構を持たず、プログラム自身を解析しにくくする方式であるプログラムの難読化が特に注目されている。



難読化とは、与えられたプログラムをより複雑なプログラムに変換する技術であり、レイアウト難読化、データ難読化、制御フロー難読化などがある。難読化されたプログラムは、難読化前のプログラムと同一の機能を持つが、理解や解析がより困難となっている。これに関連する技術として、以下に示すような特許文献1~3と、非特許文献1~2とがある。
【特許文献1】
特開2005-49925号公報
【特許文献2】
特開2004-192068号公報
【特許文献3】
米国特許第6,102,966号
【非特許文献1】
Toshio Ogiso and Yusuke Sakabe and Masakazu Soushi and Mitsuko Miyaji, "Software obfuscation on a theoretical basis and its implementation," IEICE Transactions on Fundamentals, Vol.E86-A, No.1, pp 176-186 Jan 2003.
【非特許文献2】
Yusuke Sakabe and Masakazu Soshi and Atsuko Miyaji, "Java(登録商標) Obfuscation with a Theoretical Basis for Building Secure Mobile Agents," Lecture Notes in Computer Science, Vol. 2828, pp. 89-103, 2003.

Field of industrial application (In Japanese)


本発明は、ソフトウェアプロテクション技術に関し、特に、与えられたプログラムをより解析の困難なプログラムに変換するプログラム変換装置、変換されたプログラムの実行を支援する実行支援装置、それらの方法およびそれらのコンピュータ・プログラムに関する。

Scope of claims (In Japanese)
【請求項1】
 
本体プログラムを難読化するプログラム変換装置であって、
前記本体プログラムのメソッドの呼出しの記述を動的呼出しの記述に変更するための呼出変更手段と、
前記呼出変更手段によって変更された後の動的呼出しを指定する文字列を暗号化して前記本体プログラムを変更するための暗号化手段とを含む、プログラム変換装置。

【請求項2】
 
前記プログラム変換装置が、フィールドを参照する記述またはフィールドに値を代入する記述を、それぞれフィールドを動的に参照する記述またはフィールドに値を動的に代入する記述に変更するためのフィールド変更手段と、
前記フィールド変更手段によって変更された後の記述に含まれるフィールドの名称を暗号化して前記本体プログラムを変更するための暗号化手段とを含む、請求項1記載のプログラム変換装置。

【請求項3】
 
前記呼出変更手段は、前記動的呼出しの記述を別のクラスのメソッドを経由して呼出すように変更し、
前記フィールド変更手段は、フィールドを動的に参照する記述またはフィールドに値を動的に代入する記述を前記別のクラスのメソッドを経由して行なうように変更する、請求項2記載のプログラム変換装置。

【請求項4】
 
前記プログラム変換装置はさらに、前記本体プログラムに含まれる変数の型を変更するための変数型変更手段を含む、請求項1~3のいずれかに記載のプログラム変換装置。

【請求項5】
 
難読化された本体プログラムの実行を支援する実行支援装置であって、
前記難読化された本体プログラムからのメソッドの動的呼出しに応じて、暗号化後の値から文字列を復号するための復号手段と、
前記復号手段によって復号された文字列を用いてメソッドを実行するための実行手段とを含む、実行支援装置。

【請求項6】
 
前記実行支援装置が、前記難読化された本体プログラムからのフィールドの動的参照またはフィールドへの動的代入の要求に応じて、前記フィールドの名称を復号するための復号手段と、
前記復号手段によって復号された名称を用いてフィールドの動的参照またはフィールドの動的代入を行なうためのフィールドアクセス手段とを含む、請求項5記載の実行支援装置。

【請求項7】
 
コンピュータに本体プログラムを難読化させるプログラム変換方法であって、
前記本体プログラムのメソッドの呼出しの記述を動的呼出しの記述に変更するステップと、
前記変更された後の動的呼出しを指定する文字列を暗号化して前記本体プログラムを変更するステップとを含む、プログラム変換方法。

【請求項8】
 
前記プログラム変換方法が、フィールドを参照する記述またはフィールドに値を代入する記述を、それぞれフィールドを動的に参照する記述またはフィールドに値を動的に代入する記述に変更するステップと、
前記変更された後の記述に含まれるフィールドの名称を暗号化して前記本体プログラムを変更するステップとを含む、請求項7記載のプログラム変換方法。

【請求項9】
 
前記プログラム変換方法が、動的呼出しの記述を別のクラスのメソッドを経由して呼出すように変更するステップと、
フィールドを動的に参照する記述またはフィールドに値を動的に代入する記述を前記別のクラスのメソッドを経由して行なうように変更するステップとを含む、請求項8記載のプログラム変換方法。

【請求項10】
 
前記プログラム変換方法はさらに、前記本体プログラムに含まれる変数の型を変更するステップを含む、請求項7~9のいずれかに記載のプログラム変換方法。

【請求項11】
 
コンピュータに難読化された本体プログラムの実行を支援させる実行支援方法であって、
前記難読化された本体プログラムからのメソッドの動的呼出しに応じて、前記呼出しに含まれる暗号化後の値から文字列を復号するステップと、
前記復号された文字列を用いてメソッドを実行するステップとを含む、実行支援方法。

【請求項12】
 
前記実行支援方法が、前記難読化された本体プログラムからのフィールドの動的参照またはフィールドへの動的代入の要求に応じて、前記フィールドの名称を復号するステップと、
前記復号された名称を用いてフィールドの動的参照またはフィールドの動的代入を行なうステップとを含む、請求項11記載の実行支援方法。

【請求項13】
 
本体プログラムを難読化するプログラム変換方法をコンピュータに実行させるためのコンピュータ・プログラムであって、
前記プログラム変換方法は、前記本体プログラムのメソッドの呼出しの記述を動的呼出しの記述に変更するステップと、
前記変更された後の動的呼出しを指定する文字列を暗号化して前記本体プログラムを変更するステップとを含む、コンピュータ・プログラム。

【請求項14】
 
前記コンピュータ・プログラムが、フィールドを参照する記述またはフィールドに値を代入する記述を、それぞれフィールドを動的に参照する記述またはフィールドに値を動的に代入する記述に変更するステップと、
前記変更された後の記述に含まれるフィールドの名称を暗号化して前記本体プログラムを変更するステップとを含む、請求項13記載のコンピュータ・プログラム。

【請求項15】
 
前記コンピュータ・プログラムが、前記動的呼出しの記述を別のクラスのメソッドを経由して呼出すように変更するステップと、
フィールドを動的に参照する記述またはフィールドに値を動的に代入する記述を前記別のクラスのメソッドを経由して行なうように変更するステップとを含む、請求項14記載のコンピュータ・プログラム。

【請求項16】
 
前記プログラム変換方法はさらに、前記本体プログラムに含まれる変数の型を変更するステップを含む、請求項13~15のいずれかに記載のコンピュータ・プログラム。

【請求項17】
 
難読化された本体プログラムの実行を支援する実行支援方法をコンピュータに実行させるためのコンピュータ・プログラムであって、
前記実行支援方法は、前記難読化された本体プログラムからのメソッドの動的呼出しに応じて、前記呼出しに含まれる暗号化後の値から文字列を復号するステップと、
前記復号された文字列を用いてメソッドを実行するステップとを含む、コンピュータ・プログラム。

【請求項18】
 
前記コンピュータ・プログラムが、前記難読化された本体プログラムからのフィールドの動的参照またはフィールドへの動的代入の要求に応じて、前記フィールドの名称を復号するステップと、
前記復号された名称を用いてフィールドの動的参照またはフィールドの動的代入を行なうステップとを含む、請求項17記載のコンピュータ・プログラム。
IPC(International Patent Classification)
F-term
Drawing

※Click image to enlarge.

JP2005171372thum.jpg
State of application right Registered
Please contact us by E-mail or facsimile if you have any interests on this patent.


PAGE TOP

close
close
close
close
close
close
close