JPWO2017115612A1 - Processing system, processing method, and program - Google Patents

Processing system, processing method, and program Download PDF

Info

Publication number
JPWO2017115612A1
JPWO2017115612A1 JP2017558907A JP2017558907A JPWO2017115612A1 JP WO2017115612 A1 JPWO2017115612 A1 JP WO2017115612A1 JP 2017558907 A JP2017558907 A JP 2017558907A JP 2017558907 A JP2017558907 A JP 2017558907A JP WO2017115612 A1 JPWO2017115612 A1 JP WO2017115612A1
Authority
JP
Japan
Prior art keywords
program
unit
processing system
code
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.)
Granted
Application number
JP2017558907A
Other languages
Japanese (ja)
Other versions
JP6630892B2 (en
Inventor
優太 竹田
優太 竹田
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of JPWO2017115612A1 publication Critical patent/JPWO2017115612A1/en
Application granted granted Critical
Publication of JP6630892B2 publication Critical patent/JP6630892B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation

Abstract

【課題】プログラムの解析を防止するとともに、悪意あるユーザの攻撃自体を防止することができる処理システム、処理方法及びプログラムを提供することをその主たる目的とする。
【解決手段】有線又は無線のネットワークを介して外部から送信されたプログラムを処理する処理システムであって、前記プログラムを受信する受信部と、前記受信部が受信した前記プログラムを解析して、特定のコードが記載された特定領域を複数抽出する抽出部と、前記抽出部が抽出した複数の前記特定領域のうちの少なくとも一部をランダムに選択する選択部と、前記選択部が選択した前記特定領域に記載された前記コードを、前記プログラムの実行に影響を与えない形式に書き換える変換部とを備えることを特徴とする。
【選択図】図1
A main object of the present invention is to provide a processing system, a processing method, and a program capable of preventing analysis of a program and preventing a malicious user's attack itself.
A processing system for processing a program transmitted from the outside via a wired or wireless network, the receiving unit receiving the program, and analyzing the program received by the receiving unit An extraction unit that extracts a plurality of specific regions in which the code is written, a selection unit that randomly selects at least a part of the plurality of specific regions extracted by the extraction unit, and the specification selected by the selection unit And a conversion unit that rewrites the code described in the area into a format that does not affect the execution of the program.
[Selection] Figure 1

Description

本発明は、有線又は無線のネットワークを介して外部から送信されたプログラムを処理する処理システム等に関するものである。   The present invention relates to a processing system for processing a program transmitted from the outside via a wired or wireless network.

現在、複数のサーバから提供されたプログラムやデータを合成したコンテンツをウェブサイトを介してユーザに提供するものがある。この具体的な一例としては、例えば特許文献1に記載されているように、地図サーバから取得した地図データと、コンテンツサーバから取得したプログラムとを合成してユーザに提供するもの等が挙げられる。   Currently, there is a content that provides a user with a content obtained by combining programs and data provided from a plurality of servers via a website. As a specific example, for example, as described in Patent Literature 1, map data acquired from a map server and a program acquired from a content server are combined and provided to the user.

特開2008−146232号公報JP 2008-146232 A

ところで、悪意あるユーザが、上述したようなウェブサイトにアクセスした場合、プログラムを解析して、プログラムを構成するコード自体又はコードの規則性を見出すことにより、どのコードでどのような処理が実行されるのかを突き止めて、処理の内容を改ざんしたり、プログラムに不正アクセスを実行させる不正プログラムを追加したりするという問題がある。   By the way, when a malicious user accesses a website such as that described above, by analyzing the program and finding the code itself constituting the program or the regularity of the code, what processing is executed with which code. There is a problem that the contents of processing are falsified and the contents of the process are altered, or an unauthorized program for executing unauthorized access to the program is added.

このような問題に対し、悪意あるユーザにプログラムを解析されないように、例えばプログラムを符号化し、これを解除するキーコードがないとプログラムを実行できなくする暗号化が用いられている。しかし、キーコードは時間や手間をかければ取得可能なものであり、また一度取得してしまえば、そのキーコードを用いて暗号化された全てのプログラムを解析することが可能となる。そのため、悪意あるユーザは時間や手間がかかってもキーコードを取得しようと考え、その攻撃を断念させることは難しい。   In order to prevent such a problem from being analyzed by a malicious user, for example, encryption that encodes a program and makes it impossible to execute the program without a key code for canceling the program is used. However, the key code can be acquired if time and effort are taken, and once acquired, all the programs encrypted using the key code can be analyzed. For this reason, it is difficult for a malicious user to obtain a key code even if it takes time and effort, and to abandon the attack.

本発明は上述した問題に鑑みてなされたものであって、プログラムの解析を防止するとともに、悪意あるユーザの攻撃を断念させることが可能となる処理システム、処理方法及びプログラムを提供することをその主たる目的とするものである。   The present invention has been made in view of the above-described problems, and provides a processing system, a processing method, and a program capable of preventing analysis of a program and abandoning a malicious user attack. This is the main purpose.

本発明の処理システムは、有線又は無線のネットワークを介して外部から送信されたプログラムを処理する処理システムであって、前記プログラムを受信する受信部と、前記受信部が受信した前記プログラムを解析して、特定のコードが記載された特定領域を複数抽出する抽出部と、前記抽出部が抽出した複数の前記特定領域の少なくとも一つをランダムに選択する選択部と、前記選択部が選択した前記特定領域に記載された前記コードを、前記プログラムの実行に影響を与えない形式に書き換える変換部とを備えることを特徴とする。   The processing system of the present invention is a processing system for processing a program transmitted from the outside via a wired or wireless network, the receiving unit receiving the program, and analyzing the program received by the receiving unit. An extraction unit that extracts a plurality of specific regions in which a specific code is described; a selection unit that randomly selects at least one of the plurality of specific regions extracted by the extraction unit; and the selection unit selected by the selection unit A conversion unit that rewrites the code described in the specific area into a format that does not affect the execution of the program.

これにより、プログラムの特定のコードが記載された特定領域のうち、選択部によってランダムに選択された該領域が変換部によってプログラムの実行に影響を与えない形式に書き換えられる。そのため、本処理システムを経たプログラムは、同じ処理であっても実行するコードをそれぞれ異ならせることができるので、悪意あるユーザがプログラムを解析しようとしても、コードの規則性を見出すことが難しく、プログラムの解析を防止することができる。   As a result, of the specific area in which the specific code of the program is written, the area randomly selected by the selection unit is rewritten to a format that does not affect the execution of the program by the conversion unit. For this reason, programs that have passed through this processing system can execute different codes even in the same process, so even if a malicious user tries to analyze the program, it is difficult to find the regularity of the code. Can be prevented.

また、従来の暗号化は、1つのキーコードを取得すると、そのキーコードを用いたプログラムは全て解読出来てしまう。そのため、悪意あるユーザは1つのキーコードを取得するために膨大な時間と手間をかけても攻撃を行う。しかし、本発明の処理システムを経たプログラムは、キーコードを用いて暗号化していないことに加えて、同じ処理であってもコードが異なるので規則性が見出しにくい。そのため、例え1つのプログラムを解析できたとしても、その解析手法を他のプログラムにも汎用できるとは限らず、プログラム毎に解析のために時間と手間を費やす必要があるので、悪意あるユーザの攻撃を断念させることが可能となる。   Further, in the conventional encryption, when one key code is acquired, all programs using the key code can be decrypted. Therefore, a malicious user performs an attack even if it takes an enormous amount of time and effort to acquire one key code. However, the program that has undergone the processing system of the present invention is not encrypted using the key code, and it is difficult to find regularity because the code is different even in the same processing. Therefore, even if one program can be analyzed, the analysis method is not necessarily applicable to other programs, and it is necessary to spend time and labor for analysis for each program. It is possible to give up the attack.

上述した本発明の処理システムの一実施形態としては、前記プログラムの実行に影響を与えない形式が複数ある場合には、前記変換部が、前記プログラムの実行に影響を与えない複数の形式のうちのいずれか一つを選択して書き換えるものを挙げることができる。   As one embodiment of the above-described processing system of the present invention, when there are a plurality of formats that do not affect the execution of the program, the conversion unit includes a plurality of formats that do not affect the execution of the program. One of these can be selected and rewritten.

これにより、書き換えた後のコードのバリエーションを増やして、さらにコードの規則性を見出しにくくすることができ、プログラムの解析をより困難なものとすることができる。   Thereby, the variation of the code after rewriting can be increased, the regularity of the code can be made harder to find, and the analysis of the program can be made more difficult.

上述した本発明の処理システムの一実施形態としては、所定時間が経過すると前記プログラムの機能の一部を制限する制限プログラムを、前記プログラムに追加する時間管理部をさらに備えるものを挙げることができる。   As an embodiment of the above-described processing system of the present invention, there may be mentioned one further provided with a time management unit for adding to the program a restriction program that restricts a part of the function of the program when a predetermined time elapses. .

このように、所定時間が経過するとプログラムの機能の一部を制限する制限プログラムを追加することによって、悪意あるユーザがプログラムを解析する時間に制限を設けることができる。そのため、制限時間が過ぎれば、解析に費やした時間と手間が無駄になるので、悪意あるユーザの攻撃を断念させることが可能となる。   As described above, by adding a restriction program that restricts a part of the functions of the program when a predetermined time has elapsed, a restriction can be imposed on the time during which a malicious user analyzes the program. For this reason, if the time limit is exceeded, the time and effort spent for the analysis are wasted, and it is possible to give up the attack of a malicious user.

また、上述した処理システムの処理方法としては、有線又は無線のネットワークを介して外部から送信されたプログラムを処理する処理方法であって、抽出部が前記プログラムを解析し、特定のコードが記載された特定領域を複数抽出する第1のステップと、選択部が、前記第1のステップで抽出した複数の前記特定領域のうちの少なくとも一部をランダムに選択する第2のステップと、変換部が、前記第2のステップで選択した前記特定領域に記載された前記コードを、前記プログラムの実行に影響を与えない形式に書き換える第3のステップとを備えるものを挙げることができる。   Further, the processing method of the processing system described above is a processing method for processing a program transmitted from the outside via a wired or wireless network, and the extraction unit analyzes the program and describes a specific code. A first step of extracting a plurality of specific areas; a second step of selecting at least a part of the plurality of specific areas extracted in the first step; and a conversion section. And a third step of rewriting the code described in the specific area selected in the second step into a format that does not affect the execution of the program.

さらに、上述した処理システムを実行するプログラムとしては、コンピュータを、有線又は無線のネットワークを介して外部から送信されたプログラムを解析し、特定のコードが記載された特定領域を複数抽出する第1のステップと、前記第1のステップで抽出した複数の前記特定領域のうちの少なくとも一部をランダムに選択する第2のステップと、前記第2のステップで選択した前記特定領域に記載された前記コードを、前記プログラムの実行に影響を与えない形式に書き換える第3のステップとして動作させるものを挙げることができる。   Furthermore, as a program for executing the above-described processing system, a computer analyzes a program transmitted from the outside via a wired or wireless network, and extracts a plurality of specific areas in which specific codes are described. A step, a second step of randomly selecting at least a part of the plurality of specific regions extracted in the first step, and the code described in the specific region selected in the second step Can be used as a third step of rewriting the program into a format that does not affect the execution of the program.

また、上述した処理システムの具体的な一態様としては、有線又は無線のネットワークを介して複数のユーザ端末に接続され、前記変換部で書き換えられた変換コードを備える前記プログラムを予め入力した初期プログラムに埋め込む追加部と、前記初期プログラムを記録するとともに、第1ユーザ端末において前記初期プログラムが作成するユーザ用プログラムの実行状態が予め定めた複数の条件を満たした場合に、その実行状態を示す複数の実行データに紐付けて前記第1ユーザ端末で作成されたコンテンツを記録する記録部とを備えるものを挙げることができる。   In addition, as a specific aspect of the above-described processing system, an initial program that is connected in advance to a plurality of user terminals via a wired or wireless network and is preliminarily input with the program including the conversion code rewritten by the conversion unit A plurality of additional portions embedded in the first program and the initial program when the execution state of the user program created by the initial program in the first user terminal satisfies a plurality of predetermined conditions. And a recording unit that records the content created by the first user terminal in association with the execution data.

さらに、上記処理システムの具体的な一態様としては、前記コンテンツが、音声データ、文字データ、動画データ、プログラムデータの少なくともいずれか一つを含むものを挙げることができる。   Furthermore, as a specific aspect of the processing system, the content includes at least one of audio data, character data, moving image data, and program data.

本発明の処理システムによれば、プログラムの解析を防止するとともに、悪意あるユーザの攻撃を断念させることが可能となる。   According to the processing system of the present invention, it is possible to prevent an analysis of a program and abandon a malicious user attack.

第1実施形態の処理システムを示すブロック図。The block diagram which shows the processing system of 1st Embodiment. 抽出部が抽出した特定領域を説明するためのプログラムの一例。An example of the program for demonstrating the specific area | region which the extraction part extracted. 選択部が選択した特定領域を説明するためのプログラムの一例。An example of the program for demonstrating the specific area | region which the selection part selected. 変換部が変換した特定領域を説明するためのプログラムの一例。An example of the program for demonstrating the specific area | region which the conversion part converted. 第2実施形態の処理システムを示すブロック図。The block diagram which shows the processing system of 2nd Embodiment. 第3実施形態の処理システムを示すブロック図。The block diagram which shows the processing system of 3rd Embodiment.

以下、本発明の処理システムの一実施形態について図面を用いて説明する。   Hereinafter, an embodiment of a processing system of the present invention will be described with reference to the drawings.

本発明の処理システムは、外部サーバから取得した情報に、プログラム開発者が開発したプログラムを合成したコンテンツをウェブサイトを介してユーザに提供するものであって、例えば、外部サーバから取得した地図情報に、プログラム開発者が開発したゲームプログラムを合成して作成したゲームコンテンツをウェブサイトを通じてユーザに提供するものである。なお、以下ではゲームを例に本発明の処理システムを説明するが、本発明の処理システムはこの例に限ったものではない。   The processing system of the present invention provides a user with content obtained by synthesizing a program developed by a program developer to information acquired from an external server via a website. For example, map information acquired from an external server In addition, game content created by synthesizing a game program developed by a program developer is provided to a user through a website. In the following, the processing system of the present invention will be described using a game as an example, but the processing system of the present invention is not limited to this example.

<第1実施形態>
本発明の第1実施形態における処理システム1は、図1に示すように、外部サーバ100、プログラム開発者の開発者端末200、ユーザのユーザ端末300とそれぞれ有線又は無線のネットワークを介して接続されるとともに、このネットワークは図示しないプロキシサーバ等を介してインターネットに接続されている。
<First Embodiment>
As shown in FIG. 1, the processing system 1 in the first embodiment of the present invention is connected to an external server 100, a developer terminal 200 of a program developer, and a user terminal 300 of a user via a wired or wireless network, respectively. In addition, this network is connected to the Internet via a proxy server or the like (not shown).

外部サーバ100は、ユーザ端末300からの要求を受け付けて蓄積された情報を送信する。なお、本実施形態では外部サーバ100は、ユーザ端末300に地図情報を送信するものであるが、この情報に縛られず、どんな情報であってもよい。   The external server 100 receives the request from the user terminal 300 and transmits the accumulated information. In the present embodiment, the external server 100 transmits the map information to the user terminal 300, but is not limited to this information and may be any information.

開発者端末200は、図示しないCPU、メモリ、通信ポート、ネットワークインターフェイス等を備える例えばスマートフォン、タブレット端末、PC等であって、JavaScript(登録商標)、TypeScript等のソースコードを用いてプログラムを作成する。   The developer terminal 200 is a smartphone, tablet terminal, PC, or the like that includes a CPU, a memory, a communication port, a network interface, etc. (not shown), and creates a program using source code such as JavaScript (registered trademark) and TypeScript. .

ユーザ端末300は、図示しないCPU、メモリ、通信ポート、ネットワークインターフェイス等を備える例えばスマートフォン、タブレット端末、PC等である。なお、本実施形態ではユーザ端末300にGPSが実装されているものとする。   The user terminal 300 is, for example, a smartphone, a tablet terminal, a PC, or the like that includes a CPU, a memory, a communication port, a network interface, and the like (not shown). In the present embodiment, it is assumed that GPS is installed in the user terminal 300.

第1実施形態における処理システム1の構成について、以下に詳述する。   The configuration of the processing system 1 in the first embodiment will be described in detail below.

この処理システム1は、CPU、メモリ、A/Dコンバータ、通信ポート、ネットワークインターフェイス等からなるサーバであって、メモリに所定のプログラムをインストールすることによって、記録部2、受信部3、抽出部4、選択部5、変換部6、追加部7、送信部8としての機能を担うものである。   The processing system 1 is a server including a CPU, a memory, an A / D converter, a communication port, a network interface, and the like. By installing a predetermined program in the memory, the recording unit 2, the receiving unit 3, and the extracting unit 4 , Function as the selection unit 5, the conversion unit 6, the addition unit 7, and the transmission unit 8.

受信部3は、開発者端末200から送られてきたプログラムを受信する。このプログラムは、例えば一定の条件を満たせば宝が現れる宝探しゲームのプログラムや、一定の謎を解いて脱出を図る脱出ゲームのプログラムであって、ゲームコンテンツの一要素をなすものである。   The receiving unit 3 receives a program sent from the developer terminal 200. This program is, for example, a treasure hunting game program in which a treasure appears if a certain condition is satisfied, or an escape game program that attempts to escape by solving a certain mystery, and constitutes an element of game content.

抽出部4は、受信部3が受信したプログラムを解析して、プログラムが書かれたソースコードにおいて、特定のコードが記載された特定領域10を複数抽出する。この特定のコードとは、変数、関数、制御文、これらを含む複数の文からなるブロックコード、又は文字・数値のことを指す。   The extraction unit 4 analyzes the program received by the reception unit 3 and extracts a plurality of specific areas 10 in which specific codes are described in the source code in which the programs are written. The specific code refers to a variable, a function, a control statement, a block code including a plurality of statements including these, or a character / numerical value.

特定領域の具体例を図2に示す。
・変数を示すコードが記載されたもの
特定領域10a var a=100;
特定領域10b var b=200;
・変数を含むブロックコードが記載されたもの
特定領域10c
var a=100;
var b=200;
var c=a+1;
・関数を含むブロックコードが記載されたもの
特定領域10d
function f(a){return a+1;}
var b=f(1);
var c=f(2);
特定領域10h
function f(b){return b+1;}
var e=f(1);
var g=f(2);
・制御文であるif文を示すコードが記載されたもの
特定領域10e
if(a==2){b=1;}else{b=2;}
特定領域10i
if(a==3){b=4;}else{b=6;}
・制御文であるfor文を示すコードが記載されたもの
特定領域等10f
for(vari=0;i<100;++i){++b;}
・ダブルクォートで囲まれた文字が記載されたもの
特定領域10g a=“HELLO”;
A specific example of the specific area is shown in FIG.
-A code indicating a variable is described. Specific area 10a var a = 100;
Specific area 10b var b = 200;
-A block code including a variable is described. Specific area 10c
var a = 100;
var b = 200;
var c = a + 1;
-A block code including a function is described. Specific area 10d
function f (a) {return a + 1;}
var b = f (1);
var c = f (2);
Specific area 10h
function f (b) {return b + 1;}
var e = f (1);
var g = f (2);
-A code indicating an if statement that is a control statement is described. Specific area 10e
if (a == 2) {b = 1;} else {b = 2;}
Specific area 10i
if (a == 3) {b = 4;} else {b = 6;}
-A code that indicates a for statement that is a control statement is described. Specific area, etc. 10f
for (vari = 0; i <100; ++ i) {++ b;}
-Characters enclosed in double quotes are described. Specific area 10ga = "HELLO";

選択部5は、抽出部4が抽出した複数の特定領域10の少なくとも一部をランダムに選択する。このとき、選択部5は抽出部4が抽出した特定領域10をすべて選択することも可能であるが、本実施形態では図3に示すように、特定領域10b、10c、10d、10e、10f、10gを選択したものとする。   The selection unit 5 randomly selects at least a part of the plurality of specific regions 10 extracted by the extraction unit 4. At this time, the selection unit 5 can select all the specific areas 10 extracted by the extraction unit 4, but in this embodiment, as shown in FIG. 3, the specific areas 10b, 10c, 10d, 10e, 10f, Assume that 10 g is selected.

変換部6は、選択部5が選択した特定領域10b、10c、10d、10e、10f、10gに記載されたコードをプログラムの実行に影響を与えない形式に書き換える。この形式とは、(1)書き換える前のコードと等価なコードに書き換える方法と、(2)書き換える前のコードの順番をプログラムの実行に支障をきたさない範囲で入れ替える方法と、(3)書き換える前のコードにダミーコードを追加する方法とがある。   The conversion unit 6 rewrites the code described in the specific areas 10b, 10c, 10d, 10e, 10f, and 10g selected by the selection unit 5 into a format that does not affect the execution of the program. This format includes (1) a method of rewriting to a code equivalent to the code before rewriting, (2) a method of replacing the order of the codes before rewriting within a range that does not hinder program execution, and (3) before rewriting. There is a method of adding a dummy code to the above code.

まず、(1)書き換える前のコードと等価なコードに書き換える方法についてさらに詳しく説明する。   First, (1) a method for rewriting a code equivalent to the code before rewriting will be described in more detail.

特定領域10に変数が記載されている場合には、変数を複数の文で表すことで等価なコードに書き換えることができる。この具体例としては、特定領域10bを図4に示すように、書き換えることが挙げられる。
var b;
b=200;
When a variable is described in the specific area 10, it can be rewritten into an equivalent code by representing the variable with a plurality of sentences. As a specific example, the specific region 10b can be rewritten as shown in FIG.
var b;
b = 200;

また、特定領域10に関数が記載されている場合には、関数を展開して等価なコードに書き換えることができる。この具体例としては、特定領域10dを図4に示すように、書き換えることが挙げられる。
var b=1+1;
var c=2+1;
なお、特定領域10に展開された関数が記載されている場合、上述したものとは逆にコードを関数化した等価なコードに書き換えることもできる。
Further, when a function is described in the specific area 10, the function can be expanded and rewritten into an equivalent code. As a specific example, the specific area 10d can be rewritten as shown in FIG.
var b = 1 + 1;
var c = 2 + 1;
Note that when a function developed in the specific area 10 is described, it can be rewritten to an equivalent code obtained by functionalizing the code, contrary to the above.

さらに、特定領域10に制御文が記載されている場合には、他の制御文や演算子を用いて等価なコードに書き換えることができる。この具体例としては、特定領域10fの制御文を、while文を用いて図4に示すように、書き換えることが挙げられる。
var i=0;
while(i<100){++b;++i;}
また、特定領域10eは、演算子を用いて図4に示すように書き換えることができる。
a==2?b=1:b=2;
Furthermore, when a control statement is described in the specific area 10, it can be rewritten into an equivalent code using another control statement or operator. As a specific example, the control statement in the specific area 10f can be rewritten using a while statement as shown in FIG.
var i = 0;
while (i <100) {++ b; ++ i;}
The specific area 10e can be rewritten using an operator as shown in FIG.
a == 2? b = 1: b = 2;

加えて、特定領域10に文字が記載されている場合には、文字を分解して記載する方法、文字をコードに置換する方法、文字を変数に置換する方法等を用いて等価なコードに書き換えることができる。   In addition, when a character is described in the specific area 10, it is rewritten into an equivalent code by using a method of decomposing and describing the character, a method of replacing the character with a code, a method of replacing the character with a variable, etc. be able to.

文字を分解して記載する方法の具体例としては、特定領域10gを図4に示すように書き換えることが挙げられる。
a =“H”;
a+=“E”;
a+=“L”;
a+=“L”;
a+=“O”;
As a specific example of the method of decomposing and describing characters, it is possible to rewrite the specific area 10g as shown in FIG.
a = “H”;
a + = “E”;
a + = "L";
a + = "L";
a + = “O”;

文字をコードに置換する方法の具体例としては、例えば特定領域10gを以下のように書き換えることが挙げられる。
a=String.fromCharCode(72,69,76,76,79);
As a specific example of the method of replacing characters with codes, for example, rewriting the specific area 10g as follows can be mentioned.
a = String.fromCharCode (72,69,76,76,79);

文字を変数に置換する方法の具体例としては、例えば、
var money=1000;
var price=100;
var moneyRest=money−price;を、
var a=1000;
var b=100;
var c=a−b;に書き換えることが挙げられる。
As a specific example of a method for replacing a character with a variable, for example,
var money = 1000;
var price = 100;
var moneyRest = money-price;
var a = 1000;
var b = 100;
var c = a−b;

なお、数値であれば、数値を四則演算を用いて展開して記載することで等価なコードに書き換えることができる。この具体例としては、特定領域10bにおける数値200を、
var b=100+100;という等価なコードに書き換えることが挙げられる。
In addition, if it is a numerical value, it can be rewritten into an equivalent code by expanding and describing the numerical value using four arithmetic operations. As a specific example, the numerical value 200 in the specific area 10b is
rewriting to an equivalent code of var b = 100 + 100;

次に、(2)書き換える前のコードの順番をプログラムの実行に支障をきたさない範囲で入れ替える方法についてさらに詳しく説明する。   Next, (2) a method for changing the order of codes before rewriting within a range that does not hinder program execution will be described in more detail.

この方法は、特定領域10がブロックコードからなる場合に、プログラムの実行に支障をきたさない範囲でコードの順番を入れ替えることをいう。具体例を図4に示す。   This method means that when the specific area 10 is composed of block codes, the order of the codes is changed within a range that does not hinder the execution of the program. A specific example is shown in FIG.

図4に示された特定領域10cを、以下のように書き換えてプログラムの実行に支障をきたさない範囲でコードの順番を入れ替える。
var b;
b=200;
var a=100;
var c=a+1;
The specific order 10c shown in FIG. 4 is rewritten as follows, and the order of the codes is changed within a range that does not hinder the execution of the program.
var b;
b = 200;
var a = 100;
var c = a + 1;

また、図には記載していないが特定領域10dを以下のように書き換えてプログラムの実行に支障をきたさない範囲でコードの順番を入れ替えることもできる。
var b=f(1);
function f(a){return a+1;}
var c=f(2);
Although not shown in the figure, the code order can be changed within a range in which the specific area 10d is rewritten as follows and the program execution is not hindered.
var b = f (1);
function f (a) {return a + 1;}
var c = f (2);

最後に、(3)書き換える前のコードにダミーコードを追加する方法について詳しく説明する。   Finally, (3) a method of adding a dummy code to the code before rewriting will be described in detail.

ダミーコードを追加する方法としては、プログラムの処理に影響を与えないあらゆるコードをダミーコードとして挿入することが可能である。この一例としては、ダミーコードとして変数を追加すること、オブジェクトを追加すること、分岐処理を追加すること、ループ処理を追加すること、関数とその関数の呼出し処理を追加することに加えて、正規の変数を一度ダミー変数に入れ替えておき、正規の変数を使用する前にダミー変数を正規の変数に入れ替えること、追加した分岐、ループ、関数内で正規の処理を実行する等が挙げられる。   As a method for adding a dummy code, any code that does not affect the processing of the program can be inserted as a dummy code. As an example of this, in addition to adding variables as dummy code, adding objects, adding branch processing, adding loop processing, adding a function and calling function of that function, These variables may be replaced with dummy variables once, and dummy variables are replaced with regular variables before regular variables are used, and regular processing is executed within the added branch, loop, or function.

具体例を以下に記載する。
例えばダミーコードを挿入する前のコードが以下のものである。
var selectedType = 1;
if(selectedType == 1){
alert("処理Aを行います");
}else{
alert("処理Bを行います");
}
これにダミーコードを挿入する。
var a = 4;
var selectedType = 1;
var b = a, c = selectedType;
var x;
if(b == selectedType){
x = f(b, selectedType, b);
}else{
for(var i = 0; i < 1; ++i){
b = a / c;
x = c;
if(x == selectedType && selectedType == 1){
a = 2;
f();
}else{
a = 1;
alert(“処理Bを行います”);
}
}

function f(p, q, r){
var x = 2;
alert(“処理Aを行います”);
return p + q − x * r;
}
Specific examples are described below.
For example, the code before inserting the dummy code is as follows.
var selectedType = 1;
if (selectedType == 1) {
alert ("Do process A");
} Else {
alert ("Do process B");
}
A dummy code is inserted into this.
var a = 4;
var selectedType = 1;
var b = a, c = selectedType;
var x;
if (b == selectedType) {
x = f (b, selectedType, b);
} Else {
for (var i = 0; i <1; ++ i) {
b = a / c;
x = c;
if (x == selectedType && selectedType == 1) {
a = 2;
f ();
} Else {
a = 1;
alert (“Process B”);
}
}
}
function f (p, q, r) {
var x = 2;
alert (“Process A”);
return p + q-x * r;
}

なお、上述した方法は、単独で用いてもよいし、例えば上述した(1)書き換える前のコードと等価なコードに書き換える方法や、(2)書き換える前のコードの順番をプログラムの実行に支障をきたさない範囲で入れ替える方法と、合わせて用いることもできる。   The above-described method may be used alone, for example, (1) the above-described method of rewriting the code equivalent to the code before rewriting, or (2) the order of the code before rewriting disturbs the execution of the program. It can also be used in combination with a method of replacing within a range that does not come.

また、プログラムの実行に影響を与えない形式が複数ある場合も考えられる。つまり、(1)等価なコードに書き換える方法が2以上ある場合、(2)コードの順番をプログラムの実行に支障をきたさない範囲で入れ替える方法が2以上ある場合、(3)ダミーコードの挿入方法が2以上ある場合、または上記(1)(2)(3)のいずれの方法も可能な場合等である。このように、書き換える方法が複数ある場合には、これら複数の形式のうちのいずれか一つの形式を変換部6が適宜選択して書き換えるように構成することができる。   In addition, there may be a plurality of formats that do not affect the execution of the program. That is, (1) when there are two or more methods for rewriting the equivalent code, (2) when there are two or more methods for replacing the order of the codes within a range that does not hinder the execution of the program, (3) dummy code insertion method Is 2 or more, or when any of the above methods (1), (2), and (3) is possible. As described above, when there are a plurality of rewriting methods, the conversion unit 6 can appropriately select and rewrite any one of the plurality of formats.

追加部7は、変換部6で変換されたプログラムを取得するとともに、このプログラムを予め作成した初期プログラムに埋め込む。この初期プログラムとは、ユーザ端末300で機能するものであって、外部サーバ100が有する情報を取得する要求を行うとともに、この情報に変換部6で変換されたプログラムを合成してユーザ用プログラムを作成するように命令するものである。   The adding unit 7 acquires the program converted by the converting unit 6 and embeds this program in an initial program created in advance. The initial program functions on the user terminal 300, and requests to acquire information held by the external server 100, and combines the program converted by the conversion unit 6 with this information to create a user program. It is instructed to create.

記録部2は、初期プログラムを記録する。なお、記録時に例えばプログラムを受付部3で受け付けた時間情報や、プログラムの名称に関する情報等に紐付けて初期プログラムを記録してもよい。   The recording unit 2 records an initial program. Note that, for example, the initial program may be recorded in association with the time information when the program is received by the receiving unit 3 or information related to the name of the program at the time of recording.

送信部8は、ユーザ端末300からの初期プログラム要求を受け付けて、初期プログラムを記録部2から抽出してユーザ端末300に送信するものである。   The transmission unit 8 receives an initial program request from the user terminal 300, extracts the initial program from the recording unit 2, and transmits the initial program to the user terminal 300.

ユーザ端末300では、送信部8から送信された初期プログラムが実行され、外部サーバ100に情報を取得する要求を行い、外部サーバ100からこの情報が送信される。本実施形態においては、ユーザ端末300のGPSの緯度、経度、高度等の位置情報を外部サーバ100に送り、外部サーバ100はこの位置情報を含む地図情報を送信する。ユーザ端末300では、この地図情報に変換部6で変換されたプログラムを合成してユーザ用プログラムを生成する。このユーザ用プログラムは、例えば地図上の所定の地点に宝を配置するとともに、ユーザの現在位置からその所定の地点までの間に位置情報に紐付けた様々なトラップを仕掛け、ユーザが実際にその位置に移動してトラップを解いていくことによって宝を獲得できるとした所謂リアルゲームに関する処理を行うものである。そして、ユーザ端末300においてユーザ用プログラムが実行されることにより、ユーザはゲームをプレイすることができる。   In the user terminal 300, the initial program transmitted from the transmission unit 8 is executed, a request for acquiring information is sent to the external server 100, and this information is transmitted from the external server 100. In the present embodiment, position information such as the latitude, longitude, altitude, and the like of the GPS of the user terminal 300 is sent to the external server 100, and the external server 100 transmits map information including this position information. In the user terminal 300, a program for the user is generated by synthesizing the program converted by the conversion unit 6 with the map information. This user program places, for example, a treasure at a predetermined point on a map and sets various traps linked to position information between the current position of the user and the predetermined point, and the user actually A process related to a so-called real game in which a treasure can be obtained by moving to a position and solving a trap is performed. Then, by executing the user program on the user terminal 300, the user can play the game.

なお、上述の実施形態において、送信部8が、記録部2に複数の初期プログラムが記録されている場合、送信部8は、ユーザ端末300に記録部2に記録された初期プログラムのリストを送り、このリストのうちからユーザが適宜選択した初期プログラムの選択情報を受け付けて、この選択情報に基づいて初期プログラムを記録部2から抽出し、ユーザ端末300に送信するように構成してもよい。   In the above-described embodiment, when the transmission unit 8 records a plurality of initial programs in the recording unit 2, the transmission unit 8 sends a list of initial programs recorded in the recording unit 2 to the user terminal 300. Alternatively, it may be configured to receive selection information of an initial program appropriately selected by the user from the list, extract the initial program from the recording unit 2 based on the selection information, and transmit the initial program to the user terminal 300.

上述したように構成した第1実施形態における処理システム1では、特定のコードが記載された特定領域10のうち、選択部5によってランダムに選択された該領域が、変換部6によってプログラムの実行に影響を与えない所定の形式に書き換えられる。そのため、本処理システム1を経たプログラムは、同じ処理を実行するコードをそれぞれ異ならせることができるので、悪意あるユーザがプログラムを解析しようとしても、コードの規則性を見出すことが難しく、プログラムの解析を防止することができる。   In the processing system 1 according to the first embodiment configured as described above, the region selected at random by the selection unit 5 out of the specific region 10 in which the specific code is described is executed by the conversion unit 6 to execute the program. It is rewritten to a predetermined format that does not affect it. Therefore, since the program that has passed through the processing system 1 can have different codes for executing the same processing, it is difficult to find the regularity of the code even if a malicious user tries to analyze the program. Can be prevented.

また、悪意あるユーザが本実施形態のシステム1を経たプログラムの解析を試みたところで、規則性を見出すことができないので、その解析に膨大な時間と手間がかかる。加えて、従来の暗号化のように1つのキーコードを取得すれば、そのキーコードを用いて暗号化されたプログラムを全て解析できるようになるものでもなく、プログラム毎に時間と手間をかけて解析が必要となるので、悪意あるユーザの攻撃を断念させることが可能となる。   Further, when a malicious user tries to analyze a program that has passed through the system 1 of the present embodiment, regularity cannot be found, and this analysis takes enormous time and effort. In addition, if one key code is obtained as in the conventional encryption, it is not possible to analyze all the programs encrypted using the key code, and it takes time and effort for each program. Since analysis is required, it is possible to abandon malicious user attacks.

さらに、プログラムの解析のヒントとなる文字や数値を、本処理システム1ではプログラムの実行に影響を与えない形式に書き換えることによって、プログラムの解析のヒントをなくし、よりプログラムの解析を困難なものとすることができる。   Furthermore, the processing system 1 rewrites characters and numerical values that serve as a program analysis hint into a format that does not affect the execution of the program, thereby eliminating the program analysis hint and making the program analysis more difficult. can do.

加えて、プログラムの実行に影響を与えない形式が複数ある場合には、変換部6がこれら複数の形式のうちのいずれか一つの形式を適宜選択して書き換えるように構成すれば、変換部が書き換えた後のコードのバリエーションを増やして、さらに規則性を見出しにくくなり、プログラムの解析をより困難なものとすることができる。   In addition, when there are a plurality of formats that do not affect the execution of the program, if the conversion unit 6 is configured to appropriately select and rewrite any one of the plurality of formats, the conversion unit The number of code variations after rewriting can be increased to make it more difficult to find regularity and to make the program analysis more difficult.

なお、処理ステム1の記録部2又は別途設けたメモリに、ユーザがプレイしたそれまでの進行状況を示すプレイデータを保存するように構成してもよい。このとき、例えばユーザ毎にIDを決めておき、このIDと該プレイデータとを紐付けて記録しておく。これにより、ユーザは一度本処理システム1、21と通信を切断した後であっても、IDがあれば以前プレイした続きからゲームを再開することができる。   In addition, you may comprise so that the play data which show the progress condition until then which the user played can be preserve | saved in the recording part 2 of the processing system 1, or the memory provided separately. At this time, for example, an ID is determined for each user, and this ID and the play data are linked and recorded. Thereby, even after the user once disconnects communication with the processing systems 1 and 21, once the ID is present, the game can be resumed from the continuation that has been played before.

<第2実施形態>
次に、第2実施形態における処理システム21の構成について、以下に詳述する。なお、第1実施形態と同様の部分には同一の符号を付して、説明を省略する。
Second Embodiment
Next, the configuration of the processing system 21 in the second embodiment will be described in detail below. In addition, the same code | symbol is attached | subjected to the part similar to 1st Embodiment, and description is abbreviate | omitted.

第2実施形態における処理システム21は、図6に示すように、変換部6を経たプログラムに、所定の時間が経過するとプログラムの機能の一部を制限する制限プログラムを追加する時間管理部11をさらに備える点が第1実施形態と異なっている。   As shown in FIG. 6, the processing system 21 according to the second embodiment includes a time management unit 11 that adds a restriction program that restricts a part of the functions of a program to a program that has passed through the conversion unit 6 when a predetermined time has elapsed. Furthermore, the point provided is different from 1st Embodiment.

ここで、プログラム開発者から送信されたプログラムが、別のユーザと通信してプレイする、例えば通信対戦のようなものであれば、ユーザは本処理システム21を介して接続された別のユーザと通信することとなる。   Here, if the program transmitted from the program developer communicates with another user and plays, for example, such as a communication battle, the user can connect with another user connected via the processing system 21. Communicate.

しかしながら、悪意あるユーザが、プレイ中にゲームプログラムのソースコードを解析し、このソースコードの一部を改ざんして、本来のプログラムでは有り得ないイベントを生じさせたり、本来のプログラムにはないアイテム生成し、これを使用してプレイすることによって、通信対戦のランキングに特定のユーザが居座り続けたりすることがあり、ゲームを健全にプレイすることができなくなるという問題がある。   However, a malicious user analyzes the source code of the game program during play and alters part of the source code to generate an event that is not possible with the original program, or to generate an item that is not in the original program However, there is a problem that by using this to play, a specific user may remain in the ranking of communication battles, making it impossible to play the game soundly.

そこで、本処理システム21では、時間管理部11を備える。
この時間管理部11は、変換部6を経たプログラムに制限プログラムを追加するものである。この制限プログラムとは、本処理システム21内に内蔵されているクロックから時間情報を取得して、ユーザ端末300がウェブサイトにアクセスした時間から所定時間が経過すると、処理システム21のメモリに、それまでのゲームの進行状況を示すプレイデータを保存できないようにしたり、他のユーザ端末との通信を切断したりしてプログラムの機能の一部を制限するものである。なお、所定時間のカウント方法は、上述の方法にとらわれず例えば送信部8が初期プログラムを送信した時点からカウントするもの等であってもよい。
Therefore, the processing system 21 includes a time management unit 11.
The time management unit 11 adds a restriction program to the program that has passed through the conversion unit 6. The restriction program is a method for acquiring time information from a clock built in the processing system 21 and storing it in the memory of the processing system 21 when a predetermined time has elapsed since the user terminal 300 accessed the website. The play data indicating the progress of the game up to that time cannot be saved, or communication with other user terminals is disconnected to restrict a part of the program functions. Note that the counting method for the predetermined time is not limited to the above-described method, and may be, for example, a method of counting from the time when the transmission unit 8 transmits the initial program.

これにより、ユーザ端末300が本処理システム21にアクセスしてから、所定時間が経過すると、ゲームデータを保存できなくなったり、通信が切断されたりする。そのため、悪意あるユーザのプログラムの解析に制限時間が設けられることとなり、プログラムの解析をさらに困難なものとすることができる。また、制限時間が経過すれば、それまでの解析に費やした時間と手間が無駄になるので、悪意あるユーザの攻撃を断念させることができる。   As a result, when a predetermined time elapses after the user terminal 300 accesses the processing system 21, game data cannot be stored or communication is disconnected. Therefore, a time limit is set for analyzing a malicious user's program, and the analysis of the program can be made more difficult. In addition, if the time limit elapses, the time and labor spent for the analysis up to that time are wasted, and it is possible to abandon malicious user attacks.

なお、時間制限部11が追加する制限プログラムは、変換部6を経たプログラムだけではなく、受信部3から送られてきたプログラムに予め追加するものであってもよい。   Note that the restriction program added by the time restriction unit 11 may be added in advance to the program sent from the reception unit 3 as well as the program passed through the conversion unit 6.

<第3実施形態>
次に、第3実施形態における処理システムの構成について、以下に詳述する。なお、第1実施形態及び第2実施形態と同様の部分には同一の符号を付して、説明を省略する。
<Third Embodiment>
Next, the configuration of the processing system in the third embodiment will be described in detail below. In addition, the same code | symbol is attached | subjected to the part similar to 1st Embodiment and 2nd Embodiment, and description is abbreviate | omitted.

第3実施形態の処理システム31は、プログラム開発者が投稿したプログラムによって、ユーザがコンテンツを作成したり、他のユーザが作成したコンテンツを表示させたりすることができる点が異なっている。なお、本実施形態の処理システム31は、一例として2つのユーザ端末300に接続されるものであるが、接続されるユーザ端末300は2以上の複数でもよい。   The processing system 31 of the third embodiment is different in that a user can create content or display content created by another user depending on a program posted by a program developer. In addition, although the processing system 31 of this embodiment is connected to the two user terminals 300 as an example, the two or more user terminals 300 may be connected.

プログラム開発者から投稿されたプログラムには、プログラム開発者が予め定めた複数の条件を満たした場合に、第1ユーザにコンテンツの作成を促す表示を行う処理が含まれるとともに、複数の条件を満たした第2ユーザに第1ユーザが作成したコンテンツを表示する処理が含まれている。   The program posted by the program developer includes a process for displaying a message prompting the first user to create content when the program developer satisfies a plurality of predetermined conditions, and satisfies the plurality of conditions. In addition, a process for displaying the content created by the first user to the second user is included.

予め定めた複数の条件とは、プログラム開発者が予め定義した状態のことをいい、例えばゲームに関するプログラムであれば、移動エリア、最初に戦闘したキャラクター、戦った敵の数、プレイ時間等を条件として定義することができる。この条件は、プログラム開発者が開発するプログラムに合わせて適宜自由に設定される。   Predetermined conditions refer to the state defined by the program developer in advance. For example, in the case of a program related to a game, conditions such as moving area, first battle character, number of enemies fought, play time, etc. Can be defined as This condition is freely set according to the program developed by the program developer.

このプログラムを受け付けた本実施形態の処理システム31は、上述したように記録部2、受信部3、抽出部4、選択部5、変換部6によってプログラムの特定領域のコードを変換する。そして、変換したプログラムを、追加部7において予め入力された初期プログラムに埋め込む。   The processing system 31 of this embodiment that has received this program converts the code in the specific area of the program by the recording unit 2, the receiving unit 3, the extracting unit 4, the selecting unit 5, and the converting unit 6 as described above. Then, the converted program is embedded in an initial program input in advance by the adding unit 7.

記録部33は、図6に示すように、この初期プログラムを記録するとともに、ユーザ端末300から送信されたコンテンツ等のデータを記録する。   As shown in FIG. 6, the recording unit 33 records the initial program and also records data such as content transmitted from the user terminal 300.

送受信部34は、図6に示すように、記録部33に記録された初期プログラムやデータをユーザ端末300に送受信する。   As shown in FIG. 6, the transmission / reception unit 34 transmits / receives the initial program and data recorded in the recording unit 33 to the user terminal 300.

第1ユーザ端末300a及び第2ユーザ端末300bは、処理システム31に有線または無線のネットワークを通じて接続される。   The first user terminal 300a and the second user terminal 300b are connected to the processing system 31 through a wired or wireless network.

上述のように構成した処理システム31の動作について以下に説明する。なお、以下では説明のため、第1ユーザ端末300aが処理システム31に接続された後に第2ユーザ端末300bが処理システム31に接続されたものとし、第1ユーザ端末300aが処理システム31にアクセスした時点において、記録部33に初期プログラム以外のデータが記録されていないものとする。   The operation of the processing system 31 configured as described above will be described below. In the following description, for the sake of explanation, it is assumed that the second user terminal 300b is connected to the processing system 31 after the first user terminal 300a is connected to the processing system 31, and the first user terminal 300a accesses the processing system 31. It is assumed that no data other than the initial program is recorded in the recording unit 33 at the time.

第1ユーザ端末300aにおいて初期プログラムが実行されると、初期プログラムは外部サーバ100から情報を取得して、この情報に変換部6で変換されたプログラムを合成してユーザ用プログラムを作成し、第1ユーザ端末300aにおいてユーザ用プログラムが実行される。   When the initial program is executed in the first user terminal 300a, the initial program acquires information from the external server 100, synthesizes the program converted by the conversion unit 6 with this information, creates a user program, The user program is executed in the one user terminal 300a.

このユーザ用プログラムは、例えばリアルゲーム等を提供するとともに、プログラム開発者が予め定義した状態と、ユーザ用プログラムの実行状態とを比較して、ユーザにコンテンツの作成を促したり、記録部33にコンテンツを送信したり、記録部33に記録されたコンテンツを取得したりするものである。   This user program provides, for example, a real game and the like, and compares the state defined by the program developer with the execution state of the user program, prompts the user to create content, The content is transmitted or the content recorded in the recording unit 33 is acquired.

具体的には、プログラム開発者が予め定義した状態が、「移動エリアが5以上」「戦った敵の数が50以上」「プレイ時間が50時間以上」であった場合、第1ユーザ端末300aの実行状態が「移動エリアが6」「戦った敵の数が70」「プレイ時間が60時間」であれば、条件を満たしたと判定して、ディスプレイ等の表示手段に、「コンテンツを作成しますか?」等の表示や、コンテンツ作成ボタン等を表示する。なお、条件によらず常にコンテンツ作成を促す表示をしても良い。常に表示する場合は、コンテンツを作成したタイミングの「移動エリア」「戦った敵の数」「プレイ時間」の条件を使用する。   Specifically, when the state previously defined by the program developer is “the moving area is 5 or more”, “the number of fighting enemies is 50 or more”, and “the play time is 50 hours or more”, the first user terminal 300a If the execution state of “the moving area is 6”, “the number of fighting enemies is 70”, and “the play time is 60 hours”, it is determined that the condition is satisfied, and “display content” "Is it?" Or a content creation button is displayed. It should be noted that a display that always prompts content creation may be displayed regardless of conditions. When the content is always displayed, the conditions of “movement area”, “number of fighting enemies”, and “play time” at the timing of creating the content are used.

第1ユーザはこの表示を受けて、ゲームの感想、他のプレイヤーに対する応援、ゲームの攻略法等を音声データ、文字データ、動画データ、プログラムデータ等を用いてコンテンツを作成する。本実施形態では一例のため、第1ユーザが「この敵、強すぎ」という音声データのコンテンツを作成する。   Upon receiving this display, the first user creates content by using voice data, character data, moving image data, program data, etc., such as the impression of the game, support for other players, and the strategy of the game. In the present embodiment, as an example, the first user creates a content of audio data “This enemy is too strong”.

なお、第1ユーザが作成するコンテンツを音声データ、文字データ、動画データ、プログラムデータのいずれから作成するかは適宜ユーザで選択できるように構成することができる。   In addition, it can be comprised so that a user can select suitably whether the content which a 1st user produces is produced from audio | voice data, character data, moving image data, or program data.

第1ユーザ端末300aにおいて第1ユーザがコンテンツを作成すると、このコンテンツと、第1ユーザ端末におけるユーザ用プログラムの実行状態を示す複数の実行データとが処理システム31へと送信される。本実施形態では、第1ユーザが音声データで作成した「この敵、強すぎ」というコンテンツとともに、「移動エリアが6」「戦った敵の数が70」「プレイ時間が60時間」という複数の実行データが送信される。   When the first user creates content in the first user terminal 300a, the content and a plurality of execution data indicating the execution state of the user program in the first user terminal are transmitted to the processing system 31. In the present embodiment, together with the content “This enemy is too strong” created by the first user using voice data, a plurality of “moving area is 6”, “number of fighting enemies is 70”, and “play time is 60 hours” Execution data is sent.

送受信部34は、第1ユーザ端末300aから送信された第2プログラムの実行状態を示す複数の実行データ及び第1ユーザ端末300aで作成されたコンテンツを受信する。   The transmission / reception unit 34 receives a plurality of execution data indicating the execution state of the second program transmitted from the first user terminal 300a and the content created by the first user terminal 300a.

記録部33は、送受信部34が受信した第1ユーザ端末300aにおけるユーザ用プログラムの実行状態を示す複数の実行データに紐付けて第1ユーザ端末300aで作成されたコンテンツを記録する。   The recording unit 33 records the content created by the first user terminal 300a in association with a plurality of execution data indicating the execution state of the user program in the first user terminal 300a received by the transmission / reception unit 34.

次に、第2ユーザ端末300bにおいて初期プログラムが実行されると、初期プログラムは外部サーバ100から情報を取得して、この情報に変換部6で変換されたプログラムを合成してユーザ用プログラムを作成し、第2ユーザ端末300bにおいてユーザ用プログラムが実行される。   Next, when the initial program is executed in the second user terminal 300b, the initial program acquires information from the external server 100, and synthesizes the program converted by the conversion unit 6 with this information to create a user program. Then, the user program is executed in the second user terminal 300b.

このユーザ用プログラムは、第1ユーザ端末300aでの処理に加えて、第2ユーザ端末300bにおいて、ユーザ用プログラムの実行状態を示す複数の実行データが、記録部33に記録された複数の実行データと合致するかを判定する。合致する場合には、記録部33に該複数の実行データに紐づけられたコンテンツを抽出して送信するように要求する。つまり、第2ユーザ端末300bでの実行データが、「移動エリアが6」「戦った敵の数が70」「プレイ時間が60時間」となった場合、ユーザ用プログラムは、記録部33においてこれら実行データに紐付けられた第1ユーザが音声データで作成した「この敵、強すぎ」というコンテンツを抽出して送信するように要求する。   In addition to the processing at the first user terminal 300a, the user program includes a plurality of pieces of execution data recorded in the recording unit 33 at the second user terminal 300b. It is determined whether or not. If they match, it requests the recording unit 33 to extract and transmit the content associated with the plurality of execution data. That is, when the execution data in the second user terminal 300b is “moving area is 6,” “the number of enemies fought is 70,” and “play time is 60 hours”, the user program is stored in the recording unit 33. The first user associated with the execution data requests to extract and transmit the content “This enemy is too strong” created by the voice data.

記録部33は、要求を受け付けて上記複数の実行データと合致するコンテンツを抽出する。このとき、該当するコンテンツが複数ある場合、記録部33は複数のコンテンツを全て抽出してもよいし、少なくとも1つを抽出するように構成してもよい。   The recording unit 33 receives the request and extracts content that matches the plurality of execution data. At this time, when there are a plurality of corresponding contents, the recording unit 33 may extract all of the plurality of contents or may be configured to extract at least one.

送受信部34は、コンテンツつまり、「この敵、強すぎ」という音声データを第2ユーザ端末300bへ送信し、第2ユーザ端末300bは、このコンテンツを再生/表示する。   The transmission / reception unit 34 transmits the content, that is, the voice data “this enemy is too strong” to the second user terminal 300b, and the second user terminal 300b reproduces / displays the content.

上述のように構成した第3実施形態の処理システム31によれば、ユーザのプログラムの実行状態に合わせたコンテンツを表示することができるので、よりその場に即したコンテンツを表示することができる。また、第3実施形態における処理システム31をゲームに用いれば、プレイヤーであるユーザは、ゲームの攻略に役立てたり、また他のユーザと一緒にゲームしている感覚になるので、より一層ゲームを楽しむことができる。   According to the processing system 31 of the third embodiment configured as described above, it is possible to display the content according to the execution state of the user's program, and thus it is possible to display the content more in line with the situation. Further, if the processing system 31 in the third embodiment is used in a game, the user who is a player can use the game to capture or feel like playing with other users. be able to.

本発明は、上記実施形態に限られたものではない。   The present invention is not limited to the above embodiment.

第1実施形態及び第2実施形態において、開発者端末及びユーザ端末は説明のため、それぞれ1つで構成されていたが、これらが複数であってもよい。   In the first embodiment and the second embodiment, the developer terminal and the user terminal are each constituted by one for the sake of explanation, but a plurality of these may be provided.

また、上述の全ての実施形態の処理システムにおいて、処理の順番は上述したものに限られず、例えば処理部が、受信部が受信したプログラムを初期プログラムに埋め込んだ後に、抽出部、選択部、変換部が該プログラムの特定の領域を書き換えるように構成してもよい。   Further, in the processing systems of all the embodiments described above, the processing order is not limited to that described above. For example, after the processing unit embeds the program received by the reception unit in the initial program, the extraction unit, the selection unit, and the conversion unit The unit may be configured to rewrite a specific area of the program.

さらに、第3実施形態の処理システムにおいて、時間管理部を別途設けてもよい。さらに、第3実施形態ではゲームを一例に説明をおこなったが、例えばマラソン等のスポーツにも第3実施形態の処理システムを用いることができる。この場合、コンテンツを作成/再生するための予め定めた複数の条件として、例えば「選択コースの長さ」「走行距離」「走行時間」等を選択することができる。加えて、複数の条件に合致する複数のコンテンツを記録部から抽出して第2ユーザ端末で再生すれば、ユーザであるマラソンランナーに声援を届けることができる。   Furthermore, in the processing system of the third embodiment, a time management unit may be provided separately. Furthermore, although the game has been described as an example in the third embodiment, the processing system of the third embodiment can be used for sports such as marathons. In this case, for example, “selected course length”, “travel distance”, “travel time”, and the like can be selected as a plurality of predetermined conditions for creating / reproducing the content. In addition, if a plurality of contents that match a plurality of conditions are extracted from the recording unit and played back on the second user terminal, cheering can be delivered to the marathon runner who is the user.

加えて、第3実施形態において、ユーザ用プログラムが、ユーザ端末の記録部にそれまで処理システムの記録部に記録されてきたコンテンツ及びこのコンテンツに紐づけられた複数の実行データを記録するように構成してもよい。このように構成すれば、いちいち処理システムに要求を出さずにコンテンツを表示することができるので、処理のスピードを上げることができる。   In addition, in the third embodiment, the user program records in the recording unit of the user terminal the content that has been recorded in the recording unit of the processing system and the plurality of execution data linked to the content. It may be configured. With this configuration, content can be displayed without making a request to the processing system, so that the processing speed can be increased.

本発明はその趣旨に反しない範囲で様々な変形が可能である。   The present invention can be variously modified without departing from the spirit of the present invention.

本発明は、プログラムの解析を防止するとともに、悪意あるユーザの攻撃を断念させることが可能となる処理システムである。   The present invention is a processing system that can prevent analysis of a program and abandon a malicious user attack.

1・・・処理システム
3・・・受信部
4・・・抽出部
5・・・選択部
6・・・変換部
DESCRIPTION OF SYMBOLS 1 ... Processing system 3 ... Reception part 4 ... Extraction part 5 ... Selection part 6 ... Conversion part

Claims (7)

有線又は無線のネットワークを介して外部から送信されたプログラムを処理する処理システムであって、
前記プログラムを受信する受信部と、
前記受信部が受信した前記プログラムを解析して、特定のコードが記載された特定領域を複数抽出する抽出部と、
前記抽出部が抽出した複数の前記特定領域のうちの少なくとも一部をランダムに選択する選択部と、
前記選択部が選択した前記特定領域に記載された前記コードを、前記プログラムの実行に影響を与えない形式に書き換える変換部とを備えることを特徴とする処理システム。
A processing system for processing a program transmitted from the outside via a wired or wireless network,
A receiving unit for receiving the program;
An analysis unit that analyzes the program received by the reception unit and extracts a plurality of specific areas in which specific codes are described;
A selection unit that randomly selects at least a part of the plurality of specific regions extracted by the extraction unit;
A processing system comprising: a conversion unit that rewrites the code described in the specific area selected by the selection unit into a format that does not affect execution of the program.
前記プログラムの実行に影響を与えない形式が複数ある場合には、前記変換部が、前記プログラムの実行に影響を与えない複数の形式のうちのいずれか一つを選択して書き換えるものであることを特徴とする請求項1記載の処理システム。   When there are a plurality of formats that do not affect the execution of the program, the conversion unit selects and rewrites any one of the plurality of formats that do not affect the execution of the program The processing system according to claim 1. 所定時間が経過すると前記プログラムの機能の一部を制限する制限プログラムを、前記プログラムに追加する時間管理部をさらに備えることを特徴とする請求項1又は2記載の処理システム。   The processing system according to claim 1, further comprising a time management unit that adds, to the program, a restriction program that restricts a part of the function of the program when a predetermined time elapses. 有線又は無線のネットワークを介して外部から送信されたプログラムを処理する処理方法であって、
抽出部が前記プログラムを解析し、特定のコードが記載された特定領域を複数抽出する第1のステップと、
選択部が、前記第1のステップで抽出した複数の前記特定領域のうちの少なくとも一部をランダムに選択する第2のステップと、
変換部が、前記第2のステップで選択した前記特定領域に記載された前記コードを、前記プログラムの実行に影響を与えない形式に書き換える第3のステップとを備えることを特徴とする処理方法。
A processing method for processing a program transmitted from the outside via a wired or wireless network,
A first step in which the extraction unit analyzes the program and extracts a plurality of specific regions in which specific codes are described;
A second step in which the selection unit randomly selects at least a part of the plurality of specific regions extracted in the first step;
And a third step of rewriting the code described in the specific area selected in the second step into a format that does not affect execution of the program.
コンピュータを、
有線又は無線のネットワークを介して外部から送信されたプログラムを解析し、特定のコードが記載された特定領域を複数抽出する第1のステップと、
前記第1のステップで抽出した複数の前記特定領域のうちの少なくとも一部をランダムに選択する第2のステップと、
前記第2のステップで選択した前記特定領域に記載された前記コードを、前記プログラムの実行に影響を与えない形式に書き換える第3のステップとして動作させることを特徴とするプログラム。
Computer
A first step of analyzing a program transmitted from the outside via a wired or wireless network and extracting a plurality of specific areas in which specific codes are described;
A second step of randomly selecting at least a part of the plurality of specific regions extracted in the first step;
A program that operates as a third step of rewriting the code described in the specific area selected in the second step into a format that does not affect the execution of the program.
有線又は無線のネットワークを介して複数のユーザ端末に接続され、
前記変換部で書き換えられた変換コードを備える前記プログラムを予め入力した初期プログラムに埋め込む追加部と、
前記初期プログラムを記録するとともに、第1ユーザ端末において前記初期プログラムが作成するユーザ用プログラムの実行状態が予め定めた複数の条件を満たした場合に、その実行状態を示す複数の実行データに紐付けて前記第1ユーザ端末で作成されたコンテンツを記録する記録部とを備えることを特徴とする請求項1又は2記載の処理システム。
Connected to multiple user terminals via a wired or wireless network,
An additional unit that embeds the program including the conversion code rewritten by the conversion unit in an initial program that is input in advance;
The initial program is recorded, and when the execution state of the user program created by the initial program in the first user terminal satisfies a plurality of predetermined conditions, the initial program is associated with a plurality of execution data indicating the execution state The processing system according to claim 1, further comprising: a recording unit that records content created by the first user terminal.
前記コンテンツが、音声データ、文字データ、動画データ、プログラムデータの少なくともいずれか一つを含むことを特徴とする請求項6記載の処理システム。

The processing system according to claim 6, wherein the content includes at least one of audio data, character data, moving image data, and program data.

JP2017558907A 2015-12-29 2016-12-05 Processing system, processing method and program Active JP6630892B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2015257714 2015-12-29
JP2015257714 2015-12-29
PCT/JP2016/086008 WO2017115612A1 (en) 2015-12-29 2016-12-05 Processing system, processing method, and program

Publications (2)

Publication Number Publication Date
JPWO2017115612A1 true JPWO2017115612A1 (en) 2018-08-09
JP6630892B2 JP6630892B2 (en) 2020-01-15

Family

ID=59224773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017558907A Active JP6630892B2 (en) 2015-12-29 2016-12-05 Processing system, processing method and program

Country Status (2)

Country Link
JP (1) JP6630892B2 (en)
WO (1) WO2017115612A1 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4510368B2 (en) * 2001-12-21 2010-07-21 美恵子 露崎 Copyright protection system and recording medium recording the program
JP4479334B2 (en) * 2004-05-06 2010-06-09 株式会社日立製作所 Push-type information distribution method based on presence service, push-type information distribution system, information providing apparatus, and channel search apparatus
JP2007304726A (en) * 2006-05-09 2007-11-22 Fuji Xerox Co Ltd Program obfuscation device, obfuscation method and obfuscation program

Also Published As

Publication number Publication date
WO2017115612A1 (en) 2017-07-06
JP6630892B2 (en) 2020-01-15

Similar Documents

Publication Publication Date Title
CN112182473B (en) Page operation behavior playback method and device, computer equipment and storage medium
CN113557748B (en) Cross-platform blocking of a dramatic pass service
US9952834B2 (en) Distribution of applications with a saved state
US10322342B2 (en) Non-transitory computer-readable medium storing game program, control method of computer, information processing apparatus, image output apparatus, image output method, and non-transitory computer-readable medium storing image output program
US20200330878A1 (en) Systems and methods for providing efficient game access
US11517823B2 (en) Non-transitory computer-readable storage medium, terminal device, and information processing system
US9043885B2 (en) System for providing content or application and control method therefor, terminal and control method therefor, authentication device and control method therefor, program, and information storage medium
JP2015534170A (en) Subtitle processing method, apparatus, system, and storage medium
CN105391795A (en) Method and apparatus for matching online game users across servers
CN113260428B (en) Cross-platform consumption of objects within a game
CN111104685B (en) Dynamic updating method and device for two-dimension code
WO2017115612A1 (en) Processing system, processing method, and program
CN106293724A (en) A kind of many game managements and edition control method and device
JP6252189B2 (en) Information processing apparatus, program, information processing system
KR102639941B1 (en) Apparatus and method of penetration test automation using cyber threat information
CN113750540B (en) Game matching method, game matching device, storage medium and computer program product
KR102410709B1 (en) Method and apparatus for generating log information of content user
CN109646956B (en) Information display method, information display apparatus, storage medium, and electronic apparatus
WO2012169396A1 (en) Server device and administration method
KR101308112B1 (en) Preventing Method of Memory Fabrication and Client Apparatus
KR20090128746A (en) Client system, server system, method and data frame for managing screen shot with regard to virtual space
KR101308106B1 (en) Method, game server, terminal and recording medium for providing function to user authentication in game
CN115518382A (en) Chess playing image generation method and related method, device, equipment and storage medium
CN116974897A (en) Game testing method and device, computer equipment, storage medium and product

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180206

AA64 Notification of invalidation of claim of internal priority (with term)

Free format text: JAPANESE INTERMEDIATE CODE: A241764

Effective date: 20180409

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190416

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190926

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: 20191010

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191015

R150 Certificate of patent or registration of utility model

Ref document number: 6630892

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250