JP4186381B2 - プログラムを格納する記録媒体及びその実行方法 - Google Patents
プログラムを格納する記録媒体及びその実行方法 Download PDFInfo
- Publication number
- JP4186381B2 JP4186381B2 JP2000136549A JP2000136549A JP4186381B2 JP 4186381 B2 JP4186381 B2 JP 4186381B2 JP 2000136549 A JP2000136549 A JP 2000136549A JP 2000136549 A JP2000136549 A JP 2000136549A JP 4186381 B2 JP4186381 B2 JP 4186381B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- code
- executed
- encrypted
- processing
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 83
- 238000004364 calculation method Methods 0.000 claims description 19
- 238000004458 analytical method Methods 0.000 claims description 17
- 238000010586 diagram Methods 0.000 description 12
- 238000001514 detection method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
Description
【発明の属する技術分野】
本発明はプログラムを格納する記録媒体及びその実行方法に関し、特にソフトウェアの動的な解析を阻止するための技術に関する。
【0002】
【従来の技術】
従来、ソフトウェアに関する不正利用への対抗技術としては、例えば「逆解析や改変からソフトを守る−タンパレジスタントソフトウェア技術−」(1998年1月、日経エレクトロニクス通巻706号,pp.209〜220)に記載されているように、第三者が秘密性の高いプログラムを解析し、不正利用することを防ぐために用いられている。
【0003】
その中でも、実行中のプログラムに対してソフトウェアデバッガ等を用いることによって接触し、プログラムを一文ずつ実行させて、その挙動を調べるやりかたは、完全な回避方法のない強力な解析手段である。
【0004】
上記の文献に記載されている不正利用への対抗技術における動的な解析への対抗手段について説明する。その構成を図8に示す。この図8において、プログラム10,20は不正利用への対抗技術を適用して保護するべきプログラムであり、プログラム60は不正利用への対抗技術のために用意した監視プログラムである。尚、プログラム10,20,60は自分自身の改ざんを検出する改ざん検出コード32をそれぞれ含んでいる。
【0005】
これらの認証について説明する。プログラム10とプログラム60とはディジタル署名による通信プロトコルによって互いの改ざん検出コード32を認証する。その際、改ざん検出コード32が壊れたり、改ざんされている場合にはそこで処理を終了する。
【0006】
プログラム20とプログラム60とはディジタル署名による通信プロトコルによって互いの改ざん検出コード33を認証する。その際、改ざん検出コード32が壊れたり、改ざんされている場合にはそこで処理を終了する。
【0007】
これらの方法によって、改ざん検出コード32が動的な解析を検出した場合には処理を中断することができる。また、2つの組と相互に認証を行うことで、通信プロトコルのメッセージを模倣してなりすます第三者のプログラムにも対応することができる。
【0008】
【発明が解決しようとする課題】
上述した従来のソフトウェアに関する不正利用への対抗技術では、ソフトウェアデバッガによる解析でトレースのみを行っている場合、改ざん検出コードがプログラムの改ざんを検出するのみであるので、デバッガ側がプログラムのどこかを改ざんしなくてはその改ざんを検出することができないという問題がある。
【0009】
そこで、本発明の目的は上記の問題点を解消し、ソフトウェアデバッガによる動的なソフトウェア解析を不可能にすることができるプログラムを格納する記録媒体及びその実行方法を提供することにある。
【0010】
【課題を解決するための手段】
本発明によるプログラムを格納する記録媒体は、コンピュータに実行されることで全体の処理動作を行うプログラムを格納する記録媒体であって、
前記全体の処理動作において奇数の順序で実行される処理コードを暗号化した複数の第1の暗号化コードを含む第1のプログラムと、
前記全体の処理動作において偶数の順序で実行される処理コードを暗号化した複数の第2の暗号化コードを含む第2のプログラムと
から構築され、
前記第1のプログラムは、前記第2の暗号化コードの暗号化を解除させるための第2の解除コードと、前記第2の解除コードで前記第2の暗号化コードの解除を行わせる第1の復号処理コードとを含み、
前記第2のプログラムは、前記第1の暗号化コードの暗号化を解除させるための第1の解除コードと、前記第1の解除コードで前記第1の暗号化コードの解除を行わせる第2の復号処理コードとを含み、
前記第1のプログラムは、前記コンピュータに、前記第2のプログラムによる前記第1の暗号化コードの暗号解除を実行させる間、予め算出した算出時間だけ前記第1のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記第1の暗号化コードの暗号解除の有無にかかわらず次の処理を実行させ、
前記第2のプログラムは、前記コンピュータに、前記第1のプログラムによる前記第2の暗号化コードの暗号解除を実行させる間、前記算出時間だけ前記第2のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記暗号解除の有無にかかわらず次の処理を実行させるようにしている。
【0011】
本発明による実行方法は、全体の処理動作をコンピュータに実行させるプログラムによる実行方法であって、
全体の処理動作において奇数の順序で実行される処理コードを暗号化した複数の第1の暗号化コードを含む第1のプログラムと、
前記全体の処理動作において偶数の順序で実行される処理コードを暗号化した複数の第2の暗号化コードを含む第2のプログラムと
によって構築されるプログラムにより実行され、
前記第1のプログラムは、前記第2の暗号化コードの暗号化を解除させるための第2の解除コードと、前記第2の解除コードで前記第2の暗号化コードの解除を行わせる第1の復号処理コードとを含み、
前記第2のプログラムは、前記第1の暗号化コードの暗号化を解除させるための第1の解除コードと、前記第1の解除コードで前記第1の暗号化コードの解除を行わせる第2の復号処理コードとを含み、
前記第1のプログラムは、前記コンピュータに、前記第2のプログラムによる前記第1の暗号化コードの暗号解除を実行させる間、予め算出した算出時間だけ前記第1のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記第1の暗号化コードの暗号解除の有無にかかわらず次の処理を実行させ、
前記第2のプログラムは、前記コンピュータに、前記第1のプログラムによる前記第2の暗号化コードの暗号解除を実行させる間、前記算出時間だけ前記第2のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記暗号解除の有無にかかわらず次の処理を実行させるようにしている。
【0012】
すなわち、本発明のプログラム構築方法は、2つのプログラムがそれぞれ暗号化したプログラムコードを持ち、実行時に暗号化したプログラムコードを相互に解除していくことで、ソフトウェアデバッガによるプログラムの動的な解析を妨ぐことができるように構築している。
【0013】
より具体的に、本発明のプログラム構築方法では、第1のプログラムが全体の処理動作において奇数の順序で実行される暗号化コードを含み、第2のプログラムが全体の処理動作において偶数の順序で実行される暗号化コードを含んでいる。第1及び第2のプログラムにおいては各々の暗号化コードを互いに交互に実行するように組まれている。暗号化コードはどれも第1及び第2のプログラムの両方で復号しないと元のコードに戻らないようにしておく。
【0014】
第1及び第2のプログラムは起動されると、まず1番目の暗号化コードを復号し、第1のプログラムはその復号されたコードを実行する。次に、第1及び第2のプログラムは2番目の暗号化コードを復号し、第2のプログラムはその復号されたコードを実行する。
【0015】
上記の処理を繰り返すことで、ソフトウェアデバッガによって第1のプログラムに動的な解析が行われた場合、暗号化コードが完全に復号されなくなり、それを実行しようとした第2のプログラムは不正なコードを実行したことによって終了し、以後の暗号化コードが完全に復号されなくなった第1のプログラムも終了することになる。
【0016】
本発明では、ソフトウェアデバッガが起動しているひとつのプログラムしか解析することができない点と、動的な解析が通常にプログラムが実行されるよりも時間がかかるという点の2つの特徴を利用している。これによって、不正な動的解析を妨げる構造が可能となる。
【0017】
【発明の実施の形態】
次に、本発明の実施例について図面を参照して説明する。図1は本発明の一実施例によるプログラムの構造を示す図である。図1において、プログラム10は暗号化コード11,13,15と、暗号化コード12,14,16の解除コード12a,14a,16aと、復号処理コード30とを含んでおり、プログラム20は暗号化コード12,14,16と、暗号化コード11,13,15の解除コード11a,13a,15aと、復号処理コード31とを含んでいる。
【0018】
図2は図1の暗号化をする前のプログラムを示す図である。図2において、暗号化コード11〜16はそれぞれ任意の処理コード1〜6を暗号化したコードであり、どれも復号処理コード30及び復号処理コード31で復号しなければ元の処理を行う処理コード1〜6に戻らない。
【0019】
その場合、復号処理コード30は解除コード12a,14a,16aでプログラム20の暗号化コード12,14,16の解除を行い、復号処理コード31は解除コード11a,13a,15aでプログラム10の暗号化コード11,13,15の解除を行う。
【0020】
図3は図1のプログラムが実行される順番を示す図である。図3においては、プログラム10,20で時間的にそれぞれ暗号化コード11,12,13,14,15,16の順番で実行するように構成されていることを示している。
【0021】
異なるプログラムにおいて順番に実行される暗号化コードを構築するには、システムタイマ等の同期機構を利用してプログラムを構築する方法や、初期設定処理、画面描画処理、終了処理等の実行される順番が決まっている処理に、暗号化コードを組込む等の方法があるが、ソフトウェアデバッガによる解析で停止をしない仕組みでなければならない。実際にはシステムタイマ等を用いた時間によるウェイトが望ましい。
【0022】
図4は図1のプログラムが正しく動作している場合を示す図であり、図5は図1のプログラムの動作を示すフローチャートである。これら図1と図4と図5とを参照して本発明の一実施例の全体の動作について説明する。
【0023】
まず、プログラム10とプログラム20とが起動されると、復号処理コード30による解除と、解除コード11aを用いた復号処理コード31による解除とによって暗号化コード11の暗号が解除されて処理コード1となる(図5ステップS1,S11)。
【0024】
この時、暗号解除を待つ側はウェイト機構で待機する(図5ステップS2)。このウェイト機構は並立して動作する2つのプログラム10,20において、同期をとるためのルーチンである。プログラム20による暗号化コード11の解除が行われるまで、予め算出した時間だけ待機する。その算出時間がすぎると、暗号化解除の有無にかかわらず、次のステップを実行する。
【0025】
この後に、プログラム10によって処理コード1が実行される(図5ステップS3)。続いて、解除コード12aを用いた復号処理コード30による解除と復号処理コード31の解除とによって暗号化コード12が解除されて処理コード2となる(図5ステップS4,S12)。
【0026】
この時、暗号解除を待つ側はウェイト機構で待機し(図5ステップS13)、その後に、プログラム20によって処理コード2が実行される(図5ステップS14)。続いて、復号処理コード30による解除と、解除コード13aを用いた復号処理コード31による解除とによって暗号化コード13が解除されて処理コード3となる(図5ステップS5,S15)。
【0027】
この時、暗号解除を待つ側はウェイト機構で待機し(図5ステップS6)、その後に、プログラム10によって処理コード3が実行される(図5ステップS7)。続いて、解除コード14aを用いた復号処理コード30による解除と復号処理コード31による解除とによって暗号化コード14が解除されて処理コード4となる(図5ステップS8,S16)。
【0028】
この時、暗号解除を待つ側はウェイト機構で待機し(図5ステップS17)、その後に、プログラム20によって処理コード4が実行される。というように、プログラム10,20の処理が続けられていく。
【0029】
この手続きによって、プログラム10とプログラム20とのどちらかがデバッガ(図示せず)によって動的なデバッグが行われても、これらプログラム10,20の解析を防ぐことができる。
【0030】
図6は図1のプログラムが動的にデバッグされている場合を示す図である。図6においては、例えばプログラム20が実行中にデバッガ40によって動的に解析されそうになった場合を示している。
【0031】
この場合、プログラム10とプログラム20とが起動されて処理を始めると、復号処理コード30,31によって暗号化コード11が解除されて処理コード1になり、プログラム10によって処理コード1が実行される。
【0032】
デバッガ40によってプログラム20はデバッグされると、プログラム20の実行は一時停止するか、デバッガ40の使用者によってステップ実行され、ゆっくりとした処理速度になる。
【0033】
復号処理コード30によって暗号化コード12は一部の暗号が解除されるとともに(不完全な処理コード2)、復号処理コード30によって暗号化コード13も一部の暗号が解除される(不完全な処理コード3)。プログラム10によって不完全な処理コード3が実行されると、不正な処理を行ったとして、オペレーティングシステムによってプログラム10が終了させられる。
【0034】
復号処理コード31によって不完全な処理コード2は処理コード2になり、プログラム20はその処理コード2を実行する。また、復号処理コード31によって暗号化コード14は一部の暗号が解除され(不完全な処理コード4)、プログラム20によってその不完全な処理コード4が実行されると、不正な処理を行ったとして、オペレーティングシステムによってプログラム20が終了させられる。
【0035】
上記のように、プログラム20がデバッガ40のデバッグによって、処理の流れが図3の流れよりも遅れると、プログラム10は一部しか解除されない処理コードを実行し、不正な処理によって終了する。それによって、プログラム20も一部しか解除されない処理コードを実行し、不正な処理によって終了する。デバッガ40の解析もそこで終了することになる。
【0036】
このように、2つのプログラム10,20が互いのプログラムに対して、段階的に暗号解除処理を行うことで、どちらのプログラムがデバッグされても、暗号解除処理の手順がずれて、不正な処理によって終了するという構造を持つことによって、ソフトウェアデバッガ40による動的なソフトウェア解析を不可能にすることができる。
【0037】
尚、上記の説明では2個のプログラム10,20について述べているが、それらのプログラムは2個ではなく、N個(Nは3以上の整数)でもかまわない。その場合、プログラムをN個に増やすと、プログラム10とプログラム20とが相互の暗号解除を行い、プログラムN−1とプログラムNとが相互の暗号解除を行い、プログラムNとプログラム10とが相互の暗号解除を行うという形になる。これによって、全体的にさらに解析しにくいプログラムとなる。
【0038】
また、図1及び図2において、復号処理コード30,31は処理コード1〜6に含めてもかまわない。このように、任意の処理コード1〜6に復号処理コード30,31を含めると、第三者による解析の危険をさらに減らすことができる。
【0039】
さらに、図5に示すフローチャートにおいて、ウェイト機構は時間による待機以外にも、第三のプログラムによる同期処理でもかまわない。この場合、このプログラムはプログラム10とプログラム20とに暗号解除を許可するメッセージを順番に送信する。例えば、ステップS11の終了を確認したら、ステップS2で待機しているプログラム10にウェイト終了のメッセージを送信する。
【0040】
この方法を使用した場合にも、ウェイト機構に、一定時間メッセージを受信しなかったら、次のステップに進む処理を入れることで、第三のプログラムへの動的な解析に対抗することができる。
【0041】
図7は本発明の他の実施例によるプログラムの構造を示す図である。図7において、本発明の他の実施例によるプログラム10,20にはそれぞれ復号処理コード30,31を含んでおり、相互に解除する暗号化コード11〜13はプログラム10,20上ではなく、別に配設した共有領域50上にある。
【0042】
図7に示すように、プログラム10、20は共有領域50にある暗号化コード11〜13を解除し、それぞれの処理コードを実行していく。オペレーティングシステムの仕様で相手のプログラム上の暗号化コードの書き換えが困難な場合には、この方法によって上記と同様の効果が得られる。
【0043】
【発明の効果】
以上説明したように本発明によれば、各々対応する処理コードを暗号化した暗号化コードをその実行時に相互に解除する第1及び第2のプログラムで構築することによって、ソフトウェアデバッガによる動的なソフトウェア解析を不可能にすることができるという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例によるプログラムの構造を示す図である。
【図2】図1の暗号化をする前のプログラムを示す図である。
【図3】図1のプログラムが実行される順番を示す図である。
【図4】図1のプログラムが正しく動作している場合を示す図である。
【図5】図1のプログラムの動作を示すフローチャートである。
【図6】図1のプログラムが動的にデバッグされている場合を示す図である。
【図7】本発明の他の実施例によるプログラムの構造を示す図である。
【図8】従来の動的解析防止方法を示す図である。
【符号の説明】
1〜6 処理コード
11〜16 暗号化コード
11a,12a,
13a,14a,
15a,16a 解除コード
10,20 プログラム
30,31 復号処理コード
40 デバッガ
50 共有領域
Claims (10)
- コンピュータに実行されることで全体の処理動作を行うプログラムを格納する記録媒体であって、
前記全体の処理動作において奇数の順序で実行される処理コードを暗号化した複数の第1の暗号化コードを含む第1のプログラムと、
前記全体の処理動作において偶数の順序で実行される処理コードを暗号化した複数の第2の暗号化コードを含む第2のプログラムと
から構築され、
前記第1のプログラムは、前記第2の暗号化コードの暗号化を解除させるための第2の解除コードと、前記第2の解除コードで前記第2の暗号化コードの解除を行わせる第1の復号処理コードとを含み、
前記第2のプログラムは、前記第1の暗号化コードの暗号化を解除させるための第1の解除コードと、前記第1の解除コードで前記第1の暗号化コードの解除を行わせる第2の復号処理コードとを含み、
前記第1のプログラムは、前記コンピュータに、前記第2のプログラムによる前記第1の暗号化コードの暗号解除を実行させる間、予め算出した算出時間だけ前記第1のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記第1の暗号化コードの暗号解除の有無にかかわらず次の処理を実行させ、
前記第2のプログラムは、前記コンピュータに、前記第1のプログラムによる前記第2の暗号化コードの暗号解除を実行させる間、前記算出時間だけ前記第2のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記暗号解除の有無にかかわらず次の処理を実行させるようにしたことを特徴とするプログラムを格納する記録媒体。 - コンピュータに実行されることで全体の処理動作を行うプログラムを格納する記録媒体であって、
前記全体の処理動作において奇数の順序で実行される処理コードを暗号化した複数の第1の暗号化コードと、前記全体の処理動作において偶数の順序で実行される処理コードを暗号化した複数の第2の暗号化コードとを含む共有領域と、
前記第2の暗号化コードの解除を行わせる第1の復号処理コードを含む第1のプログラムと、
前記第1の暗号化コードの解除を行わせる第2の復号処理コードを含む第2のプログラムと
から構築され、
前記第1のプログラムは、前記コンピュータに、前記第2のプログラムによる前記第1の暗号化コードの暗号解除を実行させる間、予め算出した算出時間だけ前記第1のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記第1の暗号化コードの暗号解除の有無にかかわらず次の処理を実行させ、
前記第2のプログラムは、前記コンピュータに、前記第1のプログラムによる前記第2の暗号化コードの暗号解除を実行させる間、前記算出時間だけ前記第2のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記暗号解除の有無にかかわらず次の処理を実行させるようにしたことを特徴とするプログラムを格納する記録媒体。 - 前記第1のプログラムは、前記コンピュータに、前記第2の復号処理コードによって前記第1の暗号化コードの暗号化が解除された処理コードを実行させ、
前記第2のプログラムは、前記コンピュータに、前記第1の復号処理コードによって前記第2の暗号化コードの暗号化が解除された処理コードを実行させることを特徴とする請求項1または請求項2記載のプログラムを格納する記録媒体。 - 前記第1及び第2のプログラム各々は、ソフトウェアデバッガによる動的な解析で前記第1及び第2の暗号化コードの解除に遅れが生じた時に異常終了するよう構築したことを特徴とする請求項1から請求項3のいずれか記載のプログラムを格納する記録媒体。
- 前記第1及び第2のプログラムの起動時に、前記第2のプログラムによって1番目の暗号化コードを復号して得た1番目の処理コードを前記第1のプログラムにより実行させ、前記第1のプログラムによって2番目の暗号化コードを復号して得た2番目の処理コードを前記第2のプログラムにより実行させ、前記第1のプログラムによる処理コードの実行と前記第2のプログラムによる処理コードの実行とを交互に行わせるよう構築したことを特徴とする請求項1から請求項4のいずれか記載のプログラムを格納する記録媒体。
- 全体の処理動作をコンピュータに実行させるプログラムによる実行方法であって、
全体の処理動作において奇数の順序で実行される処理コードを暗号化した複数の第1の暗号化コードを含む第1のプログラムと、
前記全体の処理動作において偶数の順序で実行される処理コードを暗号化した複数の第2の暗号化コードを含む第2のプログラムと
によって構築されるプログラムにより実行され、
前記第1のプログラムは、前記第2の暗号化コードの暗号化を解除させるための第2の解除コードと、前記第2の解除コードで前記第2の暗号化コードの解除を行わせる第1の復号処理コードとを含み、
前記第2のプログラムは、前記第1の暗号化コードの暗号化を解除させるための第1の解除コードと、前記第1の解除コードで前記第1の暗号化コードの解除を行わせる第2の復号処理コードとを含み、
前記第1のプログラムは、前記コンピュータに、前記第2のプログラムによる前記第1の暗号化コードの暗号解除を実行させる間、予め算出した算出時間だけ前記第1のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記第1の暗号化コードの暗号解除の有無にかかわらず次の処理を実行させ、
前記第2のプログラムは、前記コンピュータに、前記第1のプログラムによる前記第2の暗号化コードの暗号解除を実行させる間、前記算出時間だけ前記第2のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記暗号解除の有無にかかわらず次の処理を実行させるようにしたことを特徴とするプログラムによる実行方法。 - 全体の処理動作をコンピュータに実行させるプログラムによる実行方法であって、
全体の処理動作において奇数の順序で実行される処理コードを暗号化した複数の第1の暗号化コードと、前記全体の処理動作において偶数の順序で実行される処理コードを暗号化した複数の第2の暗号化コードとを含む共有領域と、
前記第2の暗号化コードの解除を行わせる第1の復号処理コードを含む第1のプログラムと、
前記第1の暗号化コードの解除を行わせる第2の復号処理コードを含む第2のプログラムと
によって構築されるプログラムにより実行され、
前記第1のプログラムは、前記コンピュータに、前記第2のプログラムによる前記第1の暗号化コードの暗号解除を実行させる間、予め算出した算出時間だけ前記第1のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記第1の暗号化コードの暗号解除の有無にかかわらず次の処理を実行させ、
前記第2のプログラムは、前記コンピュータに、前記第1のプログラムによる前記第2の暗号化コードの暗号解除を実行させる間、前記算出時間だけ前記第2のプログラムにおける次の処理の実行を待機させ、前記算出時間が経過すると前記暗号解除の有無にかかわらず次の処理を実行させるようにしたことを特徴とするプログラムによる実行方法。 - 前記第1のプログラムは、前記コンピュータに、前記第2の復号処理コードによって前記第1の暗号化コードの暗号化が解除された処理コードを実行させ、
前記第2のプログラムは、前記コンピュータに、前記第1の復号処理コードによって前記第2の暗号化コードの暗号化が解除された処理コードを実行させることを特徴とする請求項6または請求項7記載のプログラムによる実行方法。 - 前記第1及び第2のプログラム各々は、ソフトウェアデバッガによる動的な解析で前記第1及び第2の暗号化コードの解除に遅れが生じた時に異常終了するようにしたことを特徴とする請求項6から請求項8のいずれか記載のプログラムによる実行方法。
- 前記第1及び第2のプログラムの起動時に、前記第2のプログラムによって1番目の暗号化コードを復号して得た1番目の処理コードを前記第1のプログラムにより実行させ、前記第1のプログラムによって2番目の暗号化コードを復号して得た2番目の処理コードを前記第2のプログラムにより実行させ、前記第1のプログラムによる処理コードの実行と前記第2のプログラムによる処理コードの実行とを交互に行わせるようにしたことを特徴とする請求項6から請求項9のいずれか記載のプログラムによる実行方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000136549A JP4186381B2 (ja) | 2000-05-10 | 2000-05-10 | プログラムを格納する記録媒体及びその実行方法 |
US09/846,833 US6934850B2 (en) | 2000-05-10 | 2001-05-01 | Program creation method and program execution method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000136549A JP4186381B2 (ja) | 2000-05-10 | 2000-05-10 | プログラムを格納する記録媒体及びその実行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001318786A JP2001318786A (ja) | 2001-11-16 |
JP4186381B2 true JP4186381B2 (ja) | 2008-11-26 |
Family
ID=18644475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000136549A Expired - Fee Related JP4186381B2 (ja) | 2000-05-10 | 2000-05-10 | プログラムを格納する記録媒体及びその実行方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6934850B2 (ja) |
JP (1) | JP4186381B2 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000293587A (ja) * | 1999-04-09 | 2000-10-20 | Sony Corp | 情報処理装置および方法、管理装置および方法、並びに提供媒体 |
US7346896B2 (en) * | 2002-04-22 | 2008-03-18 | Sun Microsystems, Inc. | Slowing network connection for application optimization |
CN100359425C (zh) * | 2002-08-01 | 2008-01-02 | 松下电器产业株式会社 | 用于解密已加密数据并在存储器空间中定位用于执行的解密数据的方法和设备 |
US20040064712A1 (en) * | 2002-09-27 | 2004-04-01 | Intel Corporation | Systems and methods for protecting media content |
US7426634B2 (en) * | 2003-04-22 | 2008-09-16 | Intruguard Devices, Inc. | Method and apparatus for rate based denial of service attack detection and prevention |
US7500108B2 (en) | 2004-03-01 | 2009-03-03 | Microsoft Corporation | Metered execution of code |
JP2006339988A (ja) * | 2005-06-01 | 2006-12-14 | Sony Corp | ストリーム制御装置、ストリーム暗号化/復号化装置、および、ストリーム暗号化/復号化方法 |
JP4727366B2 (ja) * | 2005-09-28 | 2011-07-20 | 株式会社デジタル | 情報処理装置、情報処理システム、プログラムおよび記録媒体 |
US8862893B2 (en) * | 2008-06-11 | 2014-10-14 | Microsoft Corporation | Techniques for performing symmetric cryptography |
JP5493235B2 (ja) * | 2011-10-04 | 2014-05-14 | 株式会社ハイパーテック | 処理装置及び処理方法 |
EP2831787B1 (en) | 2012-03-30 | 2020-07-08 | Irdeto B.V. | Method and system for preventing and detecting security threats |
US9172721B2 (en) | 2013-07-16 | 2015-10-27 | Fortinet, Inc. | Scalable inline behavioral DDOS attack mitigation |
JP6478724B2 (ja) * | 2015-03-09 | 2019-03-06 | Kddi株式会社 | 情報処理装置、情報処理方法、及びコンピュータプログラム |
US9973528B2 (en) | 2015-12-21 | 2018-05-15 | Fortinet, Inc. | Two-stage hash based logic for application layer distributed denial of service (DDoS) attack attribution |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58116571A (ja) * | 1981-12-29 | 1983-07-11 | 富士通株式会社 | マイクロコンピユ−タに於ける命令暗号化方式及びその実施に使用されるマイクロコンピユ−タ |
US6205550B1 (en) * | 1996-06-13 | 2001-03-20 | Intel Corporation | Tamper resistant methods and apparatus |
US5892899A (en) * | 1996-06-13 | 1999-04-06 | Intel Corporation | Tamper resistant methods and apparatus |
US6049613A (en) * | 1997-03-07 | 2000-04-11 | Jakobsson; Markus | Method and apparatus for encrypting, decrypting, and providing privacy for data values |
US6772419B1 (en) * | 1997-09-12 | 2004-08-03 | Hitachi, Ltd. | Multi OS configuration system having an interrupt process program executes independently of operation of the multi OS |
-
2000
- 2000-05-10 JP JP2000136549A patent/JP4186381B2/ja not_active Expired - Fee Related
-
2001
- 2001-05-01 US US09/846,833 patent/US6934850B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20010042209A1 (en) | 2001-11-15 |
JP2001318786A (ja) | 2001-11-16 |
US6934850B2 (en) | 2005-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4186381B2 (ja) | プログラムを格納する記録媒体及びその実行方法 | |
JP3779837B2 (ja) | コンピュータ及びプログラム記録媒体 | |
US7215771B1 (en) | Secure disk drive comprising a secure drive key and a drive ID for implementing secure communication over a public network | |
JP4451884B2 (ja) | コンピュータ保安装置、コンピュータ保安方法、及び記録媒体 | |
CN100452075C (zh) | 软件保护装置数据传输过程的安全控制方法及其设备 | |
KR101054318B1 (ko) | 정보 처리 시스템 및 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체 | |
CN106663163B (zh) | 保障音频通信安全 | |
CN1909447B (zh) | 使用动态加密算法进行网络数据通讯的方法 | |
EP1126355A1 (en) | Method and system for distributing programs using tamper resistant processor | |
US7464171B2 (en) | Effective protection of computer data traffic in constrained resource scenarios | |
US20090183263A1 (en) | Simultaneous tamper-proofing and anti-piracy protection of software | |
CN113268715A (zh) | 软件加密方法、装置、设备及存储介质 | |
JP2009501470A (ja) | マルチメディア・データの保護 | |
JPH08166879A (ja) | 提供用ソフトウェアの安全性強化方法及び装置 | |
EP3683712B1 (en) | Protecting integrity of log data | |
KR20010032955A (ko) | 상이한 어드레스 공간에서 다른 프로세스를 인증하는 방법및 장치 | |
CN101278517B (zh) | 安全设备和建立分组功能 | |
Kotov et al. | Understanding crypto-ransomware | |
WO2007086469A1 (ja) | 情報通信システム | |
Whittaker | Why secure applications are difficult to write | |
JP2002244989A (ja) | デバイスドライバ作動方法 | |
US7636838B2 (en) | Method and system for handling operation of multiple devices within a single system-on-chip (SoC) integrated circuit (IC) | |
JP2009252142A (ja) | データ処理装置 | |
JP2002082732A (ja) | プログラムコードの不正改竄防止システム及びその方法並びにその制御プログラムを記録した記録媒体 | |
CN113507479B (zh) | 针对web代码和数据的网关型加解密透明sdk方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20051213 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070524 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071211 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080304 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080407 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080520 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080722 |
|
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: 20080819 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080901 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110919 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120919 Year of fee payment: 4 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120919 Year of fee payment: 4 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120919 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120919 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120919 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120919 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130919 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |