(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-25
(45)【発行日】2022-06-02
(54)【発明の名称】チートアプリケーション識別方法およびシステム
(51)【国際特許分類】
G06F 21/56 20130101AFI20220526BHJP
A63F 13/75 20140101ALI20220526BHJP
【FI】
G06F21/56
A63F13/75
(21)【出願番号】P 2018101864
(22)【出願日】2018-05-28
【審査請求日】2021-05-17
(31)【優先権主張番号】10-2017-0076332
(32)【優先日】2017-06-16
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】321003371
【氏名又は名称】LINE株式会社
(74)【代理人】
【識別番号】110003199
【氏名又は名称】弁理士法人高田・高橋国際特許事務所
(72)【発明者】
【氏名】チョン・サンミン
(72)【発明者】
【氏名】チョン・サンフン
(72)【発明者】
【氏名】チョン・ミョンジュ
(72)【発明者】
【氏名】ハン・グァンヒ
(72)【発明者】
【氏名】イム・ソンヨル
【審査官】宮司 卓佳
(56)【参考文献】
【文献】韓国登録特許第10-1672791(KR,B1)
【文献】米国特許出願公開第2014/0095874(US,A1)
【文献】特表2014-508993(JP,A)
【文献】特表2016-504645(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/56
A63F 13/75
(57)【特許請求の範囲】
【請求項1】
コンピュータと結合してチートアプリケーション識別方法を実行させるためにコンピュータで読み取り可能な記録媒体に格納されたコンピュータプログラムであって、
前記チートアプリケーション識別方法は、
チートアプリケーションの有無を識別しようとする識別対象アプリケーションを分析して前記識別対象アプリケーションが含むURIスキーム(Uniform Resource Identifier scheme)を抽出する段階、
前記識別対象アプリケーションがインストールされた前記コンピュータのオペレーティングシステムに前記抽出されたURIスキームを利用したインタラクションの処理を要請する段階、および
前記インタラクションの処理が実施される場合、前記識別対象アプリケーションをチートアプリケーションとして識別する段階
を含むことを特徴とする、コンピュータプログラム。
【請求項2】
前記チートアプリケーション識別方法は、
前記抽出されたURIスキームを分析して前記抽出されたURIスキームに対応するパッケージ識別子を決定する段階、および
前記インタラクションの処理に対する応答として前記オペレーティングシステムから返還されるパッケージ識別子を前記決定されたパッケージ識別子と比較してチートの対象となるアプリケーションを識別する段階
をさらに含むことを特徴とする、請求項1に記載のコンピュータプログラム。
【請求項3】
前記オペレーティングシステムは、アンドロイドオペレーティングシステムまたはiOSオペレーティングシステムを含み、
前記チートアプリケーション識別方法は、
前記識別対象アプリケーションが、前記URIスキームを利用したインテント(Intent)の処理を前記アンドロイドオペレーティングシステムに要請するか、前記URIスキームに対応するURL(uniform Resource Locator)に対するオープン可能性の処理を前記iOSオペレーティングシステムに要請する場合、前記識別対象アプリケーションをチートアプリケーションとして識別する段階
をさらに含むことを特徴とする、請求項1に記載のコンピュータプログラム。
【請求項4】
前記チートアプリケーション識別方法は、
予め識別されたチートアプリケーションが駆動することにより、前記オペレーティングシステムと同じオペレーティングシステムで前記予め識別されたチートアプリケーションと関連して予め識別されたプロセス情報を格納する段階、
前記オペレーティングシステムのプロセス情報を示すファイルまたはリストを分析する段階、および
前記ファイルまたはリストに前記格納されたプロセス情報が含まれる場合、前記ファイルまたはリストで前記格納されたプロセス情報に対応するアプリケーションをチートアプリケーションとして識別する段階
をさらに含むことを特徴とする、請求項1に記載のコンピュータプログラム。
【請求項5】
前記チートアプリケーション識別方法は、
前記識別対象アプリケーションと関連するファイルの格納経路に前記コンピュータにインストールされた他のアプリケーションの識別のための情報が含まれる場合、前記識別対象アプリケーションをチートアプリケーションとして識別する段階
をさらに含むことを特徴とする、請求項1に記載のコンピュータプログラム。
【請求項6】
前記チートアプリケーション識別方法は、
前記識別されたチートアプリケーションが含むファイルのうち、選定されたファイルのファイル名または格納経路を格納する段階、
前記識別対象アプリケーションが含むファイルのうち、前記格納されたファイル名または格納経路に対応するファイルが存在するかを確認する段階、および
前記格納されたファイル名または格納経路に対応するファイルが存在する場合、前記識別対象アプリケーションをチートアプリケーションとして識別する段階
をさらに含むことを特徴とする、請求項1に記載のコンピュータプログラム。
【請求項7】
前記格納されたファイル名または格納経路に対応するファイルが存在する場合、前記識別対象アプリケーションをチートアプリケーションとして識別する段階は、
前記対応するファイルがチート機能を含むかを確認し、前記対応するファイルにチート機能が含まれる場合、前記識別対象アプリケーションをチートアプリケーションとして識別することを特徴とする、請求項6に記載のコンピュータプログラム。
【請求項8】
前記選定されたファイルのファイル名は、予め識別されたチートアプリケーションが駆動中に実行するファイルのファイル名を含み、
前記選定されたファイルの格納経路は、前記予め識別されたチートアプリケーションのインストールに従って前記オペレーティングシステムによって使用されるように生成されたファイルの格納経路を含むことを特徴とする、請求項6に記載のコンピュータプログラム。
【請求項9】
前記チートアプリケーション識別方法は、
前記識別されたチートアプリケーションが含むファイルのうち選定された第1ファイルまたは前記選定された第1ファイルが含む項目のうち予め設定された一部の項目に対する第1ハッシュ値を生成して格納する段階、
前記識別対象アプリケーションが含むファイルのうち選定された第2ファイルまたは前記選定された第2ファイルが含む項目のうち予め設定された一部の項目に対する第2ハッシュ値を生成する段階、および
前記第1ハッシュ値と前記第2ハッシュ値を比較し、互いに同じである場合、前記識別対象アプリケーションをチートアプリケーションとして識別する段階
をさらに含むことを特徴とする、請求項1に記載のコンピュータプログラム。
【請求項10】
前記予め設定された種類の第1ファイルおよび第2ファイルは、実行可能なELF(Executableand Linking Format)ファイル、実行可能なMach-O(Mach Object)ファイル、実行可能なPE(Portable Executable)ファイル、および圧縮ファイルのうちの少なくとも1つのファイルを含み、
前記予め設定された一部の項目は、前記少なくとも1つのファイルのヘッダを含むことを特徴とする、請求項9に記載のコンピュータプログラム。
【請求項11】
前記チートアプリケーション識別方法は、
予め識別されたチートアプリケーションのパッケージ識別子を格納する段階、および
前記格納されたパッケージ識別子と同じパッケージ識別子を有する第1アプリケーションが前記オペレーティングシステムと関連して前記コンピュータにインストールされている場合、前記第1アプリケーションをチートアプリケーションとして識別する段階
をさらに含むことを特徴とする、請求項1に記載のコンピュータプログラム。
【請求項12】
コンピュータ装置によって実行されるチートアプリケーション識別方法であって、
前記コンピュータ装置により、チートアプリケーションの有無を識別しようとする識別対象アプリケーションを分析して前記識別対象アプリケーションが含むURIスキーム(Uniform Resource Identifierscheme)を抽出する段階、
前記コンピュータ装置により、前記識別対象アプリケーションがインストールされたコンピュータのオペレーティングシステムに前記抽出されたURIスキームを利用したインタラクションの処理を要請する段階、および
前記コンピュータ装置により、前記インタラクションの処理が実施される場合、前記識別対象アプリケーションをチートアプリケーションとして識別する段階
を含むことを特徴とする、チートアプリケーション識別方法。
【請求項13】
前記コンピュータ装置により、前記抽出されたURIスキームを分析して前記抽出されたURIスキームに対応するパッケージ識別子を決定する段階、および
前記コンピュータ装置により、前記インタラクションの処理に対する応答として前記オペレーティングシステムから返還されるパッケージ識別子を前記決定されたパッケージ識別子と比較してチートの対象となるアプリケーションを識別する段階
をさらに含むことを特徴とする、請求項12に記載のチートアプリケーション識別方法。
【請求項14】
前記オペレーティングシステムは、アンドロイドオペレーティングシステムまたはiOSオペレーティングシステムを含み、
前記コンピュータ装置により、前記識別対象アプリケーションが、前記URIスキームを利用したインテント(Intent)の処理を前記アンドロイドオペレーティングシステムに要請するか、前記URIスキームに対応するURL(uniform Resource Locator)に対するオープン可能性の処理を前記iOSオペレーティングシステムに要請する場合、前記識別対象アプリケーションをチートアプリケーションとして識別する段階
をさらに含むことを特徴とする、請求項12に記載のチートアプリケーション識別方法。
【請求項15】
前記コンピュータ装置により、予め識別されたチートアプリケーションが駆動することにより、前記オペレーティングシステムと同じオペレーティングシステムで前記予め識別されたチートアプリケーションと関連して予め識別されたプロセス情報を格納する段階、
前記コンピュータ装置により、前記オペレーティングシステムのプロセス情報を示すファイルまたはリストを分析する段階、および
前記コンピュータ装置により、前記ファイルまたはリストに前記格納されたプロセス情報が含まれる場合、前記ファイルまたはリストで前記格納されたプロセス情報に対応するアプリケーションをチートアプリケーションとして識別する段階
をさらに含むことを特徴とする、請求項12に記載のチートアプリケーション識別方法。
【請求項16】
前記コンピュータ装置により、前記識別対象アプリケーションと関連するファイルの格納経路に、前記コンピュータにインストールされた他のアプリケーションの識別のための情報が含まれる場合、前記識別対象アプリケーションをチートアプリケーションとして識別する段階
をさらに含むことを特徴とする、請求項12に記載のチートアプリケーション識別方法。
【請求項17】
前記コンピュータ装置により、予め識別されたチートアプリケーションが含むファイルのうち、選定されたファイルのファイル名または格納経路を格納する段階、
前記コンピュータ装置により、前記識別対象アプリケーションが含むファイルのうち、前記格納されたファイル名または格納経路に対応するファイルが存在するかを確認する段階、および
前記コンピュータ装置により、前記格納されたファイル名または格納経路に対応するファイルが存在する場合、前記識別対象アプリケーションをチートアプリケーションとして識別する段階
をさらに含むことを特徴とする、請求項12に記載のチートアプリケーション識別方法。
【請求項18】
前記コンピュータ装置により、予め識別されたチートアプリケーションが含むファイルのうち選定された第1ファイルまたは前記選定された第1ファイルが含む項目のうち予め設定された一部の項目に対する第1ハッシュ値を生成して格納する段階、
前記コンピュータ装置により、前記識別対象アプリケーションが含むファイルのうち選定された第2ファイルまたは前記選定された第2ファイルが含む項目のうち予め設定された一部の項目に対する第2ハッシュ値を生成する段階、および
前記コンピュータ装置により、前記第1ハッシュ値と前記第2ハッシュ値を比較し、互いに同じである場合、前記識別対象アプリケーションをチートアプリケーションとして識別する段階
をさらに含むことを特徴とする、請求項12に記載のチートアプリケーション識別方法。
【請求項19】
前記コンピュータ装置により、予め識別されたチートアプリケーションのパッケージ識別子を格納する段階、および
前記コンピュータ装置により、前記格納されたパッケージ識別子と同じパッケージ識別子を有する第1アプリケーションが前記オペレーティングシステムと関連して前記コンピュータにインストールされている場合、前記第1アプリケーションをチートアプリケーションとして識別する段階
をさらに含むことを特徴とする、請求項12に記載のチートアプリケーション識別方法。
【請求項20】
請求項12~19のうちのいずれか一項に記載の方法をコンピュータに実行させるためのプログラムが記録されていることを特徴とする、コンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
以下の説明は、チートアプリケーション識別方法およびシステムに関し、より詳細には、アプリケーションの構成要素に基づいて該当のアプリケーションのチートアプリケーションの有無を決定することができるチートアプリケーション識別方法およびシステム、コンピュータ装置と結合してチートアプリケーション識別方法を実行させるためにコンピュータで読み取り可能な記録媒体に格納されたコンピュータプログラムに関する。
【背景技術】
【0002】
アプリケーションの動作方式を変更するチート(cheating)アプリケーションは、チートアプリケーションの実行をシステムが識別できないように隠蔽することを目的とし、同じ機能を含んでいたとしても、若干の変更を加えて極めて多様な種類やバージョンで製作および配布されている。
【0003】
このようなチートアプリケーションを識別するための技術として、予め探知されたチートアプリケーションが含む実行ファイルのハッシュ値を抽出した後、識別しようとするアプリケーションである識別対象アプリケーションに対しても実行ファイルのハッシュ値を抽出し、抽出したハッシュ値を比較する方法が存在する。例えば、特許文献1は、悪性アプリケーションまたは悪性ウェブサイト探知方法およびシステムに関するものであって、アプリケーションの関連情報の1つである実行ファイルのハッシュ値を利用して悪性の有無を判断し、判断結果が悪性でない場合は、シグニチュア情報のリソースファイル内にあるライブラリファイルのハッシュ値を利用して悪性の有無を再判断する構成を開示している。
【先行技術文献】
【特許文献】
【0004】
【0005】
しかし、このような従来技術において、システムにインストールされたすべてのアプリケーションのハッシュ値(hash value)とチートアプリケーションのハッシュ値を比べるためには、すべてのアプリケーションそれぞれのすべての実行ファイルの内容を確認してすべてのアプリケーションそれぞれのすべての実行ファイルのハッシュ値を生成しなければならず、実行ファイルの内容をすべて確認しなければならないため、時間が多くかかるという問題を抱えている。
【0006】
これだけでなく、チートアプリケーションが、同じ機能を含んではいるものの、若干の内容だけが変更された実行ファイルを含んでいる場合は、ハッシュ値が異なるため、このような異なるバージョンのチートアプリケーションは識別することができないという問題もある。
【発明の概要】
【発明が解決しようとする課題】
【0007】
そこで本発明は、アプリケーションの特定の構成要素を利用してチートアプリケーションを探知することができるチートアプリケーション識別方法およびシステム、コンピュータ装置と結合してチートアプリケーション識別方法を実行させるためにコンピュータで読み取り可能な記録媒体に格納されたコンピュータプログラムを提供する。
【課題を解決するための手段】
【0008】
本発明に係るコンピュータプログラムは、コンピュータと結合してチートアプリケーション識別方法を実行させるためにコンピュータで読み取り可能な記録媒体に格納されたコンピュータプログラムであって、前記チートアプリケーション識別方法は、チートアプリケーションの有無を識別しようとする識別対象アプリケーションを分析して前記識別対象アプリケーションが含むURIスキーム(Uniform Resource Identifier scheme)を抽出する段階、前記識別対象アプリケーションがインストールされた前記コンピュータのオペレーティングシステムに前記抽出されたURIスキームを利用したインタラクションの処理を要請する段階、および前記インタラクションの処理が実施される場合、前記識別対象アプリケーションをチートアプリケーションとして識別する段階を含む。
【0009】
本発明に係るチートアプリケーション識別方法は、チートアプリケーションの有無を識別しようとする識別対象アプリケーションを分析して前記識別対象アプリケーションが含むURIスキーム(Uniform Resource Identifier scheme)を抽出する段階、前記識別対象アプリケーションがインストールされたコンピュータのオペレーティングシステムに前記抽出されたURIスキームを利用したインタラクションの処理を要請する段階、および前記インタラクションの処理が実施される場合、前記識別対象アプリケーションをチートアプリケーションとして識別する段階を含む。
【0010】
本発明に係るコンピュータで読み取り可能な記録媒体は、前記チートアプリケーション識別方法をコンピュータに実行させるためのプログラムが記録されている。
【発明の効果】
【0011】
上記構成により、アプリケーションの特定の構成要素を利用してチートアプリケーションを探知することができる。例えば、チートアプリケーションが、同じ機能の提供のために変更が不可能か変更する確率が低い特定の構成要素を利用してチートアプリケーションを探知することにより、一部の内容を変更した新たなバージョンのチートアプリケーションであっても識別することができるようになる。
【図面の簡単な説明】
【0012】
【
図1】本発明の一実施形態における、ネットワーク環境の例を示した図である。
【
図2】本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
【
図3】本発明の一実施形態における、システムとの相互作用の有無によってアプリケーションを識別する方法の例を示したフローチャートである。
【
図4】本発明の一実施形態における、システムとの相互作用の有無によってアプリケーションを識別する例を示した図である。
【
図5】本発明の一実施形態における、プロセスファイルまたはリストに識別しようとするアプリケーションが存在するかによってチートアプリケーションを識別する方法を示したフローチャートである。
【
図6】本発明の一実施形態における、特定のファイルのファイル名および/または格納経路によってチートアプリケーションを識別する方法の例を示したフローチャートであるである。
【
図7】本発明の一実施形態における、ハッシュ値を利用してチートアプリケーションを識別する方法の例を示した図である。
【
図8】本発明の一実施形態における、パッケージ識別子に基づいてチートアプリケーションを識別する方法の例を示したフローチャートである。
【
図9】本発明の一実施形態における、アンドロイドAPKファイルの例を示した図である。
【
図10】本発明の一実施形態における、iOS IPAファイルの例を示した図である。
【発明を実施するための形態】
【0013】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【0014】
本発明の実施形態に係るチートアプリケーション識別方法は、以下で説明される電子機器またはサーバで実現されてよく、本発明の実施形態に係るチートアプリケーション識別方法は、このような電子機器またはサーバで実行されてよい。例えば、電子機器には、本発明の一実施形態に係るコンピュータプログラムとして実現されるアプリケーションがインストールおよび駆動されてよく、電子機器は、駆動するアプリケーションの制御に従って識別対象アプリケーションがチートアプリケーションであるかを決定してよい。コンピュータプログラムは、電子機器と結合してチートアプリケーション識別方法を実行させるためにコンピュータで読み取り可能な記録媒体に格納されてよい。他の実施形態として、サーバが上述したアプリケーションの制御に従い、識別対象アプリケーションがチートアプリケーションであるかを決定してもよい。例えば、電子機器は、自身のシステムにインストールされたすべてのアプリケーションそれぞれを識別対象アプリケーションとしてチートアプリケーションであるかを検査してよい。他の例として、サーバは、電子機器にインストールされたすべてのアプリケーションそれぞれを識別対象アプリケーションとしてチートアプリケーションであるかを検査してよい。また他の例として、サーバは、サーバにインストールされた特定のアプリケーションを識別対象アプリケーションとしてチートアプリケーションであるかを決定してもよい。
【0015】
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。
図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような
図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が
図1のように限定されることはない。
【0016】
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型パンコン、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、
図1では、電子機器1(110)の例としてスマートフォンの形状を示しているが、本発明の実施形態では、実質的に、無線または有線通信方式を利用してネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な機器のうちの1つを意味してよい。
【0017】
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を活用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的(hierarchical)ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
【0018】
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供するコンピュータ装置または複数のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第1サービスを提供するシステムであってもよく、サーバ160も、ネットワーク170を介して接続した複数の電子機器110、120、130、140に第2サービスを提供するシステムであってもよい。より具体的な例として、サーバ160は、第2サービスとして、アプリケーション(コンピュータプログラム)のインストールのためのインストールファイル(一例として、応用プログラムパッケージファイル)を複数の電子機器110、120、130、140に提供するシステムであってもよい。また、サーバ150は、第1サービスとして、特定のアプリケーションのチートアプリケーションの有無を確認するサービスを複数の電子機器110、120、130、140に提供してもよい。このようなサービスは、ネットワーク環境を説明するための1つの実施形態に過ぎず、実際のネットワーク環境でサーバ150、160それぞれが提供するサービスは極めて多様である。
【0019】
図2は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。
図2では、電子機器に対する例として電子機器1(110)の内部構成と、サーバ150の内部構成を説明する。また、他の電子機器120、130、140やサーバ160も、上述した電子機器1(110)またはサーバ150と同一または類似の内部構成を有してもよい。
【0020】
電子機器1(110)とサーバ150は、メモリ211、221、プロセッサ212、222、通信モジュール213、223、および入力/出力インタフェース214、224を含んでよい。メモリ211、221は、コンピュータで読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永久大容量記憶装置(permanent mass storage device)を含んでよい。ここで、ROMやディスクドライブのような永久大容量記憶装置は、メモリ211、221とは区分される別の永久格納装置として、電子機器1(110)やサーバ150に含まれてもよい。また、メモリ211、221には、オペレーティングシステムと、少なくとも1つのプログラムコード(一例として、電気機器1(110)にインストールされ駆動するブラウザや特定サービスの提供のために電子機器1(110)にインストールされたアプリケーションなどのためのコード)が格納されてよい。このようなソフトウェア構成要素は、メモリ211、221とは別のコンピュータで読み取り可能な記録媒体からロードされてもよい。このような別のコンピュータで読み取り可能な記録媒体は、フロッピー(登録商標)ドライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータで読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータで読み取り可能な記録媒体ではない通信モジュール213、223を通じてメモリ211、221にロードされてもよい。例えば、少なくとも1つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム(一例として、上述したサーバ150)がネットワーク170を介して提供するファイルによってインストールされるプログラム(一例として、上述したアプリケーション)に基づいてメモリ211、221にロードされてもよい。
【0021】
プロセッサ212、222は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ211、221または通信モジュール213、223によって、プロセッサ212、222に提供されてよい。例えば、プロセッサ212、222は、メモリ211、221のような記録装置に格納されたプログラムコードに従って受信される命令を実行するように構成されてもよい。
【0022】
通信モジュール213、223は、ネットワーク170を介して電子機器1(110)とサーバ150とが互いに通信するための機能を提供してもよいし、他の電子機器(一例として、電子機器2(120))または他のサーバ(一例として、サーバ160)と通信するための機能を提供してもよい。一例として、電子機器1(110)のプロセッサ212がメモリ211のような記録装置に格納されたプログラムコードに従って生成した要求が、通信モジュール213の制御に従ってネットワーク170を介してサーバ150に伝達されてもよい。これとは逆に、サーバ150のプロセッサ222の制御に従って提供される制御信号や命令、コンテンツ、ファイルなどが、通信モジュール223とネットワーク170を経て電子機器1(110)の通信モジュール213を通じて電子機器1(110)に受信されてもよい。例えば、通信モジュール213を通じて受信したサーバ150の制御信号や命令などは、プロセッサ212やメモリ211に伝達されてもよく、コンテンツやファイルなどは、電子機器1(110)がさらに含むことのできる格納媒体(上述した永久記憶装置)に格納されてもよい。
【0023】
入力/出力インタフェース214は、入力/出力装置215とのインタフェースのための手段であってよい。例えば、入力装置は、キーボードまたはマウスなどの装置を、出力装置は、ディスプレイのような装置を含んでよい。他の例として、入力/出力インタフェース214は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置215は、電子機器1(110)と1つの装置で構成されてもよい。また、サーバ150の入力/出力インタフェース224は、サーバ150と連結されてもよいし、サーバ150が含むことのできる入力または出力のための装置(図示せず)とのインタフェースのための手段であってもよい。より具体的な例として、電子機器1(110)のプロセッサ212は、メモリ211にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ150や電子機器2(120)が提供するデータを利用して構成されるサービス画面やコンテンツが、入力/出力インタフェース214を通じてディスプレイに表示されてもよい。
【0024】
また、他の実施形態において、電子機器1(110)およびサーバ150は、
図2の構成要素よりも多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、電子機器1(110)は、上述した入力/出力装置215のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、GPS(Global Positioning System)モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。より具体的な例として、電子機器1(110)がスマートフォンである場合、一般的にスマートフォンが含んでいる加速度センサやジャイロセンサ、カメラモジュール、物理的な各種ボタン、タッチパネルを利用したボタン、入力/出力ポート、振動のための振動器などのような多様な構成要素が電子機器1(110)にさらに含まれるように実現されてもよい。
【0025】
図3は、本発明の一実施形態における、システムとの相互作用の有無によってアプリケーションを識別する方法の例を示したフローチャートである。本実施形態に係るチートアプリケーション識別方法は、上述した電子機器1(110)やサーバ150のようなコンピュータ装置によって実行されてよい。本実施形態では、電子機器1(110)がチートアプリケーション識別方法を実行する過程について説明する。電子機器1(110)のプロセッサ212は、メモリ211が含むオペレーティングシステムのコードや、少なくとも1つのコンピュータプログラムのコードによる制御命令(instruction)を実行するように実現されてよい。ここで、プロセッサ212は、電子機器1(110)に格納されたコードが提供する制御命令に従い、電子機器1(110)が、
図3の実施形態に係るチートアプリケーション識別方法が含む段階310~330を実行するように電子機器1(110)を制御してよい。
【0026】
段階310で、電子機器1(110)は、チートアプリケーションの有無を識別しようとする識別対象アプリケーションを分析して識別対象アプリケーションが含むURIスキーム(Uniform Resource Identifier scheme)を抽出してよい。URIは、インターネットのようなコンピュータネットワークにあるリソースを示す唯一のアドレスであり、特定のリソースに関する位置情報を提供する。例えば、電子機器1(110)で特定のURIに該当するリンクを開くと、このURIに該当するリソース(HTML文書、イメージなど)を探し出してダウンロードするようになる。このとき、ダウンロードしたリソースがどのような類型であり、どのように処理されるべきであるかを識別する情報として、URIスキームが活用されてよい。例えば、URI「http://www.naver.com」の「http」や「ftp://file.mycompany.com」の「ftp」がURIスキームとなる。一方、カスタム(custom)URIスキームのようにユーザによって定義されることのできるURIスキームも存在する。例えば、ユーザは、「lineapp://」の「lineapp」や「com.linecorp.game://」の「com.linecorp.game」などのように、カスタムURIスキームを定義して使用することもできる。電子機器1(110)は、識別対象アプリケーションが含むURIスキームを確認して抽出してよい。
【0027】
段階320で、電子機器1(110)は、識別対象アプリケーションがインストールされたコンピュータのオペレーティングシステムに前記抽出されたURIスキームを利用したインタラクションの処理を要請してよい。ここで、コンピュータは、電子機器1(110)に対応してよい。他の実施形態において、サーバ150が電子機器1(110)にインストールされた識別対象アプリケーションのチートアプリケーションの有無を識別しようとする場合は、コンピュータが電子機器1(110)になってよく、サーバ150がサーバ150にインストールされた識別対象アプリケーションのチートアプリケーションの有無を識別しようとする場合は、コンピュータがサーバ150になってもよい。
【0028】
一実施形態として、オペレーティングシステムが、アンドロイドオペレーティングシステムまたはiOSオペレーティングシステムを含んでよい。この場合、電子機器1(110)は、識別対象アプリケーションが、前記URIスキームを利用したインテント(Intent)の処理をアンドロイドオペレーティングシステムに要請してもよいし、URIスキームに対応するURL(uniform Resource Locator)に対するオープン可能性の処理をiOSオペレーティングシステムに要請してもよい。より具体的な例として、アンドロイドオペレーティングシステムの場合、電子機器1(110)は、”Intent(Intent.ACTION_VIEW、”lineapp://)”のように抽出されたURIスキームに対するインテントの処理を要請してよい。他の例として、iOSオペレーティングシステムの場合、電子機器1(110)は、”canOpenURL:”lineapp」//”のように抽出されたURIスキームが含まれたURLのオープン(open)可能性に対する処理を要請してよい。
【0029】
段階330で、電子機器1(110)は、インタラクションの処理が実施される場合、識別対象アプリケーションをチートアプリケーションとして識別してよい。このように、電子機器1(110)は、インタラクションの処理が実施されることを識別対象アプリケーションがオペレーティングシステムと相互作用するものと解釈してよく、このようなオペレーティングシステムとの相互作用自体をチートアプリケーションの存在として判断してよい。言い換えれば、電子機器1(110)は、オペレーティングシステムと相互作用する識別対象アプリケーションをチートアプリケーションとして識別してよい。
【0030】
他の実施形態として、電子機器1(110)は、識別対象アプリケーションがアンドロイドオペレーティングシステムにおいて特定の要請が含まれたインテントを処理するアプリケーションである場合、識別対象アプリケーションをチートアプリケーションとして識別してよい。例えば、上述した例のように、識別対象アプリケーションが”Intent(Intent.ACTION_VIEW、”lineapp://)”のようにURIスキームを利用したインテントの処理をアンドロイドオペレーティングシステムに要請する場合、電子機器1(110)は、識別対象アプリケーションをチートアプリケーションとして識別してよい。
【0031】
また他の実施形態として、電子機器1(110)は、識別対象アプリケーションがiOSオペレーティングシステムにおいて特定の要請が含まれたURLを処理するアプリケーションである場合、識別対象アプリケーションをチートアプリケーションとして識別してよい。例えば、識別対象アプリケーションが[[UIApplication sharedApplication]canOpenURL:”lineapp://”]のようにURIスキームを利用したURL処理を要請する場合、電子機器1(110)は、識別対象アプリケーションをチートアプリケーションとして識別してもよい。
【0032】
言い換えれば、
図3の実施形態のように、抽出されたURIスキームを利用したインタラクションの処理の要請をシステムが処理すること自体をチートアプリケーションの条件として判断してもよく、オペレーティングシステムに特定の要請が含まれたインテントやURLを処理することを要請することも、チートアプリケーションの条件として判断してもよい。
【0033】
このように、上述した実施形態では、実行ファイル全体ではなく、URLスキームのようなアプリケーションの特定の構成要素に基づいて該当のアプリケーションのチートアプリケーションの有無を判断することができる。このような特定の構成要素を利用したオペレーティングシステムとの相互作用は、チートアプリケーションの内容の一部を変更したとしても探知が可能であるため、新たなバージョンのチートアプリケーションも探知することができるようになる。
【0034】
図4は、本発明の一実施形態における、システムとの相互作用の有無によってアプリケーションを識別する例を示した図である。
図4は、電子機器1(110)が識別対象アプリケーションのパッケージファイル410を分析してURIスキーム420を抽出し、抽出されたURIスキーム420を利用したインテントやURLの処理を要請することを示している。このとき、オペレーティングシステムがこのような要請を直ぐに処理する場合、該当のスキームに相応するパッケージおよび/またはアプリケーションが存在することを確認してよく、このような処理が発生する場合、識別対象アプリケーションがチートアプリケーションであることを判断してよい。
【0035】
また、上述したように、識別対象アプリケーションが上述したインテントやURLの処理を要請する行為自体で、識別対象アプリケーションをチートアプリケーションとして識別してもよい。このような識別は、識別対象アプリケーションに上述した要請のためのコードが含まれているかを確認することによってなされてよい。
【0036】
また、電子機器1(110)は、抽出されたURIスキームを分析し、抽出されたURIスキームに対応するパッケージ識別子を決定してよい。例えば、「lineapp://」の「lineapp」と「com.linecorp.game://」の「com.linecorp.game」に基づいて{「com.linecorp.app」、「com.linecorp.game」}のようなパッケージ識別子を決定してよい。このとき、電子機器1(110)は、インタラクションの処理に対する応答として上記オペレーティングシステムから返還されるパッケージ識別子を決定されたパッケージ識別子と比較してチートの対象となるアプリケーションを識別してよい。
【0037】
図5は、本発明の一実施形態における、プロセスファイルまたはリストに識別しようとするアプリケーションが存在するかによってチートアプリケーションを識別する方法を示したフローチャートである。
【0038】
段階510で、電子機器1(110)は、予め識別されたチートアプリケーションの駆動により、電子機器1(110)のオペレーティングシステムと同じオペレーティングシステムで予め識別されたチートアプリケーションと関連して予め識別されたプロセス情報を格納してよい。
【0039】
段階520で、電子機器1(110)は、オペレーティングシステムのプロセス情報を示すファイルまたはリストを分析してよい。例えば、予め識別されたチートアプリケーションに対し、アンドロイド(登録商標)の「proc」ファイルでプロセスに関する情報が管理されてよく、電子機器1(110)は、このようなプロセス情報を格納してよい。この後、電子機器1(110)は、チートアプリケーションを試してみるときに、電子機器1(110)のオペレーティングシステムのプロセス情報を示すファイルまたはリストを分析してよく、格納されたプロセス情報が分析されたファイルまたはリストに存在しているかを確認してよい。
【0040】
段階530で、電子機器1(110)は、ファイルまたはリストに格納されたプロセス情報が含まれた場合、ファイルまたはリストで格納されたプロセス情報に対応するアプリケーションをチートアプリケーションとして識別してよい。
【0041】
このように、電子機器1(110)は、本実施形態において、同じオペレーティングシステムにおけるプロセス情報に基づいてチートアプリケーションを識別することができる。このようなプロセス情報も、アプリケーションの特定の構成要素として活用されてもよい。
【0042】
図5の実施形態に係るチートアプリケーション識別方法の段階510~530は、上述した実施形態と並列して実行されてもよいし、独立的に実行されてもよい。例えば、上述した実施形態と
図5の実施形態、さらに以下で説明する実施形態はすべて、それぞれ独立的に実行されてもよいが、並列して共に実行されてもよい。例えば、電子機器1(110)は、互いに異なる複数の実施形態を並列して共に実行し、複数の実施形態のうちの少なくとも1つの実施形態によって特定のアプリケーションがチートアプリケーションとして識別される場合、該当のアプリケーションをチートアプリケーションとして最終決定してもよい。他の例として、電子機器1(110)は、互いに異なる複数の実施形態を並列して共に実行し、複数の実施形態のうちの少なくとも2つ以上の実施形態によって特定のアプリケーションがチートアプリケーションとして識別される場合、該当のアプリケーションをチートアプリケーションとして最終決定してもよい。
【0043】
上述したように、本発明の実施形態は、アプリケーションの特定の構成要素に基づいてチートアプリケーションを識別することができる。このとき、特定の構成要素は、同じ機能を提供するための新たなバージョンのチートアプリケーションに、変更可能な内容の範囲に含まれない構成要素が存在することもあるし、変更可能な内容の範囲に含まれる構成要素が存在することもある。したがって、本発明の実施形態のうちの少なくとも1つの実施形態で特定される構成要素に基づいて新たなバージョンのチートアプリケーションを識別することができない可能性を考慮した上で、提示する複数の実施形態のうちの2つ以上の実施形態を併合して実施してもよい。
図3の実施形態のように、特定の内容の変更とは関係のない構成要素を活用する実施形態は、独立的に実施されてもよい。
【0044】
また他の実施形態として、電子機器1(110)は、識別対象アプリケーションと関連するファイルの格納経路に、コンピュータにインストールされた他のアプリケーションの識別のための情報が含まれた場合、識別対象アプリケーションをチートアプリケーションとして識別してよい。例えば、電子機器1(110)にアプリケーションをインストールするとき、アプリケーションが使用する固有のファイル位置が存在する。例えば、「/sdcard/Android/data/com.google.android.music/cache」のように基本的に生成される格納経路が存在する。このとき、電子機器1(110)は、格納経路から「com.goole.android.music」のような他のアプリケーションの識別のための情報を抽出してよい。このとき、電子機器1(110)は、識別対象アプリケーションと関連するファイルが、識別対象アプリケーションのための格納経路ではなく、他のアプリケーションの格納経路に格納されたものであると判断してよい。この場合、電子機器1(110)は、識別対象アプリケーションをチートアプリケーションとして識別してよい。
【0045】
図6は、本発明の一実施形態における、特定のファイルのファイル名および/または格納経路によってチートアプリケーションを識別する方法の例を示したフローチャートである。
【0046】
段階610で、電子機器1(110)は、予め識別されたチートアプリケーションが含むファイルのうち、選定されたファイルのファイル名または格納経路を格納してよい。
【0047】
段階620で、電子機器1(110)は、識別対象アプリケーションが含むファイルのうち、格納されたファイル名または格納経路に対応するファイルが存在するかを確認してよい。
【0048】
段階630で、電子機器1(110)は、格納されたファイル名または格納経路に対応するファイルが存在する場合、識別対象アプリケーションをチートアプリケーションとして識別してよい。
【0049】
このように、本実施形態に係るチートアプリケーション識別方法において、電子機器1(110)は、予め識別されたチートアプリケーションが含む特定のファイルのファイル名や格納経路と同じファイル名または格納経路を有するアプリケーションを、チートアプリケーションとして識別してよい。例えば、「gamehacker.png」、「HelloWorld.png」のようなファイル名や「/system/xbin/su」の格納経路のように、チートアプリケーションと関連して含まれる特定のファイル名および/または格納経路が活用されてよい。
【0050】
このとき、予め識別されたアプリケーションが含む特定のファイルのファイル名と格納経路は、チートアプリケーションだけの唯一性を最大限に保障できるように選定されてよもい。上述したように、ファイル名と格納経路だけでは唯一性が保障されない場合を考慮するとき、本実施形態は、他の実施形態のうちの1つと共に並列して実施されてもよい。例えば、
図3の実施形態と本実施形態を共に実施し、2つの実施形態すべてにおいて識別対象アプリケーションがチートアプリケーションとして識別された場合、電子機器1(110)は、識別対象アプリケーションをチートアプリケーションとして最終決定してもよい。
【0051】
または、
図6の実施形態は、独立的に実行されてもよい。この場合、電子機器1(110)は、段階630で、対応するファイルがチート機能を含むかを確認し、対応するファイルにチート機能が含まれる場合、識別対象アプリケーションをチートアプリケーションとして識別してもよい。言い換えれば、ファイル名や格納経路によって特定のファイルを選定した後、選定された特定のファイルがチート機能(一例として、ルーティング(rooting)機能)を含んでいるかを確認し、最終的に識別対象アプリケーションをチートアプリケーションとして決定してもよい。
【0052】
また、
図6の実施形態で選定されたファイルのファイル名は、予め識別されたチートアプリケーションが駆動中に実行するファイルのファイル名を含んでよい。また、選定されたファイルの格納経路は、予め識別されたチートアプリケーションのインストールに従ってオペレーティングシステムによって使用されるように生成されたファイルの格納経路を含んでよい。
【0053】
図7は、本発明の一実施形態における、ハッシュ値を利用してチートアプリケーションを識別する方法の例を示した図である。
【0054】
段階710で、電子機器1(110)は、予め識別されたチートアプリケーションが含むファイルのうち予め設定された種類の第1ファイルまたは第1ファイルが含む項目のうち予め設定された一部の項目に対する第1ハッシュ値を生成して格納してよい。
【0055】
段階720で、電子機器1(110)は、識別対象アプリケーションが含むファイルのうち予め設定された種類の第2ファイルまたは第2ファイルが含む項目のうち予め設定された一部の項目に対する第2ハッシュ値を生成してよい。
【0056】
段階730で、電子機器1(110)は、第1ハッシュ値と第2ハッシュ値を比較し、互いに同じである場合、識別対象アプリケーションをチートアプリケーションとして識別してよい。
【0057】
上述したように、従来技術では、予め識別されたチートアプリケーションの実行ファイルのハッシュ値を生成した後、識別対象アプリケーションと比較するために、識別対象アプリケーションのすべての実行ファイルそれぞれのハッシュ値を生成する。この反面、
図7の実施形態では、ハッシュ値を生成するファイルの種類を予め決定しておくことができる。例えば、予め設定された種類の第1ファイルおよび第2ファイルは、実行可能なELF(Executable and Linking Format)ファイル、実行可能なMach-O(Mach Object)ファイル、実行可能なPE(Portable Executable)ファイル、および圧縮ファイルのうちの少なくとも1つのファイルを含んでよい。予め設定された種類のファイルがELFファイルである場合、電子機器1(110)は、識別対象アプリケーションの実行ファイルのうちELFファイルだけに対してハッシュ値を生成すればよいため、ハッシュ値の生成にかかる時間を大幅に減らすことができる。または、特定の種類のファイルの特定の項目だけを利用してハッシュ値を生成してもよい。例えば、予め設定された一部の項目は、特定の種類のファイルのヘッダを含んでよい。言い換えれば、電子機器1(110)は、ELFファイルのヘッダだけを確認してハッシュ値を生成してよい。したがって、ハッシュ値の生成にかかる時間をさらに減らすことができる。圧縮ファイルは、「ZIP」ファイルを含んでよい。
【0058】
図8は、本発明の一実施形態における、パッケージ識別子に基づいてチートアプリケーションを識別する方法の例を示したフローチャートである。
【0059】
段階810で、電子機器1(110)は、予め識別されたチートアプリケーションのパッケージ識別子を格納してよい。このようなパッケージ識別子は、パッケージ名やバンドルIDを含んでよい。
【0060】
段階820で、電子機器1(110)は、格納されたパッケージ識別子と同じパッケージ識別子を有する第1アプリケーションがオペレーティングシステムと関連してコンピュータにインストールされている場合、第1アプリケーションをチートアプリケーションとして識別してよい。
【0061】
このように、電子機器1(110)は、識別対象アプリケーションの特定の構成要素としてパッケージ識別子を活用して識別対象アプリケーションのチートアプリケーションの有無を決定してよい。このような実施形態も、上述した他の実施形態のうちの少なくとも1つと並列して実行されてよい。
【0062】
図9は、本発明の一実施形態における、アンドロイドAPKファイルの例を示した図であり、
図10は、本発明の一実施形態における、iOS IPAファイルの例を示した図である。
図9の第1点線ボックス910と
図10の第2点線ボックス1010に示すように、アプリケーションのパッケージが、特定のファイル名「HelloWorld.png」のファイルを含んでいることが分かる。電子機器1(110)は、
図6の実施形態で説明したように、予め識別されたチートアプリケーションに基づいて把握された特定のファイル名や格納経路をアプリケーションの特定の構成要素として活用してチートアプリケーションを識別してよい。
図6の実施形態により、
図9のアンドロイドAPKファイルに対応するアプリケーションと
図10のiOS IPAファイルに対応するアプリケーションすべてがチートアプリケーションとして識別されてよい。
【0063】
上述したように、一部の実施形態で利用される特定の構成要素が、チートアプリケーションのための唯一性を保障することができないこともある。このような場合のために、2つ以上の実施形態を並列して実施してもよいことは、上述で説明したとおりである。
【0064】
このように、本発明の実施形態によると、アプリケーションの特定の構成要素を利用してチートアプリケーションを探知することができる。例えば、チートアプリケーションが、同じ機能の提供のために変更が不可能であるか変更する確率が低い特定の構成要素を利用してチートアプリケーションを探知することにより、一部の内容を変更した新たなバージョンのチートアプリケーションであっても識別することができるようになる。
【0065】
上述したシステムまたは装置は、ハードウェア構成要素、ソフトウェア構成要素、またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてもよい。実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてもよい。処理装置は、オペレーティングシステム(OS)および前記OS上で実行される1つ以上のソフトウェアアプリケーションを実行してもよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでもよい。また、並列プロセッサのような、他の処理構成も可能である。
【0066】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてもよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置、コンピュータ格納媒体または装置に永久的または一時的に具現化されてもよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で格納されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータで読み取り可能な記録媒体に格納されてもよい。
【0067】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータで読み取り可能な媒体に記録されてよい。上記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。上記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであってもよいし、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータで読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROM、DVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。
【0068】
以上のように、実施形態を、限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0069】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【符号の説明】
【0070】
110、120、130、140:電子機器
150、160:サーバ
170:ネットワーク