JPH11353172A - インタプリタ言語で記述されたプログラムの記録媒体 - Google Patents

インタプリタ言語で記述されたプログラムの記録媒体

Info

Publication number
JPH11353172A
JPH11353172A JP10159559A JP15955998A JPH11353172A JP H11353172 A JPH11353172 A JP H11353172A JP 10159559 A JP10159559 A JP 10159559A JP 15955998 A JP15955998 A JP 15955998A JP H11353172 A JPH11353172 A JP H11353172A
Authority
JP
Japan
Prior art keywords
script
program
text
recording medium
format
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.)
Pending
Application number
JP10159559A
Other languages
English (en)
Inventor
Kenji Funakoshi
健治 船越
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sumitomo Electric Industries Ltd
Original Assignee
Sumitomo Electric Industries Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sumitomo Electric Industries Ltd filed Critical Sumitomo Electric Industries Ltd
Priority to JP10159559A priority Critical patent/JPH11353172A/ja
Publication of JPH11353172A publication Critical patent/JPH11353172A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Devices For Executing Special Programs (AREA)

Abstract

(57)【要約】 【課題】スクリプトを解読困難な形式で配布することが
できる記録媒体を提供する。 【解決手段】スクリプトに対してビット単位またはバイ
ト単位の符号化処理を施すことにより、スクリプトを非
テキストスクリプトに変換し、この変換後の非テキスト
スクリプトを記録媒体に記録するようにした。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、インタプリタ言
語で記述されたテキスト形式のプログラム(スクリプ
ト)を解読困難な形式で配布するために使用する記録媒
体に関し、特にスクリプトを商用配布ソフトウエアのソ
ースプログラムとする場合における記録媒体に関する。
【0002】なお、この明細書において、「非テキスト
形式」とはテキスト形式でもなくまた機械語で記述され
た形式でもない場合を表し、「バイナリ形式」とは機械
語で記述された形式を表すものとする。また「配布」と
は、CD−ROM,MO,DVD,ハードディスク等に
記録してそれ自体を配布したり、WWWサーバやFTP
サーバに記録して通信により配布する場合の両方を含む
ものとする。
【0003】
【従来の技術】コンピュータにより実行されるプログラ
ムは、一般に、いわゆる高級言語と言われるプログラム
言語で記述される。プログラム言語は、記述の容易さ、
実行処理効率のよさ、バグの混入しにくさ、特定用途へ
の適合性、新しいソフトウエア技術の実証など様々な目
的に応じて開発されており、プログラミングの際には、
目的に応じた適切なプログラム言語が選択される。
【0004】たとえば商用配布されるソフトウエアのプ
ログラム言語としては、通常、C言語に代表されるコン
パイラ言語が選択される。コンパイラ言語で記述された
ソースプログラムは、コンパイラにより機械語のオブジ
ェクトプログラムに一括変換され、この状態でCD−R
OMなどに記録されて配布される。したがって、配布後
のプログラムのデータ構造やアルゴリズムを解読するこ
とは非常に困難であり、プログラムの改造や類似ソフト
の開発などを防ぐことができる。ゆえに、商用配布に適
している。ただし、コンパイラ言語でソースプログラム
を作成する際には、簡単な処理でも多数行にわたる命令
を記述する必要があり、ソフトウエア開発の容易さとい
う点では不利である。
【0005】また、商用配布ではなく、教育用やフリー
ウエアなどのように情報開示を前提にする場合や、たと
えばシステム管理者が管理作業の軽減を目的として開発
し使用する場合などには、通常、Perlに代表される
インタプリタ言語が選択される。インタプリタ言語で記
述されたプログラム(以下「スクリプト」という。)
は、インタプリタにより逐一解釈され実行される。した
がって、実行途中でバグが発生した場合にはプログラム
の実行が自動的に停止するから、デバックも容易であ
る。さらには、たとえば同じ文字列操作の処理をコンパ
イラ言語で記述する場合に比べて、非常に簡単にプログ
ラミングすることができる。
【0006】
【発明が解決しようとする課題】このように、プログラ
ム言語は、用途に応じて棲み分けが進んでいる。また、
コンパイラ言語およびインタプリタ言語は、それぞれ、
用途に応じた言語仕様となっている。たとえば、インタ
プリタ言語はインタプリタ上で実行されることを前提に
設計された言語であり、したがってプログラム中におい
て変数を宣言せずに使用できる言語が多いなど、言語仕
様がコンパイルに適した仕様とはなっていない。そのた
め、スクリプトを機械語に変換可能にしようとする試み
は行われていなかった。ゆえに、機械語に変換してから
配布することを前提としている商用配布のためのソフト
ウエアを開発するために、あえてインタプリタ言語を用
いるというようなことも考えられることはなかった。
【0007】一方、インタプリタ言語を商用配布ソフト
ウエアの開発言語として用いれば、上述のように、ソフ
トウエア開発が容易になるなどのメリットを享受できる
ので、商用配布されるソフトウエアの開発コストを大幅
に削減できるという大きなメリットがある。そこで、本
願発明者は、インタプリタ言語を商用配布ソフトウエア
の開発言語として用いることを考えた。
【0008】しかしながら、スクリプトは、通常、テキ
スト形式で配布されるので、一般に普及しているテキス
トエディタを用いれば、プログラムのデータ構造やアル
ゴリズムなどを容易に解読できる。そのため、プログラ
ムの改造や類似ソフトの開発を防止することができず、
開発メーカに対して多大な損害が生じるおそれがあると
いう問題がある。
【0009】そこで、この発明の目的は、上述の技術的
課題を解決し、スクリプトを解読困難な形式で配布する
ことができる記録媒体を提供することである。
【0010】
【課題を解決するための手段および発明の効果】上記目
的を達成するための請求項1記載の発明は、インタプリ
タにより解釈実行されるべきインタプリタ言語で記述さ
れたテキスト形式のプログラム(以下「スクリプト」と
いう。)を解読困難な形式で配布するために使用する記
録媒体であって、スクリプトに対して所定の符号化処理
を施すことにより作成された非テキスト形式のプログラ
ム(以下「非テキストスクリプト」という。)と、この
非テキストスクリプトを実行するためのバイナリ形式の
実行プログラムとが記録されており、上記実行プログラ
ムは、上記非テキストスクリプトに対して上記符号化処
理の反対の処理である復号化処理を施すことにより上記
スクリプトを復元するための復号化プログラムと、この
復号化プログラムにより復元されたスクリプトを上記イ
ンタプリタに渡すためのスクリプト提供プログラムとを
含むものであることを特徴とする記録媒体である。
【0011】この発明によれば、スクリプトは非テキス
ト形式で記録媒体に記録されるから、配布後の記録媒体
に記録されているプログラムをたとえばテキストエディ
タなどで開いても、表示されるのは非テキスト形式のプ
ログラムだけである。したがって、配布後のプログラム
を解読することはできない。具体的には、プログラムの
データ構造、アルゴリズム、内部設計仕様、関連ファイ
ルの仕様、および、設計された事項を特定の言語でどの
ようにプログラムとして実装(実現)したのかなどの情
報を読み取ることはできない。そのため、プログラムの
改造や類似ソフトの開発などを防止することができる。
ゆえに、開発メーカの損害を回避できるから、開発メー
カの利益を防衛することができる。
【0012】また、実行プログラムと実行対象である非
テキストスクリプトとが別のプログラムとなっているか
ら、たとえば複数種類のスクリプトがある場合であって
も、実行プログラムを共用できる。そのため、プログラ
ムの記録容量の節約を図ることができる。
【0013】また、復号化プログラムが非テキストスク
リプトと一緒に配布されるが、復号した結果は実行プロ
グラムに直接渡されるのでユーザの目に触れることはな
い。したがって、同業者は復号化されたスクリプトを得
ることができない。
【0014】なお、この発明では、非テキストスクリプ
トを作成するために、スクリプトをバイト単位またはビ
ット単位で単に符号化しているだけであり、プログラム
のデータ構造やアルゴリズムを意味的に理解して機械語
に変換しているわけではない。したがって、コンパイラ
の開発は不要であり、この点においてインタプリタ言語
を用いる際の開発容易というメリットが失われることは
ない。
【0015】請求項2記載の発明は、スクリプトに対し
て所定の符号化処理を施すことにより作成された非テキ
スト形式のプログラム(以下「非テキストスクリプト」
という)と、この非テキストスクリプトに対して上記符
号化処理の反対の処理である復号化処理を施すことによ
り元のスクリプトを復元するための復号化プログラム
と、この復号化プログラムにより復元されたスクリプト
を上記インタプリタに提供するためのスクリプト提供プ
ログラムとを含むバイナリ形式の実行プログラムが記録
されていることを特徴とする。
【0016】この発明によれば、スクリプトは非テキス
ト形式で記録されるから、上記請求項1記載の発明と同
様に、配布後のプログラムをテキストエディタなどで開
いても、プログラムのデータ構造などが解読されること
はなく、その結果プログラムの改造および類似ソフトの
開発などを防止できる。
【0017】また、この発明では、実行プログラムと実
行対象である非テキストスクリプトとが1つのプログラ
ムに収まっているから、実行プログラムは、実行対象プ
ログラムの所在を意識する必要がない。そのため、ファ
イル管理が容易になる。請求項3記載の発明は、スクリ
プトと、このスクリプトを上記インタプリタに提供する
ためのスクリプト提供プログラムとを含むバイナリ形式
の実行プログラムが記録されたことを特徴とする。
【0018】この発明では、実行プログラム内にスクリ
プトがテキスト形式のまま含まれている。しかし、この
実行プログラムをテキストエディタなどで開いても、表
示されるのはバイナリである。したがって、上記請求項
1記載の発明と同様に、プログラムのデータ構造などが
解読されることはなく、その結果プログラムの改造およ
び類似ソフトの開発などを防止できる。
【0019】請求項4記載の発明は、スクリプトは、A
SCIIコードで記述されているものであり、上記符号
化処理は、ASCIIコードのビットを反転することに
よりスクリプトを符号化するものであることを特徴とす
る。
【0020】この発明によれば、ASCIIコードのビ
ットを反転しているから、そのデータは、もはやASC
IIコードとして認識されることはない。したがって、
スクリプトを良好に符号化することができる。
【0021】なお、ASCIIコードでは、通常、最上
位ビットは情報表現に用いられることはなく、残余の7
ビットでアルファベットおよび数字が表現される。一
方、ASCIIコードを認識すべきコンピュータは、通
常、8ビットを1単位としてデータを処理する。したが
って、たとえば請求項5記載の発明のように、上記反転
されるべきビットをASCIIコードの最上位ビットと
しておくだけでも、そのデータをASCIIコードとし
て認識させないようにすることができるとともに、情報
破壊のおそれがない。
【0022】請求項6記載の発明は、スクリプトは、A
SCIIコードで記述されたものであり、上記符号化処
理は、ASCIIコードの各ビットをずらすことにより
スクリプトを符号化するものであることを特徴とする。
【0023】また、請求項7記載の発明は、スクリプト
は、ASCIIコードで記述されたものであり、上記符
号化処理は、ASCIIコードの各ビットを他の7つの
ASCIIコードの最上位ビットに分散させることによ
りスクリプトを符号化するものであることを特徴とす
る。
【0024】上述したように、ASCIIコードの最上
位ビットは情報表現に用いられることはなく、またコン
ピュータは8ビットを1単位としてデータを処理するか
ら、請求項6または請求項7記載の発明のように、AS
CIIコードの各ビットをずらし、または、ASCII
コードの各ビットを他の7つのASCIIコードの最上
位ビットに分散させれば、各データをASCIIコード
として認識させないようにすることができる。したがっ
て、この構成によっても、スクリプトを良好に符号化す
ることができる。
【0025】また、元々8個のASCIIコードが7個
に減少しているから、情報を圧縮でき、これによりプロ
グラムのデータ量を小さくすることができる。
【0026】請求項8記載の発明は、スクリプトは、A
SCIIコードで記述されたものであり、上記符号化処
理は、ASCIIコードと所定のビット列またはランダ
ムに発生されたビット列との排他的論理和を演算するこ
とによりスクリプトを符号化するものであることを特徴
とする。
【0027】この発明によっても、ASCIIコードと
ビット列との排他的論理和が演算されることにより元の
データをASCIIコードと認識させないようにできる
から、スクリプトを良好に符号化することができる。
【0028】請求項9記載の発明は、上記符号化処理
は、スクリプトをハフマン符号化方式により符号化する
ものであることを特徴とする。
【0029】この発明によっても、スクリプトを良好に
符号化することができる。また、復号化処理を簡単に行
うことができる。
【0030】請求項10記載の発明は、上記符号化処理
は、スクリプトに対してDESまたはRSAの暗号処理
を施すことによりスクリプトを符号化するものであるこ
とを特徴とする。
【0031】この発明では、スクリプトが暗号化される
ことにより符号化される。したがって、単に符号化する
よりもASCIIコードへの復元を行いにくくすること
ができる。そのため、スクリプトを一層良好に符号化す
ることができる。請求項11記載の発明は、上記符号化
処理は、上記スクリプトに対して回転および区分分割方
式の処理を施すことによりスクリプトを符号化するもの
であることを特徴とする。
【0032】この発明によっても、スクリプトを良好に
符号化することができる。また、復号化処理を簡単に行
うことができる。
【0033】
【発明の実施の形態】以下では、この発明の実施の形態
を、添付図面を参照して詳細に説明する。
【0034】図1は、この発明の第1実施形態に係るC
D−ROMが装填されるべきコンピュータの構成を示す
ブロック図である。このコンピュータは、ワードプロセ
ッサおよび表計算などのアプリケーション機能を実現す
るアプリケーションプログラムを実行するためのもの
で、このコンピュータの制御中枢として機能するCPU
を有する制御部1と、アプリケーションプログラムが記
録されたCD−ROM2が装填されるCD−ROMドラ
イブ3と、CD−ROM2に記録されているアプリケー
ションプログラムのインストール先であるハードディス
ク4と、ディスプレイおよびキーボードなど各種の入出
力機器5とを備えている。
【0035】制御部1は、ワークエリアとしてのRAM
6を有している。制御部1は、ハードディスク4にイン
ストールされているアプリケーションプログラムを実行
する場合、当該アプリケーションプログラムをRAM6
にいったん移し、このRAMにおいてデータを受け渡し
たり加工したりすることにより、上述したようなアプリ
ケーション機能を実現する。
【0036】図2は、CD−ROM2に記録されている
アプリケーションプログラムのファイル構成を概念的に
示す図である。このアプリケーションプログラムは、P
erlに代表されるインタプリタ言語で記述されたテキ
スト形式のプログラム(以下「スクリプト」という。)
に相当する非テキストスクリプトおよびこの非テキスト
スクリプトを実行するためのバイナリ形式の実行プログ
ラムをそれぞれ別のプログラムとして有するとともに、
スクリプトを逐一解釈して実行するためのインタプリタ
を有している。
【0037】なお、Perlなどの汎用的なインタプリ
タ言語でスクリプトが記述され、かつ、ユーザが汎用イ
ンタプリタを既に所有している確率が高い場合、およ
び、有償無償にかかわらず汎用インタプリタを簡単に入
手できる環境にある場合には、インタプリタをCD−R
OM2に記録しておく必要は必ずしもない。ただし、専
用のインタプリタでなければ実行できないようなスクリ
プトであれば、専用インタプリタをCD−ROM2に記
録しておく必要がある。
【0038】非テキストスクリプトおよび実行プログラ
ムは、符号化プログラムにより作成される。この作成手
順をより詳述すれば、図3に示すように、作成されたス
クリプトは、符号化プログラムに入力される。符号化プ
ログラムは、入力されたスクリプトに対して所定の符号
化処理を施し、非テキスト形式のプログラムである非テ
キストスクリプトを作成する。
【0039】符号化処理は、一種の暗号化処理であり、
たとえば図4に示すように、ASCII(American stan
dard code for information interchange)コードの最上
位ビットの「0」を「1」に反転する処理である。スク
リプトは、通常、ASCIIコードで記述される。AS
CIIコードは、図4(a) に示すように、最上位ビット
を「0」とし、残余の7ビットでアルファベットおよび
数字を表現しているものであるから、実質的に、最上位
ビットを除く7ビットで情報が表現されている。一方、
コンピュータでは、8ビットを1単位として情報を認識
するから、図4(b) に示すように、最上位ビットの
「0」を「1」に反転するだけで、その1バイトの情報
は、もはやASCIIコードとは認識されなくなる。し
かも、情報表現に用いていない最上位ビットを反転して
いるだけであるから、情報破壊のおそれもまったくな
い。
【0040】図2および図3に戻って、符号化プログラ
ムは、また、このようにして作成された非テキストスク
リプトを実行するための実行プログラムをバイナリ形式
で作成する。より具体的には、符号化プログラムは、非
テキストスクリプトを復号化するための復号化プログラ
ムおよび復号化プログラムによって復号化された結果復
元されたスクリプトをインタプリタに渡すためのスクリ
プト提供プログラムを作成する。この場合、復号化プロ
グラムおよびスクリプト提供プログラムは、機械語で記
述される。
【0041】復号化プログラムにおける復号化処理とし
ては、上述の符号化方式の反対の処理に相当するものが
適用される。具体的には、ASCIIコードの最上位ビ
ットを「1」から「0」に反転する処理である。したが
って、この復号化処理が行われた後の1バイトの情報
は、ASCIIコードとして認識されることになる。
【0042】なお、スクリプトの符号化処理としては、
たとえばASCIIコードの最上位ビット以外の1また
は複数のビットを反転させる処理が考えられる。この構
成によっても、符号化後の情報をASCIIコードと認
識させないようにすることができるから、良好な符号化
を達成できる。また、この場合における復号化処理は、
反転された1または複数のビットをさらに反転させて元
に戻す処理が用いられることは言うまでもない。
【0043】符号化プログラムは、上述のようにして作
成された非テキストスクリプトおよび実行プログラムを
それぞれ別のプログラムとして出力する。
【0044】次に、このコンピュータによりスクリプト
が実行される処理について簡単に説明する。CD−RO
M2に記録されているアプリケーションプログラムがハ
ードディスク4にインストールされた後、当該アプリケ
ーションプログラムの実行がキーボードなどから指示さ
れると、バイナリ形式の実行プログラムが起動する。具
体的には、実行プログラムの一部である復号化プログラ
ムが非テキストスクリプトを呼び出し、この非テキスト
スクリプトに対して復号化処理を施す。その結果、スク
リプトが復元される。
【0045】その後、復号化プログラムは、復元された
スクリプトをスクリプト提供プログラムに渡す。スクリ
プト提供プログラムは、受け取ったスクリプトをインタ
プリタに渡す。この場合、スクリプト提供プログラムか
らインタプリタへのスクリプトの渡し方としては、たと
えば、スクリプト提供プログラムが制御部1内に備えら
れているRAM6にスクリプトを保持させ、この保持さ
れているスクリプトをスクリプト提供プログラムが読み
出してインタプリタに渡すということが考えられる。ま
た、スクリプト提供プログラムとインタプリタとのプロ
グラム間(プロセス間)通信を利用してスクリプトをイ
ンタプリタに渡したり、一時ファイルを介してスクリプ
トをインタプリタに渡したりすることが考えられる。
【0046】スクリプトを受け取ったインタプリタは、
スクリプトを逐一解釈しながら実行する。これにより、
このアプリケーションプログラムにより実現されるべき
アプリケーション機能が実現される。
【0047】以上のようにこの第1実施形態によれば、
スクリプトを非テキスト形式に変換してCD−ROM2
に記録しているから、配布後のCD−ROM2に記録さ
れているプログラムをテキストエディタなどで読み出し
ても、プログラムはバイナリ形式でしか表示されない。
したがって、スクリプトを解読することはできない。そ
のため、プログラムの改造や類似ソフトの開発などを防
止できる。ゆえに、開発メーカは、スクリプトを商用配
布をしても損害を被ることはないから、商用配布ソフト
ウエアの開発コストを大幅に削減することができる。
【0048】また、実行プログラムと非テキストスクリ
プトとを別プログラムとしているから、非テキストスク
リプトを異なる処理を実現するものに変更すれば、同じ
実行プログラムであっても異なる処理を実行させること
ができる。したがって、複数の異なる処理を実行させた
い場合には、実行プログラムを共用できるから、プログ
ラム全体の容量を小さくできる。そのため、CD−RO
M2およびハードディスク4を効率的に利用することが
できる。
【0049】図5は、この発明の第2実施形態に係るC
D−ROM2に記録されているアプリケーションプログ
ラムの一部を構成する非テキストスクリプトおよび実行
プログラムの作成手順を説明するための図である。
【0050】上記第1実施形態では、非テキストスクリ
プトおよび実行プログラムを別プログラムとしているの
に対して、この第2実施形態では、非テキストスクリプ
トを実行プログラムに内包させ、1つのプログラムとし
ている。このプログラムの作成は、符号化プログラム
を、非テキストスクリプトを実行プログラムの一部のデ
ータ領域に埋め込んで1つのプログラムとして出力する
ようにプログラミングすることにより達成される。
【0051】以上のようにこの第2実施形態によれば、
バイナリ形式の実行プログラムにスクリプトに相当する
非テキストスクリプトを内包させ、1つのプログラムで
処理に必要なプログラムを完結させている。したがっ
て、実行プログラムは、実行対象の非テキストスクリプ
トの所在を意識する必要がない。そのため、プログラム
管理が容易になる。
【0052】なお、この第2実施形態では、非テキスト
スクリプトを実行プログラムに埋め込むようにしてい
る。しかし、たとえば図6に示すように、スクリプトを
テキスト形式のまま実行プログラムの所定のデータ領域
に埋め込んでもよい。この場合、配布後のアプリケーシ
ョンプログラムをテキストエディタなどで見ようとして
も、実際に表示されるのは機械語の実行プログラムであ
るから、テキスト形式であるスクリプトを簡単に見るこ
とはできない。したがって、スクリプトの解読をある程
度防げる。
【0053】ただし、アプリケーションプログラムをテ
キストエディタなどで無理矢理開き、プログラム内を強
引に捜していけば、スクリプトが表示される危険性があ
る。したがって、このようなことを確実に回避するため
には、上述のように、スクリプトを符号化した状態で実
行プログラムに埋め込む方が好ましい。
【0054】なお、スクリプトをテキスト形式のまま実
行プログラムに埋め込む場合、実行プログラムは、スク
リプトをそのままスクリプト提供プログラムに渡すだけ
で、スクリプト提供プログラムからインタプリタにスク
リプトが渡されるから、復号化プログラムは不要とな
る。そのため、もしも解読される危険性を多少犠牲にし
ても、プログラムの記録容量を小さくすることを重要視
するのであれば、スクリプトをテキスト形式のまま実行
プログラムに埋め込むようにする方がよい。
【0055】また、上記第1および第2実施形態では、
符号化プログラムの出力をそのままCD−ROM2に記
録すべきプログラムとする場合を例にとって説明してい
る。しかし、たとえば符号化プログラムの出力を中間プ
ログラムとし、この中間プログラムから最終プログラム
を作成し、この作成された最終プログラムをCD−RO
M2に記録すべきプログラムとしてもよい。
【0056】さらに詳述すれば、たとえば図7に示すよ
うに、符号化プログラムは、非テキストスクリプトを作
成するとともに、C言語などのコンパイラ言語で記述さ
れるソースプログラムを作成し、各プログラムをそれぞ
れ別プログラムとして出力する。この場合、ソースプロ
グラムは、復号化プログラムおよびスクリプト提供プロ
グラムを含む実行プログラムである。符号化プログラム
から出力されたソースプログラムは、汎用コンパイラに
よりコンパイルされる。その結果、バイナリ形式の実行
プログラムが作成される。そして、このバイナリ形式の
実行プログラムと非テキストスクリプトとを最終プログ
ラムとし、CD−ROM2に記録する。
【0057】以上の構成は、非テキストスクリプトと実
行プログラムとを別プログラムとしてCD−ROM2に
記録する場合を例にとったものである。しかし、たとえ
ば図8に示すように、非テキストスクリプトを実行プロ
グラムに内包した1つのプログラムを最終プログラムと
してもよい。
【0058】すなわち、符号化プログラムは、ASCI
Iコードで表現された非テキストスクリプト、および、
コンパイラ言語で記述される実行プログラムとしてのソ
ースプログラムを作成し、ソースプログラムの一部のデ
ータ領域にASCII表現の非テキストスクリプトを埋
め込んで1つのプログラムとして出力する。符号化プロ
グラムから出力される1つのプログラムは、汎用コンパ
イラによりコンパイルされる。その結果、バイナリ形式
の実行プログラムに非テキストスクリプトが内包された
1つのプログラムが作成される。この1つのプログラム
を最終プログラムとしてCD−ROM2に記録する。
【0059】さらに、上記実施形態では、符号化プログ
ラムとして、スクリプトの符号化とともに実行プログラ
ムの作成をも行うようにプログラミングされているもの
を例にとって説明している。しかし、たとえば図9に示
すように、スクリプト以外に、コンパイラ言語で記述さ
れた実行プログラムを作成しておき、スクリプトを符号
化プログラムにより符号化して非テキストスクリプトを
作成するとともに、実行プログラムを汎用コンパイラに
よりコンパイルしてバイナリ形式の実行プログラムを作
成する。そして、これら作成された非テキストスクリプ
トおよびバイナリ形式の実行プログラムをそれぞれ最終
プログラムとしてCD−ROM2に記録するようにして
もよい。
【0060】この発明の実施の形態の説明は以上のとお
りであるが、この発明は上述の実施形態に限定されるも
のではない。たとえば上記実施形態では、ASCIIコ
ードのビットを反転することによりスクリプトを符号化
しているが、たとえばASCIIコードの各ビットをず
らすことによりスクリプトを符号化するようにしてもよ
い。
【0061】図10および図11を参照して詳述する。
なお、図10では、「a」ないし「h」は、それぞれ、
第1ないし第8ASCIIコードのデータである。AS
CIIコードは、通常、図10に示されるように、
「0」を最上位ビットとし、残余の7ビットで英数字を
表現している。したがって、最上位ビットは情報とは無
関係である。そこで、図11に示すように、第1バイト
目の第1ASCIIコードの7ビットのデータ「a」を
最上位ビットから詰めていく。すると、第1ASCII
コードの最下位ビットが空く。この最下位ビットに第2
バイト目の第2ASCIIコードの最上位ビットの
「b」を挿入し、第2ASCIIコードの第2のビット
から最下位ビットまでを第2ASCIIコードの最上位
ビットから順に詰めていく。このような処理を順に繰り
返し実行する。その結果、各1バイトの情報はASCI
Iコードではなくなる。これにより、スクリプトの符号
化を達成できる。
【0062】また、たとえば図12で示すように、第8
ASCIIコードの各データ「h」を他の7つの第1な
いし第7ASCIIコードの最上位ビットに1ビットず
つ分散してもよい。このようにしても、各1バイトの情
報はもはやASCIIコードではないから、スクリプト
の符号化を達成することができる。
【0063】さらに、ASCIIコードと所定のビット
列との排他的論理和を演算することによりスクリプトを
符号化するようにしてもよい。また、ランダムに発生さ
れるビット列とASCIIコードとの排他的論理和を演
算することによりスクリプトを符号化してもよいことは
もちろんである。この場合であっても、各1バイトの情
報はASCIIコードではなくなる。
【0064】さらにまた、ハフマン符号化方式を用いて
スクリプトを符号化するようにしてもよい。この場合で
あっても、各1バイトの情報はASCIIコードではな
くなる。また、復号化処理が軽くなるという利点もあ
る。さらに、DES(Data encryption standard)または
RSAなどの暗号方式を用いてスクリプトを符号化する
ようにしてもよい。この構成によれば、スクリプトが暗
号化されるから、解読が一層困難になり、プログラムの
改造や類似ソフトの開発を確実に防ぐことができる。
【0065】さらにまた、回転および区分分割方式の処
理を施すことによりスクリプトを符号化するようにして
もよい。この構成によっても、スクリプトを良好に符号
化することができるから、プログラムの改造や類似ソフ
トの開発を確実に防ぐことができる。
【0066】さらに、上記実施形態では、この発明をC
D−ROM2に適用する場合を例にとって説明している
が、この発明は、DVD(Digital video disk)、MO(M
agneto optical) ディスクなどの携帯型記録媒体に対し
ても容易に適用することができる。また、ハードディス
ク4などの固定型記録媒体に対しても容易に適用するこ
とができる。
【0067】この発明を固定型記録媒体に適用する場合
の代表的な利用例としては、たとえばインターネットの
プロバイダおよび企業が保有しているWWW(world wi
de web)サーバおよびFTP(file transfer protcol
)サーバなどにアプリケーションプログラムを記録し
ておき、このサーバにアクセスしてきたクライアントと
してのパーソナルコンピュータなどにアプリケーション
プログラムを有料でダウンロードできるようにしておく
ことが考えられる。
【0068】その他、特許請求の範囲に記載された範囲
において種々の設計変更を施すことが可能である。
【図面の簡単な説明】
【図1】この発明の第1実施形態に係るCD−ROMが
適用されるコンピュータの構成を示すブロック図であ
る。
【図2】CD−ROMに記録されているアプリケーショ
ンプログラムのプログラム構成を示す概念図である。
【図3】CD−ROMに記録すべきプログラムの作成処
理を説明するための図である。
【図4】スクリプトの符号化処理を説明するための図で
ある。
【図5】この発明の第2実施形態に係るCD−ROMに
記録されているアプリケーションプログラムのプログラ
ム構成を示す概念図である。
【図6】この発明の第2実施形態に対する変形例として
のCD−ROMに記録されているアプリケーションプロ
グラムの一部を構成する非テキストスクリプトおよび実
行プログラムの作成手順を説明するための図である。
【図7】CD−ROMに記録すべきプログラムの作成処
理の他の例を説明するための図である。
【図8】CD−ROMに記録すべきプログラムの作成処
理のさらに他の例を説明するための図である。
【図9】CD−ROMに記録すべきプログラムの作成処
理のさらに他の例を説明するための図である。
【図10】ASCIIコードの一例を示す図である。
【図11】この発明の他の実施形態に係る符号化処理に
ついて説明するための図である。
【図12】この発明のさらに他の実施形態に係る符号化
処理について説明するための図である。
【符号の説明】
1 制御部 2 CD−ROM 3 CD−ROMドライブ 4 ハードディスク 5 入出力機器 6 RAM

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】インタプリタにより解釈実行されるべきイ
    ンタプリタ言語で記述されたテキスト形式のプログラム
    (以下「スクリプト」という。)を解読困難な形式で配
    布するために使用する記録媒体であって、 スクリプトに対して所定の符号化処理を施すことにより
    作成された非テキスト形式のプログラム(以下「非テキ
    ストスクリプト」という。)と、 この非テキストスクリプトを実行するためのバイナリ形
    式の実行プログラムとが記録されており、 上記実行プログラムは、上記非テキストスクリプトに対
    して上記符号化処理の反対の処理である復号化処理を施
    すことにより上記スクリプトを復元するための復号化プ
    ログラムと、この復号化プログラムにより復元されたス
    クリプトを上記インタプリタに渡すためのスクリプト提
    供プログラムとを含むものであることを特徴とする記録
    媒体。
  2. 【請求項2】インタプリタにより解釈実行されるべきイ
    ンタプリタ言語で記述されたテキスト形式のプログラム
    (以下「スクリプト」という。)を解読困難な形式で配
    布するために使用する記録媒体であって、 スクリプトに対して所定の符号化処理を施すことにより
    作成された非テキスト形式のプログラム(以下「非テキ
    ストスクリプト」という)と、 この非テキストスクリプトに対して上記符号化処理の反
    対の処理である復号化処理を施すことにより元のスクリ
    プトを復元するための復号化プログラムと、 この復号化プログラムにより復元されたスクリプトを上
    記インタプリタに提供するためのスクリプト提供プログ
    ラムとを含むバイナリ形式の実行プログラムが記録され
    ていることを特徴とする記録媒体。
  3. 【請求項3】インタプリタにより解釈実行されるべきイ
    ンタプリタ言語で記述されたテキスト形式のプログラム
    (以下「スクリプト」という。)を解読困難な形式で配
    布するために使用する記録媒体であって、 上記スクリプトと、 このスクリプトを上記インタプリタに提供するためのス
    クリプト提供プログラムとを含むバイナリ形式の実行プ
    ログラムが記録されたことを特徴とする記録媒体。
  4. 【請求項4】スクリプトは、ASCIIコードで記述さ
    れているものであり、 上記符号化処理は、ASCIIコードのビットを反転す
    ることによりスクリプトを符号化するものであることを
    特徴とする請求項1または請求項2記載の記録媒体 。
  5. 【請求項5】上記反転されるべきビットは、ASCII
    コードの最上位ビットであることを特徴とする請求項4
    記載の記録媒体。
  6. 【請求項6】スクリプトは、ASCIIコードで記述さ
    れているものであり、 上記符号化処理は、ASCIIコードの各ビットをずら
    すことによりスクリプトを符号化するものであることを
    特徴とする請求項1または請求項2記載の記録媒体。
  7. 【請求項7】スクリプトは、ASCIIコードで記述さ
    れているものであり、 上記符号化処理は、ASCIIコードの各ビットを他の
    7つのASCIIコードの最上位ビットに分散させるこ
    とによりスクリプトを符号化するものであることを特徴
    とする請求項1または請求項2記載の記録媒体。
  8. 【請求項8】スクリプトは、ASCIIコードで記述さ
    れているものであり、 上記符号化処理は、ASCIIコードと所定のビット列
    またはランダムに発生されたビット列との排他的論理和
    を演算することによりスクリプトを符号化するものであ
    ることを特徴とする請求項1または請求項2記載の記録
    媒体。
  9. 【請求項9】上記符号化処理は、スクリプトをハフマン
    符号化方式により符号化するものであることを特徴とす
    る請求項1または請求項2記載の記録媒体。
  10. 【請求項10】上記符号化処理は、スクリプトに対して
    DESまたはRSAの暗号処理を施すことによりスクリ
    プトを符号化するものであることを特徴とする請求項1
    または請求項2記載の記録媒体。
  11. 【請求項11】上記符号化処理は、上記スクリプトに対
    して回転および区分分割方式の処理を施すことによりス
    クリプトを符号化するものであることを特徴とする請求
    項1または請求項2記載の記録媒体。
