JP6374453B2 - モジュールの暗号化/復号化プログラム - Google Patents
モジュールの暗号化/復号化プログラム Download PDFInfo
- Publication number
- JP6374453B2 JP6374453B2 JP2016155564A JP2016155564A JP6374453B2 JP 6374453 B2 JP6374453 B2 JP 6374453B2 JP 2016155564 A JP2016155564 A JP 2016155564A JP 2016155564 A JP2016155564 A JP 2016155564A JP 6374453 B2 JP6374453 B2 JP 6374453B2
- Authority
- JP
- Japan
- Prior art keywords
- module
- program
- executed
- encrypted
- execution
- 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.)
- Active
Links
Images
Description
<概要>
図1は、本実施例のプログラム複合体の動作の一例を説明するための概念図である。この図にあるように、プログラムAとしたプログラム複合体は記憶域のアドレスXからアドレスYの間にモジュールP個が存在している。モジュール2からモジュールPは暗号化されている。プログラムは、モジュール1から順にモジュールPまで実行されることとする。モジュール1はモジュール2を呼び出し、モジュール2はモジュール3を呼び出すという階層的な実行方式をとる。
図3は、本実施例のプログラム複合体における機能ブロックの一例を表す図である。この図にあるように、本実施例の「プログラム複合体」(0300)は、「プログラム本体」(0301)と、「モジュールの集合体」(0302)と、「復号化プログラム」(0303)と、を有する。
図5は、本実施例のプログラム複合体における処理の流れの一例を表すフローチャートである。まず、次モジュールは暗号化されているか否かの判断を行う(ステップS0501)。暗号化されている場合には、復号化するための処理を実行する(ステップS0502)。暗号化されていない場合には、ステップS0502はスキップする。その後次モジュールを実行し(ステップS0503)、プログラムの終了か否かの判断を行い(ステップS0504)、終了で無ければ、ステップS0501に戻る。終了であれば、プログラムを終了させる。
図6は、上記機能的な各構成要件をハードウエアとして実現した際の、プログラム複合体における構成の一例を表す概略図である。この図を利用してアプリケーション切換処理におけるそれぞれのハードウエア構成部の働きについて説明する。この図にあるように、本実施例のプログラム複合体は、各種演算処理を行う「CPU(中央演算装置)」(0601)と、「揮発性メモリ」(0602)と、「不揮発性メモリ」(0603)とを有している。また、ユーザからの操作入力を受け付けるマウスやキーボードなどや、表示装置などが接続される「入出力I/F」(0604)を有する。そしてそれらが「システムバス」(0605)などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
以上のように本実施例のプログラム複合体によって、暗号化された次に実行されるべきモジュールを呼び出し元のモジュールによって復号化し、実行することができる。これにより、モジュールは階層的に実行されることとなり、実行直前まで保護すべきモジュールを暗号化したままとすることが可能である。これにより、一度に全てのモジュールを復号化する場合よりも、解析に手間がかかることとなるため、プログラムの耐タンパ性が向上する。
<概要>
図7は、本実施例のプログラム複合体の適用例について説明するための概念図である。この図にあるように、プログラムの実行開始時(0801)においては、モジュール1以外のモジュールが暗号化されている。復号化プログラムによりモジュール1の実行終了前に、次に実行すべきモジュール2を復号化する。そして、モジュール1の終了後においては、モジュール1を記憶域から削除する(0802)。
図8は、本実施例のプログラム複合体における機能ブロックの一例を表す図である。この図にあるように、本実施例の「プログラム複合体」(0800)は、「プログラム本体」(0801)と、「モジュールの集合体」(0802)と、「復号化プログラム」(0803)と、を有する。なお、これら構成要件については上記実施例にて既に記載済みであるのでその説明は省略する。本実施例のプログラム複合体の特徴点は、「プログラム複合体」(0800)が「削除プログラム」(0804)を新たに有する点である。
<処理の流れ>
図9は、本実施例のプログラム複合体における処理の流れの一例を表すフローチャートである。まず、次モジュールは暗号化されているか否かの判断を行う(ステップS0901)。暗号化されている場合には、復号化するための処理を実行する(ステップS0902)。暗号化されていない場合には、ステップS0902はスキップする。その後次モジュールを実行開始(ステップS0903)する。次いで、次モジュールは呼出元モジュールの削除を行う(ステップS0904)。その後、プログラムの終了か否かの判断を行い(ステップS0905)、終了で無ければ、ステップS0901に戻る。終了であれば、プログラムを終了させる。
図10は、上記機能的な各構成要件をハードウエアとして実現した際の、プログラム複合体における構成の一例を表す概略図である。この図を利用してアプリケーション切換処理におけるそれぞれのハードウエア構成部の働きについて説明する。この図にあるように、本実施例のプログラム複合体は、各種演算処理を行う「CPU(中央演算装置)」(1001)と、「揮発性メモリ」(1002)と、「不揮発性メモリ」(1003)とを有している。また、ユーザからの操作入力を受け付けるマウスやキーボードなどや、表示装置などが接続される「入出力I/F」(1004)を有する。そしてそれらが「システムバス」(1005)などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
このようにして、実行後のモジュールを削除していくことによって、実行後に記憶域に残っている平文のコードを除くことができる。これにより、実行後のモジュールのコードを解析することが不可能となる。したがって、耐タンパ性の高いプログラム複合体の実行が可能となる。
<概要>
図11は、本実施例のプログラム複合体の適用例について説明するための概念図である。この図にあるように、プログラムの実行開始時(1101)においては、モジュール1以外のモジュールが暗号化されている。復号化プログラムによりモジュール1の実行終了前に、次に実行すべきモジュール2を復号化する。そして、モジュール1の終了後においては、モジュール1を再度暗号化する(1102)。
図12は、本実施例のプログラム複合体における機能ブロックの一例を表す図である。この図にあるように、本実施例の「プログラム複合体」(1200)は、「プログラム本体」(1201)と、「モジュールの集合体」(1202)と、「復号化プログラム」(1203)と、を有する。なお、これら構成要件については上記実施例にて既に記載済みであるのでその説明は省略する。本実施例のプログラム複合体の特徴点は、「プログラム複合体」(1200)が「再暗号化プログラム」(1204)を新たに有する点である。
図13は、本実施例のプログラム複合体における処理の流れの一例を表すフローチャートである。まず、次モジュールは暗号化されているか否かの判断を行う(ステップS1301)。暗号化されている場合には、復号化するための処理を実行する(ステップS1302)。暗号化されていない場合には、ステップS1302はスキップする。その後次モジュールを実行開始(ステップS1303)する。次いで、次モジュールは呼出元モジュールの再暗号化を行う(ステップS1304)。その後、プログラムの終了か否かの判断を行い(ステップS1305)、終了で無ければ、ステップS1301に戻る。終了であれば、プログラムを終了させる。
図14は、上記機能的な各構成要件をハードウエアとして実現した際の、プログラム複合体における構成の一例を表す概略図である。この図を利用してアプリケーション切換処理におけるそれぞれのハードウエア構成部の働きについて説明する。この図にあるように、本実施例のプログラム複合体は、各種演算処理を行う「CPU(中央演算装置)」(1401)と、「揮発性メモリ」(1402)と、「不揮発性メモリ」(1403)とを有している。また、ユーザからの操作入力を受け付けるマウスやキーボードなどや、表示装置などが接続される「入出力I/F」(1404)を有する。そしてそれらが「システムバス」(1405)などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
このようにして、本実施例のプログラム複合体は、実行後に記憶域に残っている平文のコードを再び暗号化できる。これにより、実行後のモジュールのコードを解析することが不可能となる。したがって、耐タンパ性の高いプログラム複合体の実行が可能となる。
0301 プログラム本体
0302 モジュールの集合体
0303 復号化プログラム
Claims (3)
- 実行時には実行メモリ領域に展開される複数のモジュールの集合体からなるプログラム本体であって、
各モジュールのうち,少なくとも保護すべきモジュールは非実行時には暗号化された状態であって,保護すべきモジュール以外のモジュールもが暗号化されている,プログラム本体と、
現在実行中のモジュールの終了前であって現在実行中のモジュールが終了する時点で次に実行される次モジュールの実行直前のタイミングにて演算装置が実行可能に次モジュールを復号化するための処理を計算機に実行させるための復号化プログラムと、
次モジュールの実行開始後に次モジュールを呼び出した呼出元モジュールを実行メモリ領域にて再暗号化する処理を計算機に実行させるための再暗号化プログラムと、からなり、
再暗号化プログラムは、呼出元モジュールのアドレス情報を呼出元モジュールから取得し,
前記復号化は、次モジュールの暗号化されている記憶域におけるアドレス情報を実行中のモジュールから受け取って行われ,
復号化プログラムは,各モジュールに直接組み込まれたものであって,複数存在し、複数の暗号化方式に対応したものである
プログラム複合体。 - 再暗号化プログラムは、再暗号化すべき呼び出し元モジュールのアドレスを呼び出し元モジュールから取得する請求項1に記載のプログラム複合体。
- 再暗号化プログラムは、再暗号化すべき呼び出し元モジュールのアドレスを実行中モジュールから取得する請求項1又は2に記載のプログラム複合体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016155564A JP6374453B2 (ja) | 2016-08-08 | 2016-08-08 | モジュールの暗号化/復号化プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016155564A JP6374453B2 (ja) | 2016-08-08 | 2016-08-08 | モジュールの暗号化/復号化プログラム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011204370A Division JP5988473B2 (ja) | 2011-09-20 | 2011-09-20 | モジュールの暗号化/復号化プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016219046A JP2016219046A (ja) | 2016-12-22 |
JP6374453B2 true JP6374453B2 (ja) | 2018-08-15 |
Family
ID=57581636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016155564A Active JP6374453B2 (ja) | 2016-08-08 | 2016-08-08 | モジュールの暗号化/復号化プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6374453B2 (ja) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002244989A (ja) * | 2001-02-20 | 2002-08-30 | Nec Corp | デバイスドライバ作動方法 |
US7039814B2 (en) * | 2001-03-07 | 2006-05-02 | Sony Corporation | Method for securing software via late stage processor instruction decryption |
JP4475894B2 (ja) * | 2002-08-01 | 2010-06-09 | パナソニック株式会社 | 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法 |
JP4557516B2 (ja) * | 2003-07-30 | 2010-10-06 | パナソニック株式会社 | 暗号化プログラム生成装置および暗号化プログラム生成方法 |
JP4770425B2 (ja) * | 2005-11-24 | 2011-09-14 | 富士ゼロックス株式会社 | 保護済み実行プログラムの作成のためのプログラム、方法及び装置 |
-
2016
- 2016-08-08 JP JP2016155564A patent/JP6374453B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016219046A (ja) | 2016-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170295013A1 (en) | Method for fulfilling a cryptographic request requiring a value of a private key | |
CN105227565B (zh) | 用于安卓系统的防逆向破解共享对象文件的方法和装置 | |
US20160117518A1 (en) | File Encryption/Decryption Device And File Encryption/Decryption Method | |
CN107612683B (zh) | 一种加解密方法、装置、系统、设备和存储介质 | |
CN107273723B (zh) | 一种基于so文件加壳的Android平台应用软件保护方法 | |
CN105022936A (zh) | 一种类class文件加密解密方法和装置 | |
JP5988473B2 (ja) | モジュールの暗号化/復号化プログラム | |
US9292708B2 (en) | Protection of interpreted source code in virtual appliances | |
Kotov et al. | Understanding crypto-ransomware | |
TW201525761A (zh) | 開放系統之函式庫的加密及解密方法 | |
CN114124364A (zh) | 密钥安全处理方法、装置、设备及计算机可读存储介质 | |
CN106375080B (zh) | 一种flash文件的加密及解密方法及其装置 | |
US11023567B2 (en) | Software intellectual property protection systems and methods for embedded platforms | |
KR20170022023A (ko) | 프로그램 실행 코드를 난독화하기 위한 장치 및 방법, 난독화된 프로그램 실행 코드를 복구하여 실행하기 위한 장치 및 방법 | |
JP2010217975A (ja) | 情報処理装置、アプリケーションプログラム、及びアプリケーションプログラムの実行方法 | |
JP6374453B2 (ja) | モジュールの暗号化/復号化プログラム | |
JP6374454B2 (ja) | モジュールの暗号化/復号化プログラム | |
US9378395B2 (en) | Method, a device and a computer program support for execution of encrypted computer code | |
CN103605927A (zh) | 一种基于嵌入式Linux系统实现加密和解密方法 | |
CN109995526A (zh) | 一种密钥的存储方法和装置、密钥的调用方法和装置 | |
JP2016028334A (ja) | モジュールの暗号化/復号化プログラム | |
CN107688729B (zh) | 基于可信主机的应用程序保护系统及方法 | |
JP6215468B2 (ja) | プログラム保護装置 | |
CN110618967A (zh) | 应用程序运行方法、安装包生成方法、装置、设备及介质 | |
JP2007172526A (ja) | 情報処理システム、情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170622 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170721 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170907 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20171211 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180309 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20180319 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180523 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180621 |
|
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: 20180703 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180719 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6374453 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |