JP2010262334A - プログラム難読化装置、プログラム難読化方法およびプログラム - Google Patents
プログラム難読化装置、プログラム難読化方法およびプログラム Download PDFInfo
- Publication number
- JP2010262334A JP2010262334A JP2009110440A JP2009110440A JP2010262334A JP 2010262334 A JP2010262334 A JP 2010262334A JP 2009110440 A JP2009110440 A JP 2009110440A JP 2009110440 A JP2009110440 A JP 2009110440A JP 2010262334 A JP2010262334 A JP 2010262334A
- Authority
- JP
- Japan
- Prior art keywords
- variable
- program
- variables
- encoded
- rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
【解決手段】プログラムの中から、符号化の対象となるポインタ変数を含む変数をn個(nは正の整数)選択し、符号化後の変数の個数m(mは正の整数)を決定して、符号化データ用の変数を定義する。次に、符号化ルールおよび復号化ルールを定義し、プログラム内の符号化対象変数を符号化データ用変数に置き換える。そして、その変数が置き換えられたプログラムを実行可能なプログラムに修正する。
【選択図】図2
Description
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組み合わせを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
図1に示すように、本実施形態に係るプログラム難読化装置は、変数選択部1と、変数定義部2と、ルール定義部3と、置換部4と、修正部5とから構成されている。
代入命令 x_i←eを数4に示す命令に置き換える。ただし、数4の右辺の関数f_1、f_2、...、f_mにおいては、代入が行われる対象変数x_iをeで置換する。
上記の左辺の変数の置き換え処理で得られた命令列の右辺に含まれる符号化対象変数x_1、x_2、...、x_nをそれぞれg_1、g_2、...、g_nで置き換える。
図2を用いて、本実施形態に係るプログラム難読化装置の処理について説明する。
図3から図5を用いて、本発明のプログラム難読化装置を用いた具体的な実施例について説明する。なお、図3は、符号化処理前のプログラムのソースコードを例示した図であり、図4は、符号化式を例示した図である。また、図5は、難読化後のソースコードを例示した図である。
2・・・変数定義部
3・・・ルール定義部
4・・・置換部
5・・・修正部
Claims (11)
- プログラム内の複数の変数を符号化し、プログラムを難読化するプログラム難読化装置であって、
前記プログラムの中から、符号化の対象となるポインタ変数を含む変数をn個(nは正の整数)選択する変数選択手段と、
符号化後の変数の個数m(mは正の整数)を決定し、符号化データ用の変数を定義する変数定義手段と、
符号化ルールおよび復号化ルールを定義するルール定義手段と、
前記プログラム内の符号化対象変数を符号化データ用変数に置き換える置換手段と、
該変数が置き換えられたプログラムを実行可能なプログラムに修正する修正手段と、
を備えたことを特徴とするプログラム難読化装置。 - 前記ポインタ変数に、少なくとも、整数ポインタ変数、文字列ポインタ変数、構造体ポインタ変数を含むことを特徴とする請求項1に記載のプログラム難読化装置。
- 前記ポインタ変数と同一のビット長である変数を前記符号化の対象となる変数とすることを特徴とする請求項1に記載のプログラム難読化装置。
- 利用者の入力が直接書き込まれる変数を前記符号化の対象となる変数としないことを特徴とする請求項1に記載のプログラム難読化装置。
- アドレス演算子によりその変数のアドレスが取得されている変数を前記符号化の対象となる変数としないことを特徴とする請求項1に記載のプログラム難読化装置。
- 前記ルール定義手段が、前記符号化ルールを未知変数に対する連立方程式とみなして、得た前記未知変数に対する解を復号ルールとすることを特徴とする請求項1に記載のプログラム難読化装置。
- 前記置換手段が、前記符号化対象変数に対する代入命令を変換するとともに、前記符号化対象変数を各変数の前記復号化ルールに基づいて置換することを特徴とする請求項1に記載のプログラム難読化装置。
- 前記修正手段が、前記符号化対象変数の宣言を削除し、前記符号化データ用変数とこれらの値を保持するための一時変数の定義を追加し、前記置換手段が変換した代入命令を実行可能な命令列に変換することを特徴とする請求項8に記載のプログラム難読化装置。
- プログラム内の複数の変数を符号化し、プログラムを難読化するプログラム難読化方法であって、
前記プログラムの中から、符号化の対象となるポインタ変数を含む変数をn個(nは正の整数)選択する第1のステップと、
符号化後の変数の個数m(mは正の整数)を決定し、符号化データ用の変数を定義する第2のステップと、
符号化ルールおよび復号化ルールを定義する第3のステップと、
前記プログラム内の符号化対象変数を符号化データ用変数に置き換える第4のステップと、
該変数が置き換えられたプログラムを実行可能なプログラムに修正する第5のステップと、
を備えたことを特徴とするプログラム難読化方法。 - プログラム内の複数の変数を符号化し、プログラムを難読化するプログラム難読化方法をコンピュータに実行させるためのプログラムであって、
前記プログラムの中から、符号化の対象となるポインタ変数を含む変数をn個(nは正の整数)選択する第1のステップと、
符号化後の変数の個数m(mは正の整数)を決定し、符号化データ用の変数を定義する第2のステップと、
符号化ルールおよび復号化ルールを定義する第3のステップと、
前記プログラム内の符号化対象変数を符号化データ用変数に置き換える第4のステップと、
該変数が置き換えられたプログラムを実行可能なプログラムに修正する第5のステップと、
をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009110440A JP5378055B2 (ja) | 2009-04-30 | 2009-04-30 | プログラム難読化装置、プログラム難読化方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009110440A JP5378055B2 (ja) | 2009-04-30 | 2009-04-30 | プログラム難読化装置、プログラム難読化方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010262334A true JP2010262334A (ja) | 2010-11-18 |
JP5378055B2 JP5378055B2 (ja) | 2013-12-25 |
Family
ID=43360368
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009110440A Active JP5378055B2 (ja) | 2009-04-30 | 2009-04-30 | プログラム難読化装置、プログラム難読化方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5378055B2 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003337629A (ja) * | 2002-05-18 | 2003-11-28 | Mitsuko Miyaji | プログラム難読化方法及び装置 |
JP2006235688A (ja) * | 2005-02-22 | 2006-09-07 | Kddi Corp | プログラム難読化装置およびその方法ならびにプログラム |
JP2007079916A (ja) * | 2005-09-14 | 2007-03-29 | Kddi Corp | 符号化方法およびそのプログラム |
JP2010072958A (ja) * | 2008-09-18 | 2010-04-02 | Fuji Xerox Co Ltd | プログラム難読化装置及び難読化プログラム |
-
2009
- 2009-04-30 JP JP2009110440A patent/JP5378055B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003337629A (ja) * | 2002-05-18 | 2003-11-28 | Mitsuko Miyaji | プログラム難読化方法及び装置 |
JP2006235688A (ja) * | 2005-02-22 | 2006-09-07 | Kddi Corp | プログラム難読化装置およびその方法ならびにプログラム |
JP2007079916A (ja) * | 2005-09-14 | 2007-03-29 | Kddi Corp | 符号化方法およびそのプログラム |
JP2010072958A (ja) * | 2008-09-18 | 2010-04-02 | Fuji Xerox Co Ltd | プログラム難読化装置及び難読化プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP5378055B2 (ja) | 2013-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wu et al. | AEA-NCS: An audio encryption algorithm based on a nested chaotic system | |
Qiu et al. | All-Or-Nothing data protection for ubiquitous communication: Challenges and perspectives | |
WO2018113642A1 (zh) | 一种面向远程计算的控制流隐藏方法及系统 | |
CN105453481B (zh) | 包括表网络的计算设备 | |
JP5861018B1 (ja) | テーブルネットワークによって構成されたコンピューティングデバイス | |
KR20180110550A (ko) | 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치 | |
JP2017216619A (ja) | 情報処理装置、情報処理方法及びプログラム | |
AbdElHaleem et al. | A generalized framework for elliptic curves based PRNG and its utilization in image encryption | |
Selvanayagam et al. | Secure file storage on cloud using cryptography | |
CN112231740B (zh) | 数据加密方法、数据解密方法、装置、计算机设备和介质 | |
JP6554103B2 (ja) | 暗号アルゴリズムで使用されるときに秘密データを保護する方法 | |
JP4675642B2 (ja) | プログラム難読化装置およびその方法ならびにプログラム | |
JP2006079347A (ja) | 符号化方法およびそのプログラム | |
JP5378055B2 (ja) | プログラム難読化装置、プログラム難読化方法およびプログラム | |
KR101440680B1 (ko) | 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치 | |
JP5149061B2 (ja) | プログラム難読化装置、プログラム難読化方法およびプログラム | |
JP6631989B2 (ja) | 暗号化装置、制御方法、及びプログラム | |
JP3970856B2 (ja) | プログラム難読化装置、プログラム配布システム、コンピュータプログラム | |
Rahul et al. | Chaos-based audio encryption algorithm using biometric image and SHA-256 hash algorithm | |
Dawson et al. | Ensuring privacy and confidentiality of cloud data: A comparative analysis of diverse cryptographic solutions based on run time trend | |
Saxena et al. | A new way to enhance efficiency & security by using symmetric cryptography | |
JP7215245B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP2007079916A (ja) | 符号化方法およびそのプログラム | |
KR101625018B1 (ko) | 데이터 암호화 장치 및 방법, 그를 이용한 컴퓨팅 장치 및 통신 장치 | |
JP6296589B2 (ja) | 暗号処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120309 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130501 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130514 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130716 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130827 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130925 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5378055 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |