JP2017073132A - メモリハッキング探知方法およびシステム - Google Patents

メモリハッキング探知方法およびシステム Download PDF

Info

Publication number
JP2017073132A
JP2017073132A JP2016196407A JP2016196407A JP2017073132A JP 2017073132 A JP2017073132 A JP 2017073132A JP 2016196407 A JP2016196407 A JP 2016196407A JP 2016196407 A JP2016196407 A JP 2016196407A JP 2017073132 A JP2017073132 A JP 2017073132A
Authority
JP
Japan
Prior art keywords
variable
value
attribute
memory
memory hacking
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016196407A
Other languages
English (en)
Inventor
ソンボム アン
Sungbeom Ahn
ソンボム アン
クァンヒ ハン
Kwang-Hee Han
クァンヒ ハン
ソンヨル イム
Seong Yeol Lim
ソンヨル イム
ドンピル ソ
Dongpil Seo
ドンピル ソ
ワンジン オ
Wang Jin Oh
ワンジン オ
サンフン チョン
Sanghun Jeon
サンフン チョン
ミョンジュ チョン
Myungju Chung
ミョンジュ チョン
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.)
Z Intermediate Global Corp
Original Assignee
Line Corp
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 Line Corp filed Critical Line Corp
Publication of JP2017073132A publication Critical patent/JP2017073132A/ja
Pending legal-status Critical Current

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】メモリ上で実行されるプログラムの変数値が変造されることを探知するメモリハッキング探知方法およびシステムを提供する。【解決手段】変数属性情報を含む保護ライブラリを利用してプログラムに含まれた変数に属性を付与し420、第1属性が付与された第1変数のタイプおよび演算子を保護ライブラリを利用して再定義し、第1変数の値が変更された場合、再定義された演算子以外の演算子によって第1変数の値が変更されたかまたは第1変数の値が再定義されたタイプの範囲を脱するかに基づいて第1変数に対するメモリハッキングを探知する430。また、第2属性が付与された第2変数の値の変化を周期的にモニタリングし、第2変数の値の変化が第2属性によって設定された変化制限を脱するかに基づいて第2変数に対するメモリハッキングを探知する440。【選択図】図4

Description

下記の説明は、メモリハッキング探知方法およびシステムに関する。
メモリハッキング(Memory Hacking)とは、メモリに格納されているデータを偽造または変造する行為を意味する。例えば、電子機器にインストールされたアプリケーションに関し、ハッカーは、実行されたアプリケーション上で特定の操作によって変更された変数値をメモリから検索することによって所望する変数値を得たり偽造・変造したりする。
このようなメモリハッキングを防ぐための方法は、大きく2つに分けられる。
1つ目の方法は、変数の値を暗号化してメモリに格納するという方法である。例えば、1つ目の方法では、スカラ値(4バイト値)をストリング値(32バイト値)に変換してメモリに格納し、使用するときに復号化するという単純な暗号化方法が利用されたりする。しかし、このような方法は、データの暗号化および復号化のための追加費用(cost)が発生するという問題に加え、最新のチートツールでは単純な暗号化アルゴリズムに対して暗号化された値を検索する機能を提供するなど、ハッキング攻撃に弱いという問題がある。
2つ目の方法は、メモリに格納される値を多様な位置に分けて格納するという方法である。例えば、韓国登録特許第10−0955725号(メモリハッキング遮断方法およびシステム)は、プログラム変数が使用されるたびにプログラム変数が格納されるメモリアドレスをランダムに選択し、選択されたアドレスに格納する技術を開示している。しかし、このような方法も、多様な位置に格納された変数に対するポインタを固定させる攻撃技法により、変数の検索が可能になるという問題がある。
このように、従来技術では、メモリハッキングに対応するために検索を遮断するための多様な方式が利用されてきた。しかし、上述したように、変数の検索がより困難にはなったが、最終的には検索が可能になるということが分かる。
PCT/KR/2014/010167 US2014/0019540A1 US2013/0332543A1 US2013/0260893
段階別にメモリハッキングを探知することによってハッカー(またはチートユーザ)の水準とその行為を正確に探知することができる、メモリハッキング探知方法およびシステムを提供する。
メモリ上で実行されるプログラムの変数に対してそれぞれ属性を付与し、付与された属性に応じて互いに異なる方式でメモリハッキングを探知することができる方法およびシステムを提供する。
メモリ上で実行されるプログラムの変数に対してそれぞれ名前(識別子パラメータ)を付与し、メモリハッキングの探知の可否に関する情報だけではなく、探知されたメモリハッキングに対応する変数の名前をさらに提供することにより、どのような変数に変造が試されたかを把握することができる方法およびシステムを提供する。
開発過程ではプログラムの変数が一般の変数と同じように動作し、プログラムの配布および実際のメモリ上での実行時に保護ライブラリを利用しながら変数に対して属性の付与、タイプおよび演算子の再定義、または名前付与などの保護機能を実行することにより、プログラムの開発およびデバッギングなどの過程に追加費用を発生させずにメモリハッキングを探知することができる方法およびシステムを提供する。
メモリ上で実行されるプログラムの変数値が変造されることを探知するメモリハッキング探知方法であって、変数属性情報を含む保護ライブラリを利用して前記プログラムに含まれた変数に属性を付与するステップ、第1属性が付与された第1変数のタイプおよび演算子を前記保護ライブラリを利用して再定義し、前記第1変数の値が変更された場合、前記再定義された演算子以外の演算子によって前記第1変数の値が変更されたかまたは前記第1変数の値が前記再定義されたタイプの範囲を脱するかに基づいて前記第1変数に対するメモリハッキングを探知するステップ、および第2属性が付与された第2変数の値の変化を周期的にモニタリングし、前記第2変数の値の変化が前記第2属性によって設定された変化制限を脱するかに基づいて前記第2変数に対するメモリハッキングを探知するステップを含むことを特徴とする、メモリハッキング探知方法を提供する。
メモリ上で実行されるプログラムの変数値が変造されることを探知するメモリハッキング探知システムであって、コンピュータで読み取り可能な命令を実行するように実現された少なくとも1つのプロセッサを含み、前記少なくとも1つのプロセッサは、変数属性情報を含む保護ライブラリを利用して前記プログラムに含まれた変数に属性を付与する属性付与部、第1属性が付与された第1変数のタイプおよび演算子を前記保護ライブラリを利用して再定義し、前記第1変数の値が変更された場合、前記再定義された演算子以外の演算子によって前記第1変数の値が変更されたかまたは前記第1変数の値が前記再定義されたタイプの範囲を脱するかに基づいて前記第1変数に対するメモリハッキングを探知する第1メモリハッキング探知部、および第2属性が付与された第2変数の値の変化を周期的にモニタリングし、前記第2変数の値の変化が前記第2属性によって設定された変化制限を脱するかに基づいて前記第2変数に対するメモリハッキングを探知する第2メモリハッキング探知部を備えることを特徴とする、メモリハッキング探知システムを提供する。
段階別にメモリハッキングを探知することによってハッカー(またはチートユーザ)の水準とその行為を正確に探知することができる。
メモリ上で実行されるプログラムの変数に対してそれぞれ属性を付与し、付与された属性に応じて互いに異なる方式でメモリハッキングを探知することができる。
メモリ上で実行されるプログラムの変数に対してそれぞれ名前(識別子パラメータ)を付与し、メモリハッキングの探知の可否に関する情報だけではなく、探知されたメモリハッキングに対応する変数の名前をさらに提供することにより、どのような変数に変造が試されたかを把握することができる。
開発過程ではプログラムの変数が一般の変数と同じように動作し、プログラムの配布および実際のメモリ上での実行時に保護ライブラリを利用しながら変数に対して属性の付与、タイプおよび演算子の再定義、または名前付与などの保護機能を実行することにより、プログラムの開発およびデバッギングなどの過程に追加費用を発生させずにメモリハッキングを探知することができる。
本発明の一実施形態における、ネットワーク環境の例を示した図である。 本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。 本発明の一実施形態における、電子機器のプロセッサが含むことのできる構成要素の例を示した図である。 本発明の一実施形態における、電子機器が実行することのできるメモリハッキング探知方法の例を示したフローチャートである。 本発明の一実施形態における、第2属性が付与された変数のモニタリング過程を説明するための図である。 本発明の一実施形態における、電子機器のプロセッサが含むことのできる構成要素の他の例を示した図である。 本発明の一実施形態における、電子機器が実行することのできるメモリハッキング探知方法の他の例を示したフローチャートである。 本発明の一実施形態における、変数の値が複数の格納位置に格納される例を示した図である。
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が図1のように限定されることはない。
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定型端末や移動型端末であってもよい。複数の電子機器110、120、130、140の例としては、スマートフォン(smart phone)、携帯電話、ナビゲーション、コンピュータ、ノート型パンコン、デジタル放送用端末、PDA(Personal Digital Assistants)、PMP(Portable Multimedia Player)、タブレットPCなどがある。一例として、電子機器1(110)は、無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信してもよい。
通信方式が制限されることはなく、ネットワーク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つ以上を含んでもよいが、これに制限されることはない。
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供するコンピュータ装置または複数のコンピュータ装置によって実現されてもよい。
一例として、サーバ160は、ネットワーク170を介して接続した電子機器1(110)にアプリケーションのインストールのためのファイルを提供してもよい。この場合、電子機器1(110)は、サーバ160から提供されたファイルを利用してアプリケーションをインストールしてもよい。また、電子機器1(110)が含むオペレーティングシステム(Operating System:OS)および少なくとも1つのプログラム(一例として、ブラウザや前記インストールされたアプリケーション)の制御にしたがってサーバ150に接続し、サーバ150が提供するサービスやコンテンツの提供を受けてもよい。例えば、電子機器1(110)がアプリケーションの制御にしたがってネットワーク170を介してサービスリクエストメッセージをサーバ150に送信すると、サーバ150はサービスリクエストメッセージに対応するコードを電子機器1(110)に送信してもよく、電子機器1(110)はアプリケーションの制御にしたがってコードに基づいた画面を構成して表示することにより、ユーザにコンテンツを提供してもよい。他の例として、サーバ150は、メッセージングサービスのための通信セッションを設定し、設定された通信セッションを通じて複数の電子機器110、120、130、140間のメッセージ送受信をルーティングしてもよい。
図2は、本発明の一実施形態における、電子機器およびサーバの内部構成を説明するためのブロック図である。図2では、1つの電子機器に対する例として電子機器1(110)を、1つのサーバに対する例としてサーバ150の内部構成を説明する。他の電子機器120、130、140やサーバ160も、同一または類似の内部構成を備えてもよい。
電子機器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)を含んでよい。また、メモリ211、221には、オペレーティングシステムと、少なくとも1つのプログラムコード(一例として、電気機器1(110)にインストールされ駆動するブラウザや上述したアプリケーションなどのためのコード)が格納されてよい。このようなソフトウェア構成要素は、ドライブメカニズム(drive mechanism)を利用してメモリ211、221とは別のコンピュータで読み取り可能な記録媒体からロードされてもよい。このような別のコンピュータで読み取り可能な記録媒体は、フロッピーディスク、ディスク、テープ、DVD/CD−ROM、メモリカードなどのコンピュータで読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータで読み取り可能な記録媒体ではない通信モジュール213、223を利用してメモリ211、221にロードされてもよい。例えば、少なくとも1つのプログラムは、開発者またはアプリケーションのインストールファイルを配布するファイル配布システム(一例として、上述したサーバ160)がネットワーク170を介して提供するファイルによってインストールされるプログラム(一例として、上述したアプリケーション)に基づいてメモリ211、221にロードされてもよい。
プロセッサ212、222は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ211、221または通信モジュール213、223によって、プロセッサ212、222に提供されてよい。例えば、プロセッサ212、222は、メモリ211、221のような記録装置に格納されたプログラムコードにしたがって受信される命令を実行するように構成されてもよい。
通信モジュール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)がさらに含むことのできる格納媒体に格納されてもよい。
入力/出力インタフェース214、224は、入力/出力装置215とのインタフェースのための手段であってもよい。例えば、入力装置は、キーボードまたはマウスなどの装置を、また出力装置はアプリケーションの通信セッションを表示するためのディスプレイのような装置を含んでもよい。他の例として、入力/出力インタフェース214は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。より具体的な例として、電子機器1(110)のプロセッサ212は、メモリ211にロードされたコンピュータプログラムの命令を処理するにあたり、サーバ150や電子機器2(120)が提供するデータを利用して構成されるサービス画面やコンテンツが、入力/出力インタフェース214を通じてディスプレイに表示されてもよい。
また、他の実施形態において、電子機器1(110)およびサーバ150は、図2の構成要素よりもさらに多くの構成要素を含んでもよい。しかし、大部分の従来技術の構成要素を明確に図に示す必要はない。例えば、電子機器1(110)は、上述した入力/出力装置215のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ(transceiver)、GPS(Global Positioning System)モジュール、カメラ、各種センサ、データベースなどのような他の構成要素をさらに含んでもよい。
図3は、本発明の一実施形態における、電子機器のプロセッサが含むことのできる構成要素の例を示した図であり、図4は、本発明の一実施形態における、電子機器が実行することのできるメモリハッキング探知方法の例を示したフローチャートである。電子機器1(110)はメモリハッキング探知システムを構成してもよく、このために、図3に示すように電子機器1(110)のプロセッサ212は、属性付与部310、第1メモリハッキング探知部320、および第2メモリハッキング探知部330を備えてもよい。このようなプロセッサ212およびプロセッサ212の構成要素は、図4のメモリハッキング探知方法が含むステップ410〜ステップ440を実行するように電子機器1(110)を制御してもよく、このような制御のためにメモリ211が含むオペレーティングシステムのコードと少なくとも1つのプログラム(アプリケーション)のコード(コンピュータで読み取り可能な命令)を実行するように実現されてもよい。
ステップ410で、プロセッサ212は、メモリハッキング探知方法のためのプログラムのファイルに格納されたプログラムコードをメモリ211にロードしてもよい。例えば、プログラムのプログラムファイルは、ファイル配布サーバによってネットワークを介して提供されてもよく、電子機器1(110)にプログラムをインストール(install)するために利用されてもよい。電子機器1(110)にインストールされたプログラムが実行される場合、プロセッサ212はプログラムコードをメモリ211にロードしてもよい。
ここで、プロセッサ212およびプロセッサ212が備える属性付与部310、第1メモリハッキング探知部320、および第2メモリハッキング探知部330それぞれは、メモリ211にロードされたプログラムコードのうち対応する部分を実行して以後のステップ420〜ステップ440を実行してもよい。ここで、プロセッサ212およびプロセッサ212の構成要素は、ハッキング探知方法を実行するにあたって電子機器1(110)を制御してもよい。例えば、プロセッサ212は、電子機器1(110)が含むメモリ211に特定のデータ(一例として、変数の値)を格納するように電子機器1(110)を制御してもよい。
ステップ420で、属性付与部310は、変数属性情報を含む保護ライブラリを利用してプログラムに含まれた変数に属性を付与してもよい。
例えば、演算子によってのみ値が変更される変数の場合、この変数には、オペレータ属性として第1属性が付与されてもよい。以下で説明するが、このような変数に対しては、変数のタイプおよび演算子の再定義によってメモリハッキングが探知されてもよい。
さらに他の例として、演算子の再定義によってはメモリハッキングの保護や探知が困難な変数が存在する。このような変数には第2属性が付与されてもよい。より具体的な例として、値が変わらない固定値を有する変数や、値が増加だけしたり減少だけしたりする変数が存在する。ここで、固定値を有する変数には変更不可(unchangeable)属性が、値が増加だけする変数には増加(increase)属性が、値が減少だけする変数には減少(decrease)属性がそれぞれ第2属性として付与されてもよい。
保護ライブラリは、プログラムのインストールのためのファイルの配布過程でファイルに追加されてもよい。例えば、開発者はメモリハッキングに対して別段考慮せずにプログラムを開発したりもするし、プログラムのインストールのためのファイルを配布したりもする。このとき、ファイルが配布される過程でファイル(一例として、アンドロイド応用プログラムパッケージ(Android application Package:APK)ファイル)に保護ライブラリが追加されてもよい。このような保護ライブラリは、開発者のシステム、プログラムのダウンロードを管理するアプリストアなどのファイル配布システム、またはその他の保護システムを通じてプログラムのファイルに追加されてもよい。
ステップ430で、第1メモリハッキング探知部320は、第1属性が付与された第1変数のタイプおよび演算子を保護ライブラリを利用して再定義し、第1変数の値が変更された場合、再定義された演算子以外の演算子によって第1変数の値が変更されたかまたは第1変数の値が再定義されたタイプの範囲を脱するかに基づいて第1変数に対するメモリハッキングを探知してもよい。
基本的に、変数のタイプと演算子は、プログラムが駆動するオペレーティングシステム(OS:Operating System)またはプログラム言語(Program Language)によって定義される。例えば、「INT」タイプの変数は定数値を有するように定義され、「FLOAT」タイプの変数は実数値を有するように定義される。さらに、演算子「+」は左右の変数値を足した値を生成するように定義され、演算子「−」は左右の変数値の差値を生成するように定義される。
ここで、第1メモリハッキング探知部320は、変数のうちで第1属性が付与された変数(第1変数)に対しては、このような変数のタイプと演算子を再定義してもよい。例えば、第1メモリハッキング探知部320は、「INT」タイプの変数が定数値ではない正の定数値を有するように、そして「FLOAT」タイプの変数が実数値ではない正の実数値を有するようにタイプを再定義してもよい。また、第1メモリハッキング探知部320は、演算子「+」は左右の変数値を足した値の絶対値を生成するように、そして演算子「−」は左右の変数値の差値の絶対値を生成するように演算子を再定義してもよい。
この場合、第1メモリハッキング探知部320は、再定義された演算子によって第1変数の値が変更されない場合、第1変数に対するメモリハッキングを探知してもよい。また、第1メモリハッキング探知部320は、第1変数の値が再定義されたタイプの範囲を脱するかに基づいて第1変数に対するメモリハッキングを探知してもよい。例えば、再定義された「INT」タイプの第1変数が負数の値を有する場合、第1メモリハッキング探知部320はメモリハッキングを探知してもよい。
ステップ440で、第2メモリハッキング探知部330は、第2属性が付与された第2変数の値の変化を周期的にモニタリングし、前記第2変数の値の変化が第2属性によって設定された変化制限を脱するかに基づいて第2変数に対するメモリハッキングを探知してもよい。
上述した第1属性において、変数のタイプによって変数が有することのできる値の範囲に対する属性であれば、第2属性は変数自体の属性であってもよい。上述したように、第2属性は、変数でありながらも値が固定ではなければならない変数の変更不可属性、値が常に増加しなければならない変数の増加属性、または値が常に減少しなければならない変数の減少属性などが第2属性に含まれてもよい。
例えば、第2メモリハッキング探知部330は、ステップ440で、変更不可属性が付与された第2変数の値を読み取り専用属性のデータファイルを利用して管理し、第2変数の値が読み取り専用属性のデータファイルに格納された値とは異なる場合、第2変数に対するメモリハッキングを探知してもよい。読み取り専用属性のデータファイルは、格納されたデータの変更が不可能であるため、第2メモリハッキング探知部330は、該当のデータファイルに変更不可属性が付与された第2変数の値を格納しておき、これを第2変数の値と比較することによって第2変数が変更されたかを確認してもよい。ここで、変更不可属性が付与された第2変数の値が変更されたということは、メモリハッキングが発生したことを意味することができるため、第2メモリハッキング探知部330はメモリハッキングを探知することができるようになる。
他の例として、第2メモリハッキング探知部330は、ステップ440で、周期的にモニタリングされた増加属性が付与された第2変数の値が以前の値に比べて増加していないか、周期的にモニタリングされた減少属性が付与された第2変数の値が以前の値に比べて減少していない場合、第2変数に対するメモリハッキングを探知してもよい。例えば、ゲーム上の時間と関連する第2変数には、増加属性または減少属性が付与されることがある。このような第2変数は、時間の流れに応じて持続的に増加または減少しなければならないが、第2変数が増加したり減少したりしない場合、第2メモリハッキング探知部330はメモリハッキングを探知してもよい。
ステップ430とステップ440の実行順序は互いに変更されてもよいし、互いに同時に行われてもよい。
図5は、本発明の一実施形態における、第2属性が付与された変数のモニタリング過程を説明するための図である。第2属性が付与された第2変数510の値は、ヒープ(Heap)520やスタック(stack)のように第2変数510に割り当てられたメモリの記憶領域に格納されてもよい。メモリハッキングは、このような第2変数510が格納されたメモリの記憶領域を検索して行われるようになる。図3および図4を参照しながら説明した第2メモリハッキング探知部330は、第2変数510に第2属性が付与されて登録されると、値変造をモニタリングするためのスレッド(Thread)530を生成し、記憶領域(図5のヒープ520)に格納された第2変数510の値を周期的にモニタリングすることによってメモリハッキングを探知してもよい。例えば、図5の第2変数510が変更不可属性が付与された変数であると仮定するとき、第2変数510の登録時に読み取り専用属性のデータファイル540が生成されて第2変数510の値が格納されてもよい。このとき、スレッド530は、ヒープ520に格納された値と読み取り専用属性のデータファイル540に格納された値とを比べることによって第2変数510に対するメモリハッキングを探知してもよい。
ここで、第2変数510は、プログラムの開発段階で設定(一例として、SDK(Software Development Kitを利用して)され、第2変数510の値の格納や属性の付与、モニタリングなどは、保護ライブラリを利用して処理されることが分かる。したがって、開発者がメモリハッキングに対して考慮する必要がなく、プログラムの開発だけに専念することができるようになる。
また、メモリハッキング探知システムは、探知されたメモリハッキングに対する変数に関する情報を提供することも可能である。このために、変数には特定の名前のような識別子パラメータが付与されてもよい。例えば、プログラムコードにおいて、変数の名前は、全域変数と地域変数が互いに同じ名前を有することができるため(一例として、全域変数aと地域変数aは互いに異なる変数)、単に変数の名前だけでは特定の変数を識別することが難しい。したがって、特定の変数のための識別子パラメータが追加で付加されてもよく、メモリハッキングと関連する変数に対してはこのような識別子パラメータを提供することにより、どのような変数の値に対して変造が試されたかを把握することができる。
図6は、本発明の一実施形態における、電子機器のプロセッサが含むことのできる構成要素の他の例を示した図であり、図7は、本発明の一実施形態における、電子機器が実行することのできるメモリハッキング探知方法の他の例を示したフローチャートである。
図6に示すように、電子機器1(110)のプロセッサ212は、図3に示す属性付与部310、第1メモリハッキング探知部320、および第2メモリハッキング探知部330の他に、識別子パラメータ付与部610およびメッセージ提供部620をさらに備えてもよい。このようなプロセッサ212およびプロセッサ212の構成要素は、図7のメモリハッキング探知方法が含むステップ410〜ステップ440、ステップ710およびステップ720を実行するように電子機器1(110)を制御してもよく、このような制御のためにメモリ211が含むオペレーティングシステムのコードと少なくとも1つのプログラム(アプリケーション)のコード(コンピュータで読み取り可能な命令)を実行するように実現されてもよい。
属性付与部310、第1メモリハッキング探知部320、および第2メモリハッキング探知部330、またはステップ410〜ステップ440については、図3および図4を参照しながら上述したとおりであるため、繰り返される説明は省略する。
ステップ710は、ステップ410以後そしてステップ430以前に実行されてもよい。図7ではステップ710がステップ420以後に実行される実施形態について説明しているが、ステップ410以後に実行されても問題ない。
ステップ710で、識別子パラメータ付与部610は、保護ライブラリを利用してプログラムに含まれた変数に識別子パラメータを付与してもよい。それぞれの変数は、このような識別子パラメータに基づいて識別されてもよい。
例えば、既存の変数「INT m_HP」は、識別子パラメータ「体力」とオペレータ属性「ARMOR_OPERATOR」が付与されて再定義され、「m_HP.Init(“体力”、ARMOR_OPERATOR)」のように表現されてもよい。
他の例として、既存の変数「BYTE m_StaticValue」は、識別子パラメータ「リソース値」と変更不可属性「ARMOR_UNCHANGEABLE」および固定値「256」が付与され、「m_StaticValue.Byte(“リソース値”、ARMOR_UNCHANGEABLE、256)」のように表現されてもよい。
ステップ710とステップ420が実行された後にはステップ430およびステップ440が実行されてもよい。ここで、ステップ720は、ステップ430またはステップ440でメモリハッキングが探知された後に実行されてもよい。
ステップ720で、メッセージ提供部620は、メモリハッキングが探知された場合、メモリハッキングの探知の可否に関する情報およびメモリハッキングに対応する変数の識別子パラメータが含まれたメッセージを提供してもよい。提供されたメッセージは、開発者のシステムやプログラムを通じてサービスを提供するサーバ150またはプログラムのインストールファイルを提供したサーバ160などに電子機器1(110)を通じて送信されてもよい。したがって、開発者やサービス提供者またはプログラムの配布者がメモリハッキングの行為を正確に探知することができ、このような探知情報に基づいて事業的分析によるアフターケア(一例として、該当のユーザに対する制裁)をすることが可能となる。
他の実施形態では、変数に付与された属性に関する情報を提供することも可能である。例えば、メッセージ提供部620は、メモリハッキングが探知された場合、メモリハッキングの探知の可否に関する情報およびメモリハッキングに対応する変数の属性に関する情報が含まれたメッセージを提供してもよい。この場合、開発者やサービス提供者またはプログラムの配布者は、どのような属性の変数に対して変造が試されたかを把握することができるようになる。この場合、識別子パラメータ付与部610やステップ710は省略されてもよい。さらに他の実施形態では、メモリハッキングが試された変数に対する識別子パラメータと属性がすべて含まれたメッセージが送信されてもよい。
変更された変数の値は、1つの格納位置ではなく複数の格納位置に格納されてもよい。また、変数のフィッシング値を利用することにより、ハッカーが変数の真値ではないフィッシング値に変造を試すように誘導してもよい。これだけでなく、変数の真値を重複格納してバックアップすることによって変数の値の変造をモニタリングしてもよい。
図8は、本発明の一実施形態における、変数の値が複数の格納位置に格納される例を示した図である。
先ず、変数の値を複数の格納位置に格納する実施形態について説明する。
本実施形態のために、プロセッサ212は、変数値管理部(図示せず)をさらに備えてもよく、変数値管理部は、プログラムの1つの変数に対して変数の値を格納するための複数の格納位置を割り当て、1つの変数の値が変更された場合、複数の格納位置のうち順に選択された格納位置に変更された変数の値を格納し、変更された変数の値が格納された複数の格納位置それぞれに対する指示情報を管理するステップ(図示せず)を実行してもよい。このような図に示されていないステップは、ステップ410以後そしてステップ430以前に実行されてもよい。例えば、図8の実施形態において、第1変数810に対して変更された値は、再定義された演算子の処理のための保安ライブラリの演算子クラス820と値格納クラス830を通じて複数の格納位置(Heap1、Heap2、およびHeap3)に順に格納されてもよい。例えば、1番目に変更された第1変数810の値がHeap1に格納された後、2番目変更された第1変数810の値はHeap2に格納されてもよい。すなわち、1つの変数に対する値が多数の格納位置に格納されるため、ハッカーが特定の変数に対する値を得ることが困難になり、値を得たとしても、これを変造すればまた新たな格納位置に変造された値が格納されなければならないため、該当の変数に対するメモリハッキングを遮断することができる。
ここで、プロセッサ212は、第3メモリハッキング探知部(図示せず)をさらに備えてもよい。第3メモリハッキング探知部は、指示情報に対する操作の可否をモニタリングしてメモリハッキングを探知するステップ(図示せず)を実行してもよい。例えば、図8では、指示情報の例としてポインタ840を示している。ここで、第3メモリハッキング探知部は、保安ライブラリの値およびポインタ探知クラス850を通じてポインタ840の変造や固定を探知してメモリハッキングを探知してもよい。このような図に示されていないステップは、ステップ420またはステップ710以後に実行されてもよい。
また、変数のフィッシング値を利用する実施形態について説明する。
プロセッサ212は、フィッシング値管理部(図示せず)をさらに備えてもよく、プログラムの変数の値に対するフィッシング(fishing)値を格納するためのフィッシング格納位置を割り当て、変数の値が変更された場合、フィッシング格納位置に格納されたフィッシング値を予め設定された値に変更するステップ(図示せず)をさらに実行してもよい。このような図に示されていないステップは、図4のステップ430以前に実行されてもよい。例えば、図8では、第1変数810に対するフィッシング値が、上述したフィッシング格納位置としてフィッシング値Heap4(860)に格納される例を示している。
このとき、プロセッサ212は、第4メモリハッキング探知部(図示せず)をさらに備えてもよい。第4メモリハッキング探知部は、フィッシング格納位置に格納された予め設定された値の変造の可否に基づいて前記メモリハッキングを探知するステップ(図示せず)を実行してもよい。このような図に示されていないステップは、ステップ420またはステップ710以後に実行されてもよい。例えば、図8において、第4メモリハッキング探知部は、保安ライブラリの値およびポインタ探知クラス850を通じてフィッシング値の変造を探知してメモリハッキングを探知してもよい。フィッシング値は予め設定されてもよく、フィッシング値Heap4(860)に格納された値がこのような予め設定された値ではない他の値に変造された場合には、メモリハッキングが試されたということを把握することができる。
また、変数の真値を重複格納する実施形態について説明する。
プロセッサ212は、変数値管理部(図示せず)および第5メモリハッキング探知部(図示せず)をさらに備えてもよい。
変数値管理部は、プログラムの変数の値が変更された場合、変更された変数の値を複数の格納位置に重複格納するステップ(図示せず)を実行してもよい。このような図に示されていないステップは、ステップ410以後にステップ430以前に実行されてもよい。
また、第5メモリハッキング探知部は、複数の格納位置に重複格納された値を比べることによって変更された変数の値に対する変造を探知するステップ(図示せず)をさらに実行してもよい。このような図に示されていないステップは、ステップ420またはステップ710以後に実行されてもよい。例えば、図8において、第1変数810の真値は、重複格納空間である現在真値バックアップ540に格納されてもよい。ここで、第5メモリハッキング探知部は、保安ライブラリの値およびポインタ探知クラス850を通じてHeap1、Heap2、Heap3のうちの1つに格納された現在真値と現在真値バックアップ540に格納された真値とを比べることによって第1変数810の値が変造されたかを把握してもよい。
このように、本発明の実施形態によると、段階別にメモリハッキングを探知することにより、ハッカー(またはチートユーザ)の水準とその行為を正確に探知することができる。また、メモリ上で実行されるプログラムの変数に対してそれぞれ属性を付与し、付与された属性に応じて互いに異なる方式でメモリハッキングを探知することができる。
これだけでなく、メモリ上で実行されるプログラムの変数に対してそれぞれ名前(識別子パラメータ)を付与することにより、メモリハッキングの探知の可否に関する情報だけではなく、探知されたメモリハッキングに対応する変数の名前をさらに提供し、どのような変数に変造が試されたかを把握することができる。
これに加え、開発過程ではプログラムの変数が一般の変数と同じように動作し、プログラムの配布および実際のメモリ上での実行時に保護ライブラリを利用しながら変数に対して属性の付与、タイプおよび演算子の再定義、または名前付与などの保護機能を実行することにより、プログラムの開発およびデバッギングなどの過程に追加費用を発生させずにメモリハッキングを探知することができる。
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および/またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてもよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてもよい。処理装置は、オペレーティングシステム(OS)および前記OS上で実行される1つ以上のソフトウェアアプリケーションを実行してもよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してもよい。便宜的な理解のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数個の処理要素(processing element)および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでもよい。また、並列プロセッサ(parallel processor)のような、他の処理構成(processing configuration)も可能である。
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、思うままに動作するように処理装置を構成したり、独立的または集合的に(collectively)処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供するために、いかなる種類の機械、コンポーネント、物理装置、仮想装置(virtual equipment)、コンピュータ格納媒体または装置、または送信される信号波(signal wave)に永久的または一時的に具現化(embody)されてもよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された方法によって格納されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータで読み取り可能な記録媒体に格納されてもよい。
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータで読み取り可能な媒体に記録されてもよい。前記コンピュータで読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでもよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであってもよいし、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータで読み取り可能な記録媒体の例としては、ハードディスク、フロッピーディスク、および磁気テープのような磁気媒体、CD−ROM、DVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。上述したハードウェア装置は、実施形態の動作を実行するために1つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同じである。
以上のように、実施形態を限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能である。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、および/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
110、120、130、140:電子機器
150、160:サーバ
170:ネットワーク

Claims (20)

  1. メモリ上で実行されるプログラムの変数値が変造されることを探知するメモリハッキング探知方法であって、
    変数属性情報を含む保護ライブラリを利用して前記プログラムに含まれた変数に属性を付与するステップ、
    第1属性が付与された第1変数のタイプおよび演算子を前記保護ライブラリを利用して再定義し、前記第1変数の値が変更された場合、前記再定義された演算子以外の演算子によって前記第1変数の値が変更されたかまたは前記第1変数の値が前記再定義されたタイプの範囲を脱するかに基づいて前記第1変数に対するメモリハッキングを探知するステップ、および
    第2属性が付与された第2変数の値の変化を周期的にモニタリングし、前記第2変数の値の変化が前記第2属性によって設定された変化制限を脱するかに基づいて前記第2変数に対するメモリハッキングを探知するステップ
    を含むことを特徴とする、メモリハッキング探知方法。
  2. 前記第2属性は、値が変更されない変更不可(unchangeable)属性を含み、
    前記第2変数に対するメモリハッキングを探知するステップは、
    前記変更不可属性が付与された前記第2変数の値を読み取り専用属性のデータファイルを利用して管理し、前記第2変数の値が前記読み取り専用属性のデータファイルに格納された値とは異なる場合、前記第2変数に対するメモリハッキングを探知することを特徴とする、請求項1に記載のメモリハッキング探知方法。
  3. 前記第2属性は、値が増加だけする増加(increase)属性または値が減少だけする減少(decrease)属性を含み、
    前記第2変数に対するメモリハッキングを探知するステップは、
    周期的にモニタリングされた前記増加属性が付与された前記第2変数の値が以前の値に比べて増加していないか、周期的にモニタリングされた前記減少属性が付与された前記第2変数の値が以前の値に比べて減少していない場合、前記第2変数に対するメモリハッキングを探知することを特徴とする、請求項1に記載のメモリハッキング探知方法。
  4. 前記保護ライブラリを利用して前記プログラムに含まれた変数に識別子パラメータを付与するステップ、および
    前記メモリハッキングが探知された場合、前記メモリハッキングの探知の可否に関する情報および前記メモリハッキングに対応する変数の識別子パラメータが含まれたメッセージを提供するステップ
    をさらに含むことを特徴とする、請求項1に記載のメモリハッキング探知方法。
  5. 前記メモリハッキングが探知された場合、前記メモリハッキングの探知の可否に関する情報および前記メモリハッキングに対応する変数の属性に関する情報が含まれたメッセージを提供するステップ
    をさらに含むことを特徴とする、請求項1に記載のメモリハッキング探知方法。
  6. 前記プログラムの1つの変数に対して変数の値を格納するための複数の格納位置を割り当て、前記1つの変数の値が変更された場合、前記複数の格納位置のうち順に選択された格納位置に前記変更された変数の値を格納し、前記変更された変数の値が格納された前記複数の格納位置それぞれに対する指示情報を管理するステップ
    をさらに含むことを特徴とする、請求項1に記載のメモリハッキング探知方法。
  7. 前記指示情報に対する操作をモニタリングして前記メモリハッキングの可否を探知するステップ
    をさらに含むことを特徴とする、請求項6に記載のメモリハッキング探知方法。
  8. 前記プログラムの変数の値に対するフィッシング(fishing)値を格納するためのフィッシング格納位置を割り当て、前記変数の値が変更された場合、前記フィッシング格納位置に格納されたフィッシング値を予め設定された値に変更するステップ、および
    前記フィッシング格納位置に格納された予め設定された値の変造の可否に基づいて前記メモリハッキングを探知するステップ
    をさらに含むことを特徴とする、請求項1に記載のメモリハッキング探知方法。
  9. 前記プログラムの変数の値が変更された場合、前記変更された変数の値を複数の格納位置に重複格納するステップ、および
    前記複数の格納位置に重複格納された値を比べて前記変更された変数の値に対する変造を探知するステップ
    をさらに含むことを特徴とする、請求項1に記載のメモリハッキング探知方法。
  10. 前記保護ライブラリは、前記プログラムのインストールのためのファイルの配布過程で前記ファイルに追加されることを特徴とする、請求項1に記載のメモリハッキング探知方法。
  11. 請求項1〜10のいずれか一項に記載の方法を実行するためのプログラムが記録されていることを特徴とする、コンピュータで読み取り可能な記録媒体。
  12. メモリ上で実行されるプログラムの変数値が変造されることを探知するメモリハッキング探知システムであって、
    コンピュータで読み取り可能な命令を実行するように実現された少なくとも1つのプロセッサ
    を含み、
    前記少なくとも1つのプロセッサは、
    変数属性情報を含む保護ライブラリを利用して前記プログラムに含まれた変数に属性を付与する属性付与部、
    第1属性が付与された第1変数のタイプおよび演算子を前記保護ライブラリを利用して再定義し、前記第1変数の値が変更された場合、前記再定義された演算子以外の演算子によって前記第1変数の値が変更されたかまたは前記第1変数の値が前記再定義されたタイプの範囲を脱するかに基づいて前記第1変数に対するメモリハッキングを探知する第1メモリハッキング探知部、および
    第2属性が付与された第2変数の値の変化を周期的にモニタリングし、前記第2変数の値の変化が前記第2属性によって設定された変化制限を脱するかに基づいて前記第2変数に対するメモリハッキングを探知する第2メモリハッキング探知部
    を備えることを特徴とする、メモリハッキング探知システム。
  13. 前記第2属性は、値が変更されない変更不可属性を含み、
    前記第2メモリハッキング探知部は、
    前記変更不可属性が付与された前記第2変数の値を読み取り専用属性のデータファイルを利用して管理し、前記第2変数の値が前記読み取り専用属性のデータファイルに格納された値とは異なる場合、前記第2変数に対するメモリハッキングを探知することを特徴とする、請求項12に記載のメモリハッキング探知システム。
  14. 前記第2属性は、値が増加だけする増加属性または値が減少だけする減少属性を含み、
    前記第2メモリハッキング探知部は、
    周期的にモニタリングされた前記増加属性が付与された前記第2変数の値が以前の値に比べて増加していないか、周期的にモニタリングされた前記減少属性が付与された前記第2変数の値が以前の値に比べて減少していない場合、前記第2変数に対するメモリハッキングを探知することを特徴とする、請求項12に記載のメモリハッキング探知システム。
  15. 前記少なくとも1つのプロセッサは、
    前記保護ライブラリを利用して前記プログラムに含まれた変数に識別子パラメータを付与する識別子パラメータ付与部、および
    前記メモリハッキングが探知された場合、前記メモリハッキングの探知の可否に関する情報および前記メモリハッキングに対応する変数の識別子パラメータが含まれたメッセージを提供するメッセージ提供部
    をさらに備えることを特徴とする、請求項12に記載のメモリハッキング探知システム。
  16. 前記少なくとも1つのプロセッサは、
    前記メモリハッキングが探知された場合、前記メモリハッキングの探知の可否に関する情報および前記メモリハッキングに対応する変数の属性に関する情報が含まれたメッセージを提供するメッセージ提供部
    をさらに備えることを特徴とする、請求項12に記載のメモリハッキング探知システム。
  17. 前記少なくとも1つのプロセッサは、
    前記プログラムの1つの変数に対して変数の値を格納するための複数の格納位置を割り当て、前記1つの変数の値が変更された場合、前記複数の格納位置のうち順に選択された格納位置に前記変更された変数の値を格納し、前記変更された変数の値が格納された前記複数の格納位置それぞれに対する指示情報を管理する変数値管理部
    をさらに備えることを特徴とする、請求項12に記載のメモリハッキング探知システム。
  18. 前記少なくとも1つのプロセッサは、
    前記指示情報に対する操作の可否をモニタリングして前記メモリハッキングを探知する第3メモリハッキング探知部
    をさらに備えることを特徴とする、請求項17に記載のメモリハッキング探知システム。
  19. 前記少なくとも1つのプロセッサは、
    前記プログラムの変数の値に対するフィッシング(fishing)値を格納するためのフィッシング格納位置を割り当て、前記変数の値が変更された場合、前記フィッシング格納位置に格納されたフィッシング値を予め設定された値に変更するフィッシング値管理部、および
    前記フィッシング格納位置に格納された予め設定された値の変造の可否に基づいて前記メモリハッキングを探知する第4メモリハッキング探知部
    をさらに備えることを特徴とする、請求項12に記載のメモリハッキング探知システム。
  20. 前記プログラムの変数の値が変更された場合、前記変更された変数の値を複数の格納位置に重複格納する変数値管理部、および
    前記複数の格納位置に重複格納された値を比べて前記変更された変数の値に対する変造を探知する第5メモリハッキング探知部
    をさらに備えることを特徴とする、請求項12に記載のメモリハッキング探知システム。
JP2016196407A 2015-10-07 2016-10-04 メモリハッキング探知方法およびシステム Pending JP2017073132A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150141092A KR20170041536A (ko) 2015-10-07 2015-10-07 메모리 해킹 탐지 방법 및 시스템
KR10-2015-0141092 2015-10-07

Publications (1)

Publication Number Publication Date
JP2017073132A true JP2017073132A (ja) 2017-04-13

Family

ID=58499590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016196407A Pending JP2017073132A (ja) 2015-10-07 2016-10-04 メモリハッキング探知方法およびシステム

Country Status (3)

Country Link
US (1) US20170103205A1 (ja)
JP (1) JP2017073132A (ja)
KR (1) KR20170041536A (ja)

Also Published As

Publication number Publication date
US20170103205A1 (en) 2017-04-13
KR20170041536A (ko) 2017-04-17

Similar Documents

Publication Publication Date Title
JP6815385B2 (ja) アプリケーションのコード難読化のためのシステムおよび方法
JP6936016B2 (ja) パッケージファイルに対する機能拡張方法およびシステム
US10255443B2 (en) Method, apparatus, system and non-transitory computer readable medium for code protection
CN111143869B (zh) 应用程序包处理方法、装置、电子设备及存储介质
US9195809B1 (en) Automated vulnerability and error scanner for mobile applications
CN104516783A (zh) 权限控制方法和装置
GB2514550A (en) System and method for providing access to a resource for a computer from within a restricted network and storage medium storing same
JP6935617B2 (ja) 中間言語ファイルのロード速度改善のための方法およびシステム
JP2018527664A (ja) アプリケーションのコードを保護するためのシステムおよび方法
CN111163094A (zh) 网络攻击检测方法、网络攻击检测装置、电子设备和介质
JP2018521403A (ja) バイナリ併合装置、その方法及び該コンピュータプログラム
KR101814897B1 (ko) 파일 보호 방법 및 시스템
CN116249980A (zh) 通过异构加密的软件访问
KR101992698B1 (ko) 치팅 어플리케이션 식별 방법 및 시스템
KR102382889B1 (ko) 프로세스 정보를 사용하여 웹쉘을 탐지하는 방법 및 시스템
KR101823226B1 (ko) 코드 보호 방법 및 시스템
JP2017073132A (ja) メモリハッキング探知方法およびシステム
JP2017220236A (ja) クライアント改ざん判断システムおよび方法
CN115935380A (zh) 用于容器中的数据的自动加密系统
JP7015120B2 (ja) アプリケーションパッケージを提供する方法およびシステム、アプリケーションを実行する方法およびシステム
KR20210154017A (ko) 클래스 분산 및 순차적 메모리 적재를 이용한 파일 보호 방법 및 시스템
US10091233B2 (en) Method and apparatus for controlling functionality using codes
KR101771348B1 (ko) 패키지 파일에 대한 패킹 방법 및 시스템
KR102677540B1 (ko) 네이티브 라이브러리를 보호하는 방법 및 시스템
KR20180048518A (ko) 패키지 파일에 대한 기능 확장 방법 및 시스템

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190301

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190307

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190308