JP10159559A 1998-06-08 1998-06-08 インタプリタ言語で記述されたプログラムの記録媒体 Pending JPH11353172A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10159559A JPH11353172A (ja) 1998-06-08 1998-06-08 インタプリタ言語で記述されたプログラムの記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10159559A JPH11353172A (ja) 1998-06-08 1998-06-08 インタプリタ言語で記述されたプログラムの記録媒体

Publications (1)

Publication Number Publication Date
JPH11353172A true JPH11353172A (ja) 1999-12-24

Family

ID=15696391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10159559A Pending JPH11353172A (ja) 1998-06-08 1998-06-08 インタプリタ言語で記述されたプログラムの記録媒体

Country Status (1)

Country Link
JP (1) JPH11353172A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132364A (ja) * 2000-10-19 2002-05-10 Yutaka Iizuka プログラムを内部解析から保護する方法、コンピュータ読み取り可能な記録媒体及びプログラムの配布方法
JP2002216081A (ja) * 2001-01-23 2002-08-02 Sony Corp Icカードデータ閲覧制御方法、情報端末装置、コンピュータプログラムおよびサーバ
WO2008134831A1 (en) * 2007-05-03 2008-11-13 Francisco Mathieu Method for development of applications to interact with internet
JP2014510979A (ja) * 2011-03-31 2014-05-01 アリババ・グループ・ホールディング・リミテッド 機械挙動の決定
JP2020177484A (ja) * 2019-04-19 2020-10-29 株式会社ショーケース 本人確認システム、オペレータ端末及び本人確認システムプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132364A (ja) * 2000-10-19 2002-05-10 Yutaka Iizuka プログラムを内部解析から保護する方法、コンピュータ読み取り可能な記録媒体及びプログラムの配布方法
JP2002216081A (ja) * 2001-01-23 2002-08-02 Sony Corp Icカードデータ閲覧制御方法、情報端末装置、コンピュータプログラムおよびサーバ
WO2008134831A1 (en) * 2007-05-03 2008-11-13 Francisco Mathieu Method for development of applications to interact with internet
JP2014510979A (ja) * 2011-03-31 2014-05-01 アリババ・グループ・ホールディング・リミテッド 機械挙動の決定
JP2020177484A (ja) * 2019-04-19 2020-10-29 株式会社ショーケース 本人確認システム、オペレータ端末及び本人確認システムプログラム

Similar Documents

Publication Publication Date Title
US9471288B2 (en) Compile based obfuscation
US7469346B2 (en) Dual virtual machine architecture for media devices
JP4688805B2 (ja) コード難読化およびエミュレーションによるプロセッサ制御
AU724513B2 (en) Computerized system and associated method for optimally controlling storage and transfer of computer programs on a computer network
CN100474253C (zh) .Net程序保护方法及装置
CN104680039B (zh) 一种应用程序安装包的数据保护方法及装置
RU2334268C2 (ru) Команды для поддержки обработки шифрованного сообщения
JP4850830B2 (ja) コンピュータシステム及びプログラム生成装置
EP1644802B1 (en) Dual virtual machine and trusted platform module architecture for next generation media players
US7958133B2 (en) Application conversion of source data
CN104573416A (zh) 一种生成应用安装包、执行应用的方法及装置
CN106650327A (zh) 基于动态恢复so文件的Android应用加固方法
CN112163195B (zh) 一种基于堆栈隐藏的虚拟机软件保护方法
JP2004511031A (ja) ディジタル・データ保護構成
JP2005135265A (ja) 情報処理装置
CN114547558A (zh) 授权方法、授权控制方法及装置、设备和介质
US20030179883A1 (en) Self-restoration type program, program producing method and apparatus, information processing apparatus and program
JPH11353172A (ja) インタプリタ言語で記述されたプログラムの記録媒体
JP3944069B2 (ja) 自己書換え処理追加プログラム、自己書換え処理追加装置及び自己書換え処理追加方法
US7380269B2 (en) Changing code execution path using kernel mode redirection
JP4431409B2 (ja) スクリプト処理方法およびスクリプト処理計算機
TWI777598B (zh) 程式保護系統
WO2006011888A1 (en) Dual virtual machine architecture for media devices
Waddell Achieving Obfuscation Through Self-Modifying Code: A Theoretical Model
Heckendorn A Simplified Computer Science Glossary