WO2017115612A1 - 処理システム、処理方法及びプログラム - Google Patents
処理システム、処理方法及びプログラム Download PDFInfo
- Publication number
- WO2017115612A1 WO2017115612A1 PCT/JP2016/086008 JP2016086008W WO2017115612A1 WO 2017115612 A1 WO2017115612 A1 WO 2017115612A1 JP 2016086008 W JP2016086008 W JP 2016086008W WO 2017115612 A1 WO2017115612 A1 WO 2017115612A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- program
- unit
- processing system
- specific
- execution
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 6
- 238000006243 chemical reaction Methods 0.000 claims abstract description 28
- 238000000605 extraction Methods 0.000 claims abstract description 13
- 238000004458 analytical method Methods 0.000 claims abstract description 12
- 239000000284 extract Substances 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 description 34
- 230000006870 function Effects 0.000 description 19
- 230000005540 biological transmission Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 3
- 230000002194 synthesizing effect Effects 0.000 description 3
- 239000002131 composite material Substances 0.000 description 1
- 238000012966 insertion method Methods 0.000 description 1
Images
Classifications
-
- 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
Definitions
- the present invention relates to a processing system for processing a program transmitted from the outside via a wired or wireless network.
- 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.
- 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.
- the conventional encryption acquires one key code
- 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.
- 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.
- the conversion unit 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.
- 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.
- 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 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.
- 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.
- a recording unit that records the content created by the first user terminal in association with the execution data.
- the content may include at least one of audio data, character data, moving image data, and program data.
- 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.
- game content created by synthesizing a game program developed by a program developer is provided to a user through a website.
- 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.
- 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.
- this network is connected to the Internet via a proxy server or the like (not shown).
- the external server 100 receives the request from the user terminal 300 and transmits the accumulated information.
- 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.
- 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. .
- 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.
- 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.
- the receiving unit 3 receives the 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.
- 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.
- FIG. -A code indicating a variable is described.
- the selection unit 5 randomly selects at least a part of the plurality of specific areas 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.
- 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.
- the function when a function is described in the specific area 10, the function can be expanded and rewritten into an equivalent code.
- control statement in the specific area 10 can be rewritten into an equivalent code using another control statement or operator.
- 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.
- dummy code As a method of adding dummy code, it is possible to insert any code that does not affect the processing of the program as dummy code.
- 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.
- 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.
- the conversion unit 6 can appropriately select and rewrite any one of the plurality of formats.
- the addition unit 7 acquires the program converted by the conversion 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.
- the recording unit 2 records the initial program.
- 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.
- 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.
- 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.
- 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.
- 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.
- the transmission unit 8 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.
- the transmission unit 8 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.
- 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.
- 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.
- the conversion unit 6 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.
- 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.
- the processing system 21 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.
- 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.
- 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
- a specific user may remain in the ranking of communication battles, making it impossible to play the game soundly.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- the processing system 31 of the present embodiment 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.
- the recording unit 33 records the initial program and the data such as the content transmitted from the user terminal 300.
- the transmission / reception unit 34 transmits / receives the initial program and data recorded in the recording unit 33 to the user terminal 300.
- the first user terminal 300a and the second user terminal 300b are connected to the processing system 31 through a wired or wireless network.
- the initial program 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.
- 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.
- 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.
- the first user receives this display and 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.
- the first user creates a content of audio data “This enemy is too strong”.
- 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.
- a plurality of “moving area is 6”
- “number of fighting enemies is 70”
- play time is 60 hours” Execution data is sent.
- the transmission / reception unit 34 receives a plurality of pieces 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.
- 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.
- 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.
- 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.
- 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.
- the transmission / reception unit 34 transmits content, that is, voice data “this enemy is too strong” to the second user terminal 300b, and the second user terminal 300b reproduces / displays the content.
- the processing system 31 of the third embodiment configured as described above, it is possible to display content that matches the execution state of the user's program, and thus it is possible to display content that is more appropriate to the spot. 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.
- the developer terminal and the user terminal are each constituted by one for explanation, but a plurality of these may be provided.
- the processing order is not limited to that described above.
- 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.
- a time management unit may be provided separately.
- the processing system of the third embodiment can be used for sports such as marathons.
- sports such as marathons.
- “selected course length”, “travel distance”, “travel time”, and the like can be selected as a plurality of predetermined conditions for creating / reproducing the content.
- cheering can be delivered to the marathon runner who is the user.
- 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 is a processing system that can prevent analysis of a program and abandon malicious user attacks.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
【課題】プログラムの解析を防止するとともに、悪意あるユーザの攻撃自体を防止することができる処理システム、処理方法及びプログラムを提供することをその主たる目的とする。 【解決手段】有線又は無線のネットワークを介して外部から送信されたプログラムを処理する処理システムであって、前記プログラムを受信する受信部と、前記受信部が受信した前記プログラムを解析して、特定のコードが記載された特定領域を複数抽出する抽出部と、前記抽出部が抽出した複数の前記特定領域のうちの少なくとも一部をランダムに選択する選択部と、前記選択部が選択した前記特定領域に記載された前記コードを、前記プログラムの実行に影響を与えない形式に書き換える変換部とを備えることを特徴とする。
Description
本発明は、有線又は無線のネットワークを介して外部から送信されたプログラムを処理する処理システム等に関するものである。
現在、複数のサーバから提供されたプログラムやデータを合成したコンテンツをウェブサイトを介してユーザに提供するものがある。この具体的な一例としては、例えば特許文献1に記載されているように、地図サーバから取得した地図データと、コンテンツサーバから取得したプログラムとを合成してユーザに提供するもの等が挙げられる。
ところで、悪意あるユーザが、上述したようなウェブサイトにアクセスした場合、プログラムを解析して、プログラムを構成するコード自体又はコードの規則性を見出すことにより、どのコードでどのような処理が実行されるのかを突き止めて、処理の内容を改ざんしたり、プログラムに不正アクセスを実行させる不正プログラムを追加したりするという問題がある。
このような問題に対し、悪意あるユーザにプログラムを解析されないように、例えばプログラムを符号化し、これを解除するキーコードがないとプログラムを実行できなくする暗号化が用いられている。しかし、キーコードは時間や手間をかければ取得可能なものであり、また一度取得してしまえば、そのキーコードを用いて暗号化された全てのプログラムを解析することが可能となる。そのため、悪意あるユーザは時間や手間がかかってもキーコードを取得しようと考え、その攻撃を断念させることは難しい。
本発明は上述した問題に鑑みてなされたものであって、プログラムの解析を防止するとともに、悪意あるユーザの攻撃を断念させることが可能となる処理システム、処理方法及びプログラムを提供することをその主たる目的とするものである。
本発明の処理システムは、有線又は無線のネットワークを介して外部から送信されたプログラムを処理する処理システムであって、前記プログラムを受信する受信部と、前記受信部が受信した前記プログラムを解析して、特定のコードが記載された特定領域を複数抽出する抽出部と、前記抽出部が抽出した複数の前記特定領域の少なくとも一つをランダムに選択する選択部と、前記選択部が選択した前記特定領域に記載された前記コードを、前記プログラムの実行に影響を与えない形式に書き換える変換部とを備えることを特徴とする。
これにより、プログラムの特定のコードが記載された特定領域のうち、選択部によってランダムに選択された該領域が変換部によってプログラムの実行に影響を与えない形式に書き換えられる。そのため、本処理システムを経たプログラムは、同じ処理であっても実行するコードをそれぞれ異ならせることができるので、悪意あるユーザがプログラムを解析しようとしても、コードの規則性を見出すことが難しく、プログラムの解析を防止することができる。
また、従来の暗号化は、1つのキーコードを取得すると、そのキーコードを用いたプログラムは全て解読出来てしまう。そのため、悪意あるユーザは1つのキーコードを取得するために膨大な時間と手間をかけても攻撃を行う。しかし、本発明の処理システムを経たプログラムは、キーコードを用いて暗号化していないことに加えて、同じ処理であってもコードが異なるので規則性が見出しにくい。そのため、例え1つのプログラムを解析できたとしても、その解析手法を他のプログラムにも汎用できるとは限らず、プログラム毎に解析のために時間と手間を費やす必要があるので、悪意あるユーザの攻撃を断念させることが可能となる。
上述した本発明の処理システムの一実施形態としては、前記プログラムの実行に影響を与えない形式が複数ある場合には、前記変換部が、前記プログラムの実行に影響を与えない複数の形式のうちのいずれか一つを選択して書き換えるものを挙げることができる。
これにより、書き換えた後のコードのバリエーションを増やして、さらにコードの規則性を見出しにくくすることができ、プログラムの解析をより困難なものとすることができる。
上述した本発明の処理システムの一実施形態としては、所定時間が経過すると前記プログラムの機能の一部を制限する制限プログラムを、前記プログラムに追加する時間管理部をさらに備えるものを挙げることができる。
このように、所定時間が経過するとプログラムの機能の一部を制限する制限プログラムを追加することによって、悪意あるユーザがプログラムを解析する時間に制限を設けることができる。そのため、制限時間が過ぎれば、解析に費やした時間と手間が無駄になるので、悪意あるユーザの攻撃を断念させることが可能となる。
また、上述した処理システムの処理方法としては、有線又は無線のネットワークを介して外部から送信されたプログラムを処理する処理方法であって、抽出部が前記プログラムを解析し、特定のコードが記載された特定領域を複数抽出する第1のステップと、選択部が、前記第1のステップで抽出した複数の前記特定領域のうちの少なくとも一部をランダムに選択する第2のステップと、変換部が、前記第2のステップで選択した前記特定領域に記載された前記コードを、前記プログラムの実行に影響を与えない形式に書き換える第3のステップとを備えるものを挙げることができる。
さらに、上述した処理システムを実行するプログラムとしては、コンピュータを、有線又は無線のネットワークを介して外部から送信されたプログラムを解析し、特定のコードが記載された特定領域を複数抽出する第1のステップと、前記第1のステップで抽出した複数の前記特定領域のうちの少なくとも一部をランダムに選択する第2のステップと、前記第2のステップで選択した前記特定領域に記載された前記コードを、前記プログラムの実行に影響を与えない形式に書き換える第3のステップとして動作させるものを挙げることができる。
また、上述した処理システムの具体的な一態様としては、有線又は無線のネットワークを介して複数のユーザ端末に接続され、前記変換部で書き換えられた変換コードを備える前記プログラムを予め入力した初期プログラムに埋め込む追加部と、前記初期プログラムを記録するとともに、第1ユーザ端末において前記初期プログラムが作成するユーザ用プログラムの実行状態が予め定めた複数の条件を満たした場合に、その実行状態を示す複数の実行データに紐付けて前記第1ユーザ端末で作成されたコンテンツを記録する記録部とを備えるものを挙げることができる。
さらに、上記処理システムの具体的な一態様としては、前記コンテンツが、音声データ、文字データ、動画データ、プログラムデータの少なくともいずれか一つを含むものを挙げることができる。
本発明の処理システムによれば、プログラムの解析を防止するとともに、悪意あるユーザの攻撃を断念させることが可能となる。
以下、本発明の処理システムの一実施形態について図面を用いて説明する。
本発明の処理システムは、外部サーバから取得した情報に、プログラム開発者が開発したプログラムを合成したコンテンツをウェブサイトを介してユーザに提供するものであって、例えば、外部サーバから取得した地図情報に、プログラム開発者が開発したゲームプログラムを合成して作成したゲームコンテンツをウェブサイトを通じてユーザに提供するものである。なお、以下ではゲームを例に本発明の処理システムを説明するが、本発明の処理システムはこの例に限ったものではない。
<第1実施形態>
本発明の第1実施形態における処理システム1は、図1に示すように、外部サーバ100、プログラム開発者の開発者端末200、ユーザのユーザ端末300とそれぞれ有線又は無線のネットワークを介して接続されるとともに、このネットワークは図示しないプロキシサーバ等を介してインターネットに接続されている。
本発明の第1実施形態における処理システム1は、図1に示すように、外部サーバ100、プログラム開発者の開発者端末200、ユーザのユーザ端末300とそれぞれ有線又は無線のネットワークを介して接続されるとともに、このネットワークは図示しないプロキシサーバ等を介してインターネットに接続されている。
外部サーバ100は、ユーザ端末300からの要求を受け付けて蓄積された情報を送信する。なお、本実施形態では外部サーバ100は、ユーザ端末300に地図情報を送信するものであるが、この情報に縛られず、どんな情報であってもよい。
開発者端末200は、図示しないCPU、メモリ、通信ポート、ネットワークインターフェイス等を備える例えばスマートフォン、タブレット端末、PC等であって、JavaScript(登録商標)、TypeScript等のソースコードを用いてプログラムを作成する。
ユーザ端末300は、図示しないCPU、メモリ、通信ポート、ネットワークインターフェイス等を備える例えばスマートフォン、タブレット端末、PC等である。なお、本実施形態ではユーザ端末300にGPSが実装されているものとする。
第1実施形態における処理システム1の構成について、以下に詳述する。
この処理システム1は、CPU、メモリ、A/Dコンバータ、通信ポート、ネットワークインターフェイス等からなるサーバであって、メモリに所定のプログラムをインストールすることによって、記録部2、受信部3、抽出部4、選択部5、変換部6、追加部7、送信部8としての機能を担うものである。
受信部3は、開発者端末200から送られてきたプログラムを受信する。このプログラムは、例えば一定の条件を満たせば宝が現れる宝探しゲームのプログラムや、一定の謎を解いて脱出を図る脱出ゲームのプログラムであって、ゲームコンテンツの一要素をなすものである。
抽出部4は、受信部3が受信したプログラムを解析して、プログラムが書かれたソースコードにおいて、特定のコードが記載された特定領域10を複数抽出する。この特定のコードとは、変数、関数、制御文、これらを含む複数の文からなるブロックコード、又は文字・数値のことを指す。
特定領域の具体例を図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”;
・変数を示すコードが記載されたもの
特定領域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”;
選択部5は、抽出部4が抽出した複数の特定領域10の少なくとも一部をランダムに選択する。このとき、選択部5は抽出部4が抽出した特定領域10をすべて選択することも可能であるが、本実施形態では図3に示すように、特定領域10b、10c、10d、10e、10f、10gを選択したものとする。
変換部6は、選択部5が選択した特定領域10b、10c、10d、10e、10f、10gに記載されたコードをプログラムの実行に影響を与えない形式に書き換える。この形式とは、(1)書き換える前のコードと等価なコードに書き換える方法と、(2)書き換える前のコードの順番をプログラムの実行に支障をきたさない範囲で入れ替える方法と、(3)書き換える前のコードにダミーコードを追加する方法とがある。
まず、(1)書き換える前のコードと等価なコードに書き換える方法についてさらに詳しく説明する。
特定領域10に変数が記載されている場合には、変数を複数の文で表すことで等価なコードに書き換えることができる。この具体例としては、特定領域10bを図4に示すように、書き換えることが挙げられる。
var b;
b=200;
var b;
b=200;
また、特定領域10に関数が記載されている場合には、関数を展開して等価なコードに書き換えることができる。この具体例としては、特定領域10dを図4に示すように、書き換えることが挙げられる。
var b=1+1;
var c=2+1;
なお、特定領域10に展開された関数が記載されている場合、上述したものとは逆にコードを関数化した等価なコードに書き換えることもできる。
var b=1+1;
var c=2+1;
なお、特定領域10に展開された関数が記載されている場合、上述したものとは逆にコードを関数化した等価なコードに書き換えることもできる。
さらに、特定領域10に制御文が記載されている場合には、他の制御文や演算子を用いて等価なコードに書き換えることができる。この具体例としては、特定領域10fの制御文を、while文を用いて図4に示すように、書き換えることが挙げられる。
var i=0;
while(i<100){++b;++i;}
また、特定領域10eは、演算子を用いて図4に示すように書き換えることができる。
a==2?b=1:b=2;
var i=0;
while(i<100){++b;++i;}
また、特定領域10eは、演算子を用いて図4に示すように書き換えることができる。
a==2?b=1:b=2;
加えて、特定領域10に文字が記載されている場合には、文字を分解して記載する方法、文字をコードに置換する方法、文字を変数に置換する方法等を用いて等価なコードに書き換えることができる。
文字を分解して記載する方法の具体例としては、特定領域10gを図4に示すように書き換えることが挙げられる。
a =“H”;
a+=“E”;
a+=“L”;
a+=“L”;
a+=“O”;
a =“H”;
a+=“E”;
a+=“L”;
a+=“L”;
a+=“O”;
文字をコードに置換する方法の具体例としては、例えば特定領域10gを以下のように書き換えることが挙げられる。
a=String.fromCharCode(72,69,76,76,79);
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;に書き換えることが挙げられる。
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;という等価なコードに書き換えることが挙げられる。
var b=100+100;という等価なコードに書き換えることが挙げられる。
次に、(2)書き換える前のコードの順番をプログラムの実行に支障をきたさない範囲で入れ替える方法についてさらに詳しく説明する。
この方法は、特定領域10がブロックコードからなる場合に、プログラムの実行に支障をきたさない範囲でコードの順番を入れ替えることをいう。具体例を図4に示す。
図4に示された特定領域10cを、以下のように書き換えてプログラムの実行に支障をきたさない範囲でコードの順番を入れ替える。
var b;
b=200;
var a=100;
var c=a+1;
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);
var b=f(1);
function f(a){return a+1;}
var c=f(2);
最後に、(3)書き換える前のコードにダミーコードを追加する方法について詳しく説明する。
ダミーコードを追加する方法としては、プログラムの処理に影響を与えないあらゆるコードをダミーコードとして挿入することが可能である。この一例としては、ダミーコードとして変数を追加すること、オブジェクトを追加すること、分岐処理を追加すること、ループ処理を追加すること、関数とその関数の呼出し処理を追加することに加えて、正規の変数を一度ダミー変数に入れ替えておき、正規の変数を使用する前にダミー変数を正規の変数に入れ替えること、追加した分岐、ループ、関数内で正規の処理を実行する等が挙げられる。
具体例を以下に記載する。
例えばダミーコードを挿入する前のコードが以下のものである。
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;
}
例えばダミーコードを挿入する前のコードが以下のものである。
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;
}
なお、上述した方法は、単独で用いてもよいし、例えば上述した(1)書き換える前のコードと等価なコードに書き換える方法や、(2)書き換える前のコードの順番をプログラムの実行に支障をきたさない範囲で入れ替える方法と、合わせて用いることもできる。
また、プログラムの実行に影響を与えない形式が複数ある場合も考えられる。つまり、(1)等価なコードに書き換える方法が2以上ある場合、(2)コードの順番をプログラムの実行に支障をきたさない範囲で入れ替える方法が2以上ある場合、(3)ダミーコードの挿入方法が2以上ある場合、または上記(1)(2)(3)のいずれの方法も可能な場合等である。このように、書き換える方法が複数ある場合には、これら複数の形式のうちのいずれか一つの形式を変換部6が適宜選択して書き換えるように構成することができる。
追加部7は、変換部6で変換されたプログラムを取得するとともに、このプログラムを予め作成した初期プログラムに埋め込む。この初期プログラムとは、ユーザ端末300で機能するものであって、外部サーバ100が有する情報を取得する要求を行うとともに、この情報に変換部6で変換されたプログラムを合成してユーザ用プログラムを作成するように命令するものである。
記録部2は、初期プログラムを記録する。なお、記録時に例えばプログラムを受付部3で受け付けた時間情報や、プログラムの名称に関する情報等に紐付けて初期プログラムを記録してもよい。
送信部8は、ユーザ端末300からの初期プログラム要求を受け付けて、初期プログラムを記録部2から抽出してユーザ端末300に送信するものである。
ユーザ端末300では、送信部8から送信された初期プログラムが実行され、外部サーバ100に情報を取得する要求を行い、外部サーバ100からこの情報が送信される。本実施形態においては、ユーザ端末300のGPSの緯度、経度、高度等の位置情報を外部サーバ100に送り、外部サーバ100はこの位置情報を含む地図情報を送信する。ユーザ端末300では、この地図情報に変換部6で変換されたプログラムを合成してユーザ用プログラムを生成する。このユーザ用プログラムは、例えば地図上の所定の地点に宝を配置するとともに、ユーザの現在位置からその所定の地点までの間に位置情報に紐付けた様々なトラップを仕掛け、ユーザが実際にその位置に移動してトラップを解いていくことによって宝を獲得できるとした所謂リアルゲームに関する処理を行うものである。そして、ユーザ端末300においてユーザ用プログラムが実行されることにより、ユーザはゲームをプレイすることができる。
なお、上述の実施形態において、送信部8が、記録部2に複数の初期プログラムが記録されている場合、送信部8は、ユーザ端末300に記録部2に記録された初期プログラムのリストを送り、このリストのうちからユーザが適宜選択した初期プログラムの選択情報を受け付けて、この選択情報に基づいて初期プログラムを記録部2から抽出し、ユーザ端末300に送信するように構成してもよい。
上述したように構成した第1実施形態における処理システム1では、特定のコードが記載された特定領域10のうち、選択部5によってランダムに選択された該領域が、変換部6によってプログラムの実行に影響を与えない所定の形式に書き換えられる。そのため、本処理システム1を経たプログラムは、同じ処理を実行するコードをそれぞれ異ならせることができるので、悪意あるユーザがプログラムを解析しようとしても、コードの規則性を見出すことが難しく、プログラムの解析を防止することができる。
また、悪意あるユーザが本実施形態のシステム1を経たプログラムの解析を試みたところで、規則性を見出すことができないので、その解析に膨大な時間と手間がかかる。加えて、従来の暗号化のように1つのキーコードを取得すれば、そのキーコードを用いて暗号化されたプログラムを全て解析できるようになるものでもなく、プログラム毎に時間と手間をかけて解析が必要となるので、悪意あるユーザの攻撃を断念させることが可能となる。
さらに、プログラムの解析のヒントとなる文字や数値を、本処理システム1ではプログラムの実行に影響を与えない形式に書き換えることによって、プログラムの解析のヒントをなくし、よりプログラムの解析を困難なものとすることができる。
加えて、プログラムの実行に影響を与えない形式が複数ある場合には、変換部6がこれら複数の形式のうちのいずれか一つの形式を適宜選択して書き換えるように構成すれば、変換部が書き換えた後のコードのバリエーションを増やして、さらに規則性を見出しにくくなり、プログラムの解析をより困難なものとすることができる。
なお、処理ステム1の記録部2又は別途設けたメモリに、ユーザがプレイしたそれまでの進行状況を示すプレイデータを保存するように構成してもよい。このとき、例えばユーザ毎にIDを決めておき、このIDと該プレイデータとを紐付けて記録しておく。これにより、ユーザは一度本処理システム1、21と通信を切断した後であっても、IDがあれば以前プレイした続きからゲームを再開することができる。
<第2実施形態>
次に、第2実施形態における処理システム21の構成について、以下に詳述する。なお、第1実施形態と同様の部分には同一の符号を付して、説明を省略する。
次に、第2実施形態における処理システム21の構成について、以下に詳述する。なお、第1実施形態と同様の部分には同一の符号を付して、説明を省略する。
第2実施形態における処理システム21は、図6に示すように、変換部6を経たプログラムに、所定の時間が経過するとプログラムの機能の一部を制限する制限プログラムを追加する時間管理部11をさらに備える点が第1実施形態と異なっている。
ここで、プログラム開発者から送信されたプログラムが、別のユーザと通信してプレイする、例えば通信対戦のようなものであれば、ユーザは本処理システム21を介して接続された別のユーザと通信することとなる。
しかしながら、悪意あるユーザが、プレイ中にゲームプログラムのソースコードを解析し、このソースコードの一部を改ざんして、本来のプログラムでは有り得ないイベントを生じさせたり、本来のプログラムにはないアイテム生成し、これを使用してプレイすることによって、通信対戦のランキングに特定のユーザが居座り続けたりすることがあり、ゲームを健全にプレイすることができなくなるという問題がある。
そこで、本処理システム21では、時間管理部11を備える。
この時間管理部11は、変換部6を経たプログラムに制限プログラムを追加するものである。この制限プログラムとは、本処理システム21内に内蔵されているクロックから時間情報を取得して、ユーザ端末300がウェブサイトにアクセスした時間から所定時間が経過すると、処理システム21のメモリに、それまでのゲームの進行状況を示すプレイデータを保存できないようにしたり、他のユーザ端末との通信を切断したりしてプログラムの機能の一部を制限するものである。なお、所定時間のカウント方法は、上述の方法にとらわれず例えば送信部8が初期プログラムを送信した時点からカウントするもの等であってもよい。
この時間管理部11は、変換部6を経たプログラムに制限プログラムを追加するものである。この制限プログラムとは、本処理システム21内に内蔵されているクロックから時間情報を取得して、ユーザ端末300がウェブサイトにアクセスした時間から所定時間が経過すると、処理システム21のメモリに、それまでのゲームの進行状況を示すプレイデータを保存できないようにしたり、他のユーザ端末との通信を切断したりしてプログラムの機能の一部を制限するものである。なお、所定時間のカウント方法は、上述の方法にとらわれず例えば送信部8が初期プログラムを送信した時点からカウントするもの等であってもよい。
これにより、ユーザ端末300が本処理システム21にアクセスしてから、所定時間が経過すると、ゲームデータを保存できなくなったり、通信が切断されたりする。そのため、悪意あるユーザのプログラムの解析に制限時間が設けられることとなり、プログラムの解析をさらに困難なものとすることができる。また、制限時間が経過すれば、それまでの解析に費やした時間と手間が無駄になるので、悪意あるユーザの攻撃を断念させることができる。
なお、時間制限部11が追加する制限プログラムは、変換部6を経たプログラムだけではなく、受信部3から送られてきたプログラムに予め追加するものであってもよい。
<第3実施形態>
次に、第3実施形態における処理システムの構成について、以下に詳述する。なお、第1実施形態及び第2実施形態と同様の部分には同一の符号を付して、説明を省略する。
次に、第3実施形態における処理システムの構成について、以下に詳述する。なお、第1実施形態及び第2実施形態と同様の部分には同一の符号を付して、説明を省略する。
第3実施形態の処理システム31は、プログラム開発者が投稿したプログラムによって、ユーザがコンテンツを作成したり、他のユーザが作成したコンテンツを表示させたりすることができる点が異なっている。なお、本実施形態の処理システム31は、一例として2つのユーザ端末300に接続されるものであるが、接続されるユーザ端末300は2以上の複数でもよい。
プログラム開発者から投稿されたプログラムには、プログラム開発者が予め定めた複数の条件を満たした場合に、第1ユーザにコンテンツの作成を促す表示を行う処理が含まれるとともに、複数の条件を満たした第2ユーザに第1ユーザが作成したコンテンツを表示する処理が含まれている。
予め定めた複数の条件とは、プログラム開発者が予め定義した状態のことをいい、例えばゲームに関するプログラムであれば、移動エリア、最初に戦闘したキャラクター、戦った敵の数、プレイ時間等を条件として定義することができる。この条件は、プログラム開発者が開発するプログラムに合わせて適宜自由に設定される。
このプログラムを受け付けた本実施形態の処理システム31は、上述したように記録部2、受信部3、抽出部4、選択部5、変換部6によってプログラムの特定領域のコードを変換する。そして、変換したプログラムを、追加部7において予め入力された初期プログラムに埋め込む。
記録部33は、図6に示すように、この初期プログラムを記録するとともに、ユーザ端末300から送信されたコンテンツ等のデータを記録する。
送受信部34は、図6に示すように、記録部33に記録された初期プログラムやデータをユーザ端末300に送受信する。
第1ユーザ端末300a及び第2ユーザ端末300bは、処理システム31に有線または無線のネットワークを通じて接続される。
上述のように構成した処理システム31の動作について以下に説明する。なお、以下では説明のため、第1ユーザ端末300aが処理システム31に接続された後に第2ユーザ端末300bが処理システム31に接続されたものとし、第1ユーザ端末300aが処理システム31にアクセスした時点において、記録部33に初期プログラム以外のデータが記録されていないものとする。
第1ユーザ端末300aにおいて初期プログラムが実行されると、初期プログラムは外部サーバ100から情報を取得して、この情報に変換部6で変換されたプログラムを合成してユーザ用プログラムを作成し、第1ユーザ端末300aにおいてユーザ用プログラムが実行される。
このユーザ用プログラムは、例えばリアルゲーム等を提供するとともに、プログラム開発者が予め定義した状態と、ユーザ用プログラムの実行状態とを比較して、ユーザにコンテンツの作成を促したり、記録部33にコンテンツを送信したり、記録部33に記録されたコンテンツを取得したりするものである。
具体的には、プログラム開発者が予め定義した状態が、「移動エリアが5以上」「戦った敵の数が50以上」「プレイ時間が50時間以上」であった場合、第1ユーザ端末300aの実行状態が「移動エリアが6」「戦った敵の数が70」「プレイ時間が60時間」であれば、条件を満たしたと判定して、ディスプレイ等の表示手段に、「コンテンツを作成しますか?」等の表示や、コンテンツ作成ボタン等を表示する。なお、条件によらず常にコンテンツ作成を促す表示をしても良い。常に表示する場合は、コンテンツを作成したタイミングの「移動エリア」「戦った敵の数」「プレイ時間」の条件を使用する。
第1ユーザはこの表示を受けて、ゲームの感想、他のプレイヤーに対する応援、ゲームの攻略法等を音声データ、文字データ、動画データ、プログラムデータ等を用いてコンテンツを作成する。本実施形態では一例のため、第1ユーザが「この敵、強すぎ」という音声データのコンテンツを作成する。
なお、第1ユーザが作成するコンテンツを音声データ、文字データ、動画データ、プログラムデータのいずれから作成するかは適宜ユーザで選択できるように構成することができる。
第1ユーザ端末300aにおいて第1ユーザがコンテンツを作成すると、このコンテンツと、第1ユーザ端末におけるユーザ用プログラムの実行状態を示す複数の実行データとが処理システム31へと送信される。本実施形態では、第1ユーザが音声データで作成した「この敵、強すぎ」というコンテンツとともに、「移動エリアが6」「戦った敵の数が70」「プレイ時間が60時間」という複数の実行データが送信される。
送受信部34は、第1ユーザ端末300aから送信された第2プログラムの実行状態を示す複数の実行データ及び第1ユーザ端末300aで作成されたコンテンツを受信する。
記録部33は、送受信部34が受信した第1ユーザ端末300aにおけるユーザ用プログラムの実行状態を示す複数の実行データに紐付けて第1ユーザ端末300aで作成されたコンテンツを記録する。
次に、第2ユーザ端末300bにおいて初期プログラムが実行されると、初期プログラムは外部サーバ100から情報を取得して、この情報に変換部6で変換されたプログラムを合成してユーザ用プログラムを作成し、第2ユーザ端末300bにおいてユーザ用プログラムが実行される。
このユーザ用プログラムは、第1ユーザ端末300aでの処理に加えて、第2ユーザ端末300bにおいて、ユーザ用プログラムの実行状態を示す複数の実行データが、記録部33に記録された複数の実行データと合致するかを判定する。合致する場合には、記録部33に該複数の実行データに紐づけられたコンテンツを抽出して送信するように要求する。つまり、第2ユーザ端末300bでの実行データが、「移動エリアが6」「戦った敵の数が70」「プレイ時間が60時間」となった場合、ユーザ用プログラムは、記録部33においてこれら実行データに紐付けられた第1ユーザが音声データで作成した「この敵、強すぎ」というコンテンツを抽出して送信するように要求する。
記録部33は、要求を受け付けて上記複数の実行データと合致するコンテンツを抽出する。このとき、該当するコンテンツが複数ある場合、記録部33は複数のコンテンツを全て抽出してもよいし、少なくとも1つを抽出するように構成してもよい。
送受信部34は、コンテンツつまり、「この敵、強すぎ」という音声データを第2ユーザ端末300bへ送信し、第2ユーザ端末300bは、このコンテンツを再生/表示する。
上述のように構成した第3実施形態の処理システム31によれば、ユーザのプログラムの実行状態に合わせたコンテンツを表示することができるので、よりその場に即したコンテンツを表示することができる。また、第3実施形態における処理システム31をゲームに用いれば、プレイヤーであるユーザは、ゲームの攻略に役立てたり、また他のユーザと一緒にゲームしている感覚になるので、より一層ゲームを楽しむことができる。
本発明は、上記実施形態に限られたものではない。
第1実施形態及び第2実施形態において、開発者端末及びユーザ端末は説明のため、それぞれ1つで構成されていたが、これらが複数であってもよい。
また、上述の全ての実施形態の処理システムにおいて、処理の順番は上述したものに限られず、例えば処理部が、受信部が受信したプログラムを初期プログラムに埋め込んだ後に、抽出部、選択部、変換部が該プログラムの特定の領域を書き換えるように構成してもよい。
さらに、第3実施形態の処理システムにおいて、時間管理部を別途設けてもよい。さらに、第3実施形態ではゲームを一例に説明をおこなったが、例えばマラソン等のスポーツにも第3実施形態の処理システムを用いることができる。この場合、コンテンツを作成/再生するための予め定めた複数の条件として、例えば「選択コースの長さ」「走行距離」「走行時間」等を選択することができる。加えて、複数の条件に合致する複数のコンテンツを記録部から抽出して第2ユーザ端末で再生すれば、ユーザであるマラソンランナーに声援を届けることができる。
加えて、第3実施形態において、ユーザ用プログラムが、ユーザ端末の記録部にそれまで処理システムの記録部に記録されてきたコンテンツ及びこのコンテンツに紐づけられた複数の実行データを記録するように構成してもよい。このように構成すれば、いちいち処理システムに要求を出さずにコンテンツを表示することができるので、処理のスピードを上げることができる。
本発明はその趣旨に反しない範囲で様々な変形が可能である。
本発明は、プログラムの解析を防止するとともに、悪意あるユーザの攻撃を断念させることが可能となる処理システムである。
1・・・処理システム
3・・・受信部
4・・・抽出部
5・・・選択部
6・・・変換部
3・・・受信部
4・・・抽出部
5・・・選択部
6・・・変換部
Claims (7)
- 有線又は無線のネットワークを介して外部から送信されたプログラムを処理する処理システムであって、
前記プログラムを受信する受信部と、
前記受信部が受信した前記プログラムを解析して、特定のコードが記載された特定領域を複数抽出する抽出部と、
前記抽出部が抽出した複数の前記特定領域のうちの少なくとも一部をランダムに選択する選択部と、
前記選択部が選択した前記特定領域に記載された前記コードを、前記プログラムの実行に影響を与えない形式に書き換える変換部とを備えることを特徴とする処理システム。 - 前記プログラムの実行に影響を与えない形式が複数ある場合には、前記変換部が、前記プログラムの実行に影響を与えない複数の形式のうちのいずれか一つを選択して書き換えるものであることを特徴とする請求項1記載の処理システム。
- 所定時間が経過すると前記プログラムの機能の一部を制限する制限プログラムを、前記プログラムに追加する時間管理部をさらに備えることを特徴とする請求項1又は2記載の処理システム。
- 有線又は無線のネットワークを介して外部から送信されたプログラムを処理する処理方法であって、
抽出部が前記プログラムを解析し、特定のコードが記載された特定領域を複数抽出する第1のステップと、
選択部が、前記第1のステップで抽出した複数の前記特定領域のうちの少なくとも一部をランダムに選択する第2のステップと、
変換部が、前記第2のステップで選択した前記特定領域に記載された前記コードを、前記プログラムの実行に影響を与えない形式に書き換える第3のステップとを備えることを特徴とする処理方法。 - コンピュータを、
有線又は無線のネットワークを介して外部から送信されたプログラムを解析し、特定のコードが記載された特定領域を複数抽出する第1のステップと、
前記第1のステップで抽出した複数の前記特定領域のうちの少なくとも一部をランダムに選択する第2のステップと、
前記第2のステップで選択した前記特定領域に記載された前記コードを、前記プログラムの実行に影響を与えない形式に書き換える第3のステップとして動作させることを特徴とするプログラム。 - 有線又は無線のネットワークを介して複数のユーザ端末に接続され、
前記変換部で書き換えられた変換コードを備える前記プログラムを予め入力した初期プログラムに埋め込む追加部と、
前記初期プログラムを記録するとともに、第1ユーザ端末において前記初期プログラムが作成するユーザ用プログラムの実行状態が予め定めた複数の条件を満たした場合に、その実行状態を示す複数の実行データに紐付けて前記第1ユーザ端末で作成されたコンテンツを記録する記録部とを備えることを特徴とする請求項1又は2記載の処理システム。 - 前記コンテンツが、音声データ、文字データ、動画データ、プログラムデータの少なくともいずれか一つを含むことを特徴とする請求項6記載の処理システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017558907A JP6630892B2 (ja) | 2015-12-29 | 2016-12-05 | 処理システム、処理方法及びプログラム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015257714 | 2015-12-29 | ||
JP2015-257714 | 2015-12-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017115612A1 true WO2017115612A1 (ja) | 2017-07-06 |
Family
ID=59224773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2016/086008 WO2017115612A1 (ja) | 2015-12-29 | 2016-12-05 | 処理システム、処理方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6630892B2 (ja) |
WO (1) | WO2017115612A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004185047A (ja) * | 2001-12-21 | 2004-07-02 | Mieko Tsuyusaki | 著作権保護ソフト及び該プログラムを記録した記録媒体 |
JP2005321844A (ja) * | 2004-05-06 | 2005-11-17 | Hitachi Ltd | プレゼンスサービスを基盤としたプッシュ型情報配信方法、プッシュ型情報配信システム、情報提供装置及びチャネル検索装置 |
JP2007304726A (ja) * | 2006-05-09 | 2007-11-22 | Fuji Xerox Co Ltd | プログラム難読化装置、難読化方法及び難読化プログラム |
-
2016
- 2016-12-05 JP JP2017558907A patent/JP6630892B2/ja active Active
- 2016-12-05 WO PCT/JP2016/086008 patent/WO2017115612A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004185047A (ja) * | 2001-12-21 | 2004-07-02 | Mieko Tsuyusaki | 著作権保護ソフト及び該プログラムを記録した記録媒体 |
JP2005321844A (ja) * | 2004-05-06 | 2005-11-17 | Hitachi Ltd | プレゼンスサービスを基盤としたプッシュ型情報配信方法、プッシュ型情報配信システム、情報提供装置及びチャネル検索装置 |
JP2007304726A (ja) * | 2006-05-09 | 2007-11-22 | Fuji Xerox Co Ltd | プログラム難読化装置、難読化方法及び難読化プログラム |
Non-Patent Citations (1)
Title |
---|
AKITO MONDEN: "Methods for Scrambling Programs Containing Loops", THE TRANSACTIONS OF THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS, vol. J80-D-I, no. 7, 25 July 1997 (1997-07-25), pages 644 - 652, XP003006136 * |
Also Published As
Publication number | Publication date |
---|---|
JPWO2017115612A1 (ja) | 2018-08-09 |
JP6630892B2 (ja) | 2020-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112182473B (zh) | 页面操作行为回放方法、装置、计算机设备及存储介质 | |
CN113557748B (zh) | 跨平台阻挡剧透服务 | |
US9952834B2 (en) | Distribution of applications with a saved state | |
US20200330878A1 (en) | Systems and methods for providing efficient game access | |
US11517823B2 (en) | Non-transitory computer-readable storage medium, terminal device, and information processing system | |
CN105391795A (zh) | 网络游戏中跨服务器用户匹配方法及装置 | |
CN107770161A (zh) | 一种直播平台中防止刷礼物的方法及装置 | |
CN113260428B (zh) | 跨平台消费游戏内的对象 | |
CN113260434B (zh) | 统一数据平台的数据模型 | |
CN111104685B (zh) | 一种二维码的动态更新方法及装置 | |
KR102639941B1 (ko) | 사이버 위협 정보를 이용한 침투테스트 자동화 장치 및 방법 | |
CN106293724A (zh) | 一种多游戏管理与版本控制方法及装置 | |
WO2017115612A1 (ja) | 処理システム、処理方法及びプログラム | |
CN113750540B (zh) | 游戏匹配方法、装置、存储介质及计算机程序产品 | |
KR20090128746A (ko) | 가상공간에 대한 스크린샷을 관리하기 위한 클라이언트시스템, 서버 시스템, 방법 및 데이터 프레임 | |
KR20130082602A (ko) | 온라인 게임 통제 서비스 제공 방법 및 서버 | |
CN109646956B (zh) | 信息显示方法、装置、存储介质和电子装置 | |
KR102410709B1 (ko) | 컨텐츠 사용자의 로그 정보 생성 방법 및 장치 | |
KR101308112B1 (ko) | 메모리 조작 방지 방법 및 클라이언트 단말 | |
KR101308106B1 (ko) | 게임 내 사용자 인증 기능을 제공하는 방법, 게임 서버, 단말기 및 기록매체 | |
CN116974897A (zh) | 游戏测试方法、装置及计算机设备、存储介质、产品 | |
JP2010178874A (ja) | 傾向分析サーバ及び傾向分析プログラム | |
JP2010020654A (ja) | 通信再現装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16881592 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2017558907 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16881592 Country of ref document: EP Kind code of ref document: A1 |