JP5161022B2 - 解析装置、解析方法及び解析プログラム - Google Patents

解析装置、解析方法及び解析プログラム Download PDF

Info

Publication number
JP5161022B2
JP5161022B2 JP2008260049A JP2008260049A JP5161022B2 JP 5161022 B2 JP5161022 B2 JP 5161022B2 JP 2008260049 A JP2008260049 A JP 2008260049A JP 2008260049 A JP2008260049 A JP 2008260049A JP 5161022 B2 JP5161022 B2 JP 5161022B2
Authority
JP
Japan
Prior art keywords
instruction
analysis
target process
executed
analysis target
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.)
Expired - Fee Related
Application number
JP2008260049A
Other languages
English (en)
Other versions
JP2010092178A (ja
Inventor
裕平 川古谷
光恭 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2008260049A priority Critical patent/JP5161022B2/ja
Publication of JP2010092178A publication Critical patent/JP2010092178A/ja
Application granted granted Critical
Publication of JP5161022B2 publication Critical patent/JP5161022B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、コンピュータ上で実行されるプログラムの動作を解析する解析装置、解析方法及び解析プログラムに関する。
従来、プログラムの動作の解析には、デバッガを利用するのが一般的である(例えば、非特許文献1参照)。デバッガは、解析対象であるプロセスの実行を、任意のメモリアドレスで停止及び再開させる制御を行う。ある特定のプログラム部分の実行時に解析対象プロセスをデバッガにより停止させ、その際のレジスタやメモリ等の値を調査することにより、解析対象プロセスの動作の詳細な解析が可能となる。例えば、ソフトウェアの設計や製作では、プログラムの動作を解析することで誤った変数処理や分岐条件を確認し、修正がなされる。また、例えば、セキュリティ対策技術では、コンピュータウィルスやワーム等が持つ特徴的な動作を解析する(例えば、非特許文献2参照)。
一般に、デバッガは、特定のプログラム部分の実行時に解析対象プロセスを停止させるために、ブレークポイントを利用する(例えば、非特許文献3参照)。デバッガは、予め設定されたブレークポイントにおいて、デバッガが持つメモリバッファに解析対象プロセスの命令を一旦保存し、当該命令をブレークポイント命令に置き換える。例えばインテル社のx86系CPUの場合、当該命令を、ブレークポイント命令である「0xCC」に1バイトだけ置き換える。CPUは、ブレークポイント命令のフェッチ及び実行により、例外を発生させる。フェッチとは、CPUが次の命令を読み込むことである。デバッガが存在する場合、一般的なOS(Operating System)は、CPUからの例外を受け取ると、デバッガに解析対象プロセスの制御を渡す。デバッガが存在しない場合、当該プロセスは、OSの処理により、例えば異常終了する。
"Debugger"、(Wikipedia)、[online]、[平成20年9月25日検索]、インターネット<URL: http://en.wikipedia.org/wiki/Debugger Norton AntiVirus(Symantec Corp.)、[online]、[平成20年9月25日検索]、インターネット<URL: http://www.symantec.com/norton/index.jsp> "Breakpoint"、(Wikipedia)、[online]、[平成20年9月25日検索]、インターネット<URL: http://en.wikipedia.org/wiki/Breakpoint
一般に、ブレークポイントは、上述のようにブレークポイント命令により実現する場合と、CPUが持っているハードウェア機構を利用して実現する場合(ハードウェアブレークポイント)とがある。いずれの場合も、ブレークポイントは、基本的に、メモリアドレスに基づき設定される。CPUは、ブレークポイントが設定されたメモリアドレスの命令を実行する際にデバッガ例外を発生させる。
動的に確保されたメモリバッファ内に書き込まれた命令を実行しているプロセスを停止させたい場合、動的なメモリバッファがいずれのメモリアドレスに確保されるかはシステムの実行時に決定される。この場合、プログラムがいずれのアドレス領域で展開されるかを予測することは困難である。コードが展開されたバッファのメモリアドレスを知ることができない場合、メモリアドレスに基づくブレークポイントの設定が困難となってしまう。これに対しては、解析対象プロセスの動作を逐一監視し、コードが展開された後にブレークポイントを設定することが考えられる。かかる設定手法では、目的となるメモリアドレスでコードが展開されるまでのほぼ全ての命令について、メモリ上での展開を追う必要が生じるため、膨大な時間及び労力を費やすこととなる。
本発明は、上記に鑑みてなされたものであって、命令内容に基づくブレークポイントの設定により、解析対象プロセスに対する効率的な解析を可能とする解析装置、解析方法及び解析プログラムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、コンピュータ上で実行されるプログラムの動作を、解析用プロセスを利用して解析する解析装置であって、コンピュータ上で実行される解析対象プロセスの命令を取得する命令取得部と、命令取得部で取得された命令と、解析対象プロセスの実行を停止させるために予め設定された命令とが一致するか否かを判断する判断部と、判断部において一致すると判断された命令が解析対象プロセスで実行された場合に、当該命令の次に実行される命令の読み込みを停止させ、解析対象プロセスを解析用プロセスへアタッチさせる制御を行う制御部と、を有することを特徴とする。
本発明によると、メモリアドレスに基づくブレークポイントの設定に代えて、命令内容に基づくブレークポイントの設定を行う。解析対象プロセスのうち任意の特徴的な命令列の実行時に解析対象プロセスを停止可能とすることで、動的なコード展開を行うプログラムや、自己書き換えを行うプログラムに対して、正確に、目的とする命令の実行時に解析対象プロセスをブレークさせることができる。これにより、解析対象プロセスに対する効率的な解析が可能となるという効果を奏する。
以下に添付図面を参照して、本発明に係る解析装置、解析方法及び解析プログラムの実施例を詳細に説明する。
図1及び図2は、本発明の実施例に係る解析装置の概要を説明するための説明図である。解析装置は、コンピュータ上で実行されるプログラムの動作を、解析用プロセスであるデバッガを利用して解析する。図1は、アプリケーション型の解析用プロセスを利用する場合の構成例を示す。仮想マシン(VM;Virtual Machine)は、ハードウェアデバイスを全てソフトウェアにより実現した仮想ハードウェアにより構成されている。仮想マシンは、ホストOSがインストールされている一台の物理マシン上にて動作させる。ゲストOSは、仮想マシン上にて動作させる仮想OSである。さらに、ゲストOSの上位にて解析用プロセスであるデバッガ、及び解析対象プロセスを動作させる。
図2は、カーネル型の解析用プロセスを利用する場合の構成例を示す。アプリケーション型の解析用プロセスを利用する場合と同様、仮想マシンは、ホストOSがインストールされている一台の物理マシン上にて動作させる。解析用プロセスであるデバッガは、ゲストOSの下で動作させ、ゲストOS及び解析対象プロセスを解析対象とする。本実施例は、図1及び図2に示すいずれの構成を適用しても良い。なお、本実施例に係る解析装置は、当該分野の技術者によって、以下の説明要綱に基づき適宜変形可能である。従って、本実施例の説明は、当該分野に対して開示される内容として広く理解されるべきであり、発明を限定するものではない。
図3は、図1及び図2に示す仮想マシンの構成例を示す。仮想マシンは、仮想CPU、仮想物理メモリ、仮想NIC(Network Interface Card)、仮想ハードディスク、その他の仮想デバイスや仮想ハードウェア、例えば、仮想BIOS(Basic Input Output System)を有する。仮想マシンを構成する各要素は、従来ハードウェアとして用いられるものをソフトウェアで表現したものであって、基本的な機能はハードウェアの場合と同様である。
図4は、本実施例に係る解析装置のモジュール構成要素を示したものである。解析装置は、命令取得部11、判断部12、及び制御部13の三つのモジュールを備える。命令取得部11は、ゲストOS上で動作させる全てのプロセスの命令を取得する。仮想CPUを用いる構成例では、命令取得部11は、仮想CPU内のEIPが指しているメモリ上の全ての命令を取得する。EIPは、次に実行すべきアドレスのオフセットを指すレジスタである。
判断部12は、命令取得部11において取得された命令と、解析対象プロセスの実行を停止させるために予め設定された命令とが一致するか否かを判断する。解析対象プロセスの実行を停止させるために設定された命令或いは命令列は、例えばシグネチャに記述されている。仮想CPUを用いる構成例では、判断部12は、仮想CPU内のEIPに読み込まれたデータと、シグネチャに記述された命令とが一致するか否かを判断する。また、命令、及び命令に付随する情報、例えばレジスタやメモリの値によりブレークポイントの条件(停止条件)を設定する場合、判断部12は、命令実行時の該当するレジスタやメモリの値もシグネチャの値と比較し、停止条件を満たすか否かを判断する。
制御部13は、判断部12において一致すると判断された命令が解析対象プロセスにより実行された場合に、当該命令の次に実行される命令の読み込みを停止させ、解析対象プロセスへ解析用プロセスであるデバッガをアタッチさせる制御を行う。
図5は、シグネチャの具体例を示す。シグネチャは、命令と命令に付随する情報、具体的にはレジスタやメモリの値により1行以上で記述される。シグネチャの記述は、アセンブラニーモニック及びバイナリのいずれを採用しても良い。アセンブラニーモニックの場合、シグネチャには、アセンブラ命令部と、レジスタやメモリの設定条件とが記述される。バイナリの場合、シグネチャには、命令部分に該当するバイナリと、レジスタやメモリに格納される条件を数値や算術記号等により表現された設定条件とが記述される。さらに、バイナリで記述する場合、命令のオペランドに相当する部分もバイナリ列で記述しても良い。
図6は、命令取得部11及び判断部12の動作を説明するフローチャートである。ゲストOS上でプロセスの実行を開始させる(ステップS1)と、仮想CPUは、ゲストOS上で実行させる命令の一つをフェッチする(ステップS2)。シグネチャがアセンブラニーモニックで記述されている場合は、フェッチした命令のバイト列をこのステップで逆アセンブルし、バイナリコードからアセンブリ言語に変換する。
次に、仮想CPUがフェッチした命令が解析対象である解析対象プロセスの命令に該当するか否かを判断する(ステップS3)。基本的には、プロセスに特有のプロセス情報が、仮想マシンの実行時にコンフィグファイルや設定画面等の仮想マシン側へデータ転送が可能な箇所から設定されている。解析対象プロセスか否かの識別には、かかるプロセス情報を用いる。プロセス情報としては、例えば、PID(プロセス識別番号)や、プロセスを一意に識別可能なデータ構造等を用いる。命令取得部11は、命令取得工程であるステップS2及びステップS3により、コンピュータ上で実行される解析対象プロセスの命令を取得する。
仮想CPUは、ゲストOS上で動作しているあらゆるプロセス、OS自身の命令をフェッチする。フェッチした命令が解析対象プロセスの命令に該当しないと判断した場合(ステップS3、No)であって、プロセスが終了していない場合(ステップS13、No)、仮想CPUは、ゲストOS上で実行させる次の命令をフェッチする(ステップS2)。なお、解析対象プロセスの範囲は任意であって、適宜設定可能である。例えば、プロセスの全てを解析対象とする場合は、ステップS3を省略しても良い。
フェッチした命令が解析対象プロセスの命令に該当すると判断した場合(ステップS3、Yes)、過去における仮想CPUの実行に関して、マッチング情報が存在するか否かを確認する(ステップS4)。マッチング情報とは、仮想CPUが実行した命令がシグネチャのどの部分までマッチングしたかという情報である。マッチング情報は、例えば、どの命令まで一致したかを示すオフセットと、シグネチャ情報とによって構成されるデータ構造として保持される。シグネチャ情報とは、複数あるシグネチャから特定のシグネチャを一意に識別するための識別子を指す。
マッチング情報が存在することを確認した場合(ステップS4、Yes)、かかるマッチング情報を取り出し、過去にマッチしたシグネチャ情報を設定する(ステップS5)。次に、ステップS5において設定されたマッチング情報と仮想CPUがフェッチした命令とを比較し、一致するか否かを判断する(ステップS6)。具体的には、命令部分が一致するか否かを判断する。
ブレークポイントの条件(停止条件)は、停止させたい命令と、当該命令に付随するオペランドの情報(レジスタやメモリの値)とにより予め設定することとしても良い。このような条件が設定されている場合には、判断部12は、命令、及び該当するレジスタやメモリの値が停止条件を満たすか否かを判断する。具体的には、例えば、「メモリアドレス0x400000から0x500000の間の関数をcallした」、「レジスタに0x90909090の値がロード(mov、lea等)された」等の事象を、解析対象プロセスを停止させる停止条件とする。
マッチング情報とフェッチした命令とが一致しないと判断した場合(ステップS6、No)、マッチング情報をクリアする(ステップS7)。具体的には、データ構造として保持されているオフセットと、シグネチャ情報である識別子とを初期値にリセットする。マッチング情報とフェッチした命令とが一致すると判断した場合(ステップS6、Yes)、マッチしたシグネチャに記載された命令の全てがマッチし終わったか否か(シグネチャが終了したか否か)を確認する(ステップS8)。
命令の全てがマッチした場合とは、シグネチャにて指定されている命令、つまりプログラムのうちブレークさせたい特徴的な命令列が実行されたことを示す。判断部12は、命令取得工程において取得された命令と、解析対象プロセスの実行を停止させるために予め設定された命令とが一致するか否かを、判断工程であるステップS6及びステップS8において判断する。
シグネチャの終了を確認した場合(ステップS8、Yes)、仮想CPUは、シグネチャが一致したメモリアドレス、シグネチャ情報、プロセス情報を制御部13へ渡す(ステップS12)。さらに、プロセスが終了していない場合(ステップS13、No)、仮想CPUは、ゲストOS上で実行させる次の命令をフェッチする(ステップS2)。
マッチング情報がクリアされた場合(ステップS7)、シグネチャの終了が確認されなかった場合(ステップS8、No)、及びマッチング情報の存在が確認されなかった場合(ステップS4、No)、予め設定されているシグネチャと仮想CPUがフェッチした命令とを比較し、一致するか否かを判断する(ステップS9)。
シグネチャと解析対象プロセスの命令とが一致しないと判断した場合(ステップS9、No)であって、プロセスが終了していない(ステップS13、No)場合、仮想CPUは、ゲストOS上で実行させる次の命令をフェッチする(ステップS2)。シグネチャと解析対象プロセスの命令とが一致すると判断した場合(ステップS9、Yes)、シグネチャに記載された命令の全てがマッチし終わったか否か(シグネチャが終了したか否か)を確認する(ステップS10)。
命令の全てがマッチした場合とは、シグネチャにて指定されている命令、つまりプログラムのうちブレークさせたい特徴的な命令列が実行されたことを示す。判断部12は、命令取得工程において取得された命令と、解析対象プロセスの実行を停止させるために予め設定された命令とが一致するか否かを、判断工程であるステップS9及びステップS10において判断する。
シグネチャの終了が確認されなかった場合(ステップS10、No)、一致した命令までのオフセットとシグネチャ情報とをマッチング情報として保存する(ステップS11)。さらに、プロセスが終了していない場合(ステップS13、No)、仮想CPUは、ゲストOS上で実行させる次の命令をフェッチする(ステップS2)。
シグネチャの終了を確認した場合(ステップS10、Yes)、仮想CPUは、シグネチャが一致したメモリアドレス、シグネチャ情報、プロセス情報を制御部13へ渡す(ステップS12)。さらに、プロセスが終了していない場合(ステップS13、No)、仮想CPUは、ゲストOS上で実行させる次の命令をフェッチする(ステップS2)。プロセスの実行の終了(ステップS13、Yes)により、命令取得部11及び判断部12の動作は終了する。
図7は、制御部13の動作を説明するフローチャートである。命令取得工程において取得された命令と、予め設定されたシグネチャにおいて記述されている命令とが一致した場合に、制御部13は、当該命令の次に実行される命令の、仮想CPUによる読み込みを停止させ、シグネチャが一致したメモリアドレス、シグネチャ情報、プロセス情報を仮想CPUから受け取る(ステップS21)。
次に、解析用プロセスであるデバッガが存在する場合(ステップS22、Yes)、シグネチャと一致した命令のメモリアドレスを利用して、仮想CPUからデバッグ例外(INT 01h)を発生させる。デバッグ例外はデバッガへ通知され、デバッガに制御が移される(ステップS24)。制御工程であるステップS24において、制御部13は、仮想CPUによる次の命令のフェッチを停止させ、解析対象プロセスをデバッガへアタッチさせることにより、解析対象プロセスからデバッガへ制御を移す。デバッガによりレジスタやメモリ等の値を調査することにより、解析対象プロセスの動作が詳細に解析される。なお、命令、及び命令に付随する情報が停止条件として設定されている場合は、制御部13は、停止条件を満たす場合に、当該命令の次の命令に実行される命令の読み込みを停止させ、解析対象プロセスをデバッガへアタッチさせる制御を行う。
解析用プロセスが存在しない場合(ステップS22、No)、シグネチャと一致する命令が実行された旨をログに出力し(ステップS23)、判断部12の命令フェッチのフェーズまで戻る。このように、解析対象プロセスの命令がシグネチャと一致した場合にログを出力するのみとし、解析対象プロセスの実行自体を停止させず最後まで動作させることとしても良い。制御部13は、以上のステップS24又はステップS23により動作を終了させ、仮想CPUから情報を受け取ることにより再び動作する。
以上のように、本発明は、従来のメモリアドレスに基づくブレークポイント設定ではなく、命令内容に基づき解析対象プロセスをブレークさせるブレークポイント設定を行う。インテル社のx86系CPUを例とすると、例えば、「ret命令が実行された」、「call命令が実行された」という事象を契機として、ブレークポイントを設定する。
本発明を用いることで、実行しているプログラムのメモリアドレスに関係無く、シグネチャに記述された命令がCPU内で実行された場合に、解析対象プロセスを停止させる。そして、CPUにより例外を発生させることで解析対象プロセスをブレークさせ、解析対象プロセスを解析用プロセスへアタッチさせることができる。
本発明を利用することにより、解析者によって任意に設定された命令の実行時に解析対象プロセスを停止させることができる。従来のブレークポイントでは解析の契機を捉えることが困難とされる場合、例えば、動的に確保したメモリバッファにコードを展開してそのメモリバッファ上のプロセスを実行するような動的なコード展開や、プログラム実行時に自己の命令を書き換える自己書き換えを行うプログラムに対しても、本発明によると、目的とする命令の実行を契機として、正確に解析対象プロセスをブレークさせることができる。
このため、動的なコード展開を行うプログラムや、自己書き換えを行うプログラムに対して、目的とするメモリバッファが展開されるまで、或いは目的とする命令が書き込まれるまで解析対象プロセスのブレーク及びリスタートを繰り返しながら命令実行を逐一監視する必要がなくなる。これにより、従来であれば膨大な時間を費やすような解析対象に対する効率的な解析を可能とし、解析コストを削減することができる。
解析対象のプログラムの特徴的な動作をシグネチャとすることにより、シグネチャで指定した動作をプログラムが行ったか否か判断でき、プログラムの動的解析に利用できる。シグネチャとして、コンピュータウィルス、ワーム等のマルウェアが持つ特徴的な動作を指定することにより、その特徴的な動作を行ったか否かを判断基準としてセキュリティ対策に利用しても良い。
ブレークポイントは、一つの命令の実行が契機となるように設定する場合に限られず、二つ以上の命令の実行が契機となるように設定しても良い。具体的には、例えば、「pop、pop、retの各命令が連続して実行された」という事象を契機として解析対象プログラムを停止させることとしても良い。
さらに、解析対象プロセスの実行を停止させる停止条件として、一つ以上の連続した命令の実行パターンの組み合わせを予め設定することとしても良い。具体的には、例えば、「メモリアドレス0x400000をロードした(mov)」というパターンと、「pop、ebp、retの各命令が実行された」というパターンとを組み合わせて、「メモリアドレス0x400000をロードした後のpop、ebp、retの各命令が実行された」という事象を捉えて解析対象プロセスを停止させることとしても良い。
本実施例で説明した解析装置、解析方法は、予め用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現される。本実施例に係る解析装置で実行される解析プログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVD等、コンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行可能としても良い。また、解析装置で実行される解析プログラムは、インターネットなどのネットワークを介して提供或いは配布可能としても良い。
以上のように、本発明に係る解析装置、解析方法及び解析プログラムは、コンピュータ上で実行されるプログラムの動作の解析に有用であり、特に、動的なコード展開を行うプログラムや、自己書き換えを行うプログラムの解析に適している。
アプリケーション型の解析用プロセスを利用する場合の構成例を示す図である。 カーネル型の解析用プロセスを利用する場合の構成例を示す図である。 図1及び図2に示す仮想マシンの構成例を示す図である。 実施例に係る解析装置のモジュール構成要素を示す図である。 シグネチャの具体例を示す図である。 命令取得部及び判断部の動作を説明するフローチャートである。 制御部の動作を説明するフローチャートである。
符号の説明
11 命令取得部
12 判断部
13 制御部

Claims (5)

  1. コンピュータ上で実行されるプログラムの動作を、解析用プロセスを利用して解析する解析装置であって、
    前記コンピュータ上で実行される解析対象プロセスの実行を停止させるための停止条件として、命令、及び命令に付随する情報であって、マルウェアが持つ特徴的な動作を指定するシグネチャを記憶する記憶部と、
    前記解析対象プロセスの命令として、仮想CPUがフェッチした命令を取得する命令取得部と、
    前記命令取得部で取得された命令、及び当該命令に付随する情報が、前記シグネチャとして記憶された命令、及び命令に付随する情報と一致するか否かを判断する判断部と、
    前記判断部において一致すると判断された命令が前記解析対象プロセスで実行された場合に、当該命令の次に実行される命令の読み込みを停止させ、前記解析対象プロセスを前記解析用プロセスへアタッチさせる制御を行う制御部と、を有することを特徴とする解析装置。
  2. 前記解析対象プロセスの実行を停止させるための停止条件として、一つ以上の連続した命令の実行パターンの組み合わせが予め設定されることを特徴とする請求項1に記載の解析装置。
  3. 前記解析用プロセスは、デバッガであることを特徴とする請求項1または2に記載の解析装置。
  4. コンピュータ上で実行されるプログラムの動作を、解析用プロセスを利用して解析する解析方法であって、
    前記コンピュータ上で実行される解析対象プロセスの命令として、仮想CPUがフェッチした命令を取得する命令取得工程と、
    前記命令取得部で取得された命令、及び当該命令に付随する情報が、前記解析対象プロセスの実行を停止させるための停止条件として、マルウェアが持つ特徴的な動作を指定するシグネチャに予め設定された命令、及び命令に付随する情報と一致するか否かを判断する判断工程と、
    前記判断工程において一致すると判断された命令が前記解析対象プロセスで実行された場合に、当該命令の次に実行される命令の読み込みを停止させ、前記解析対象プロセスを前記解析用プロセスへアタッチさせる制御を行う制御工程と、を含むことを特徴とする解析方法。
  5. コンピュータ上で実行されるプログラムの動作を、解析用プロセスを利用して解析する解析プログラムであって、
    前記コンピュータ上で実行される解析対象プロセスの命令として、仮想CPUがフェッチした命令を取得する命令取得ステップと、
    前記命令取得ステップで取得された命令、及び当該命令に付随する情報が、前記解析対象プロセスの実行を停止させるための停止条件であって、マルウェアが持つ特徴的な動作を指定するシグネチャとして記憶部に記憶された命令、及び命令に付随する情報と一致するか否かを判断する判断ステップと、
    前記判断ステップにおいて一致すると判断された命令が前記解析対象プロセスで実行された場合に、当該命令の次に実行される命令の読み込みを停止させ、前記解析対象プロセスを前記解析用プロセスへアタッチさせる制御を行う制御ステップと、をコンピュータに実行させることを特徴とする解析プログラム。
JP2008260049A 2008-10-06 2008-10-06 解析装置、解析方法及び解析プログラム Expired - Fee Related JP5161022B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008260049A JP5161022B2 (ja) 2008-10-06 2008-10-06 解析装置、解析方法及び解析プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008260049A JP5161022B2 (ja) 2008-10-06 2008-10-06 解析装置、解析方法及び解析プログラム

Publications (2)

Publication Number Publication Date
JP2010092178A JP2010092178A (ja) 2010-04-22
JP5161022B2 true JP5161022B2 (ja) 2013-03-13

Family

ID=42254841

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008260049A Expired - Fee Related JP5161022B2 (ja) 2008-10-06 2008-10-06 解析装置、解析方法及び解析プログラム

Country Status (1)

Country Link
JP (1) JP5161022B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013105366A (ja) * 2011-11-15 2013-05-30 Hitachi Ltd プログラム解析システム及び方法
RU2659742C1 (ru) * 2017-08-17 2018-07-03 Акционерное общество "Лаборатория Касперского" Способ эмуляции исполнения файлов, содержащих инструкции, отличные от машинных

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0991167A (ja) * 1995-09-22 1997-04-04 Toshiba Corp 命令検出装置
JP3185780B2 (ja) * 1999-02-26 2001-07-11 日本電気株式会社 システム監視装置及びその方法
US7062684B2 (en) * 2002-12-19 2006-06-13 International Business Machines Corporation Enabling tracing of a repeat instruction
JP2006003987A (ja) * 2004-06-15 2006-01-05 Hitachi Ltd デバッグ方法およびデバッガ

Also Published As

Publication number Publication date
JP2010092178A (ja) 2010-04-22

Similar Documents

Publication Publication Date Title
Johnson et al. Jetset: Targeted firmware rehosting for embedded systems
Henderson et al. Make it work, make it right, make it fast: building a platform-neutral whole-system dynamic binary analysis platform
JP6507435B2 (ja) 命令エミュレーションプロセッサ、方法、およびシステム
US8479174B2 (en) Method, computer program and computer for analyzing an executable computer file
Yin et al. Temu: Binary code analysis via whole-system layered annotative execution
Kawakoya et al. Memory behavior-based automatic malware unpacking in stealth debugging environment
Yan et al. V2e: combining hardware virtualization and softwareemulation for transparent and extensible malware analysis
RU2622627C2 (ru) Способ обнаружения вредоносных исполняемых файлов, содержащих интерпретатор, посредством комбинирования эмуляторов
US10055585B2 (en) Hardware and software execution profiling
Henderson et al. Decaf: A platform-neutral whole-system dynamic binary analysis platform
Willems et al. Down to the bare metal: Using processor features for binary analysis
Kawakoya et al. Api chaser: Anti-analysis resistant malware analyzer
US9626189B2 (en) Reducing operand store compare penalties
US10248424B2 (en) Control flow integrity
US9965631B2 (en) Apparatus and method for analyzing malicious code in multi-core environment using a program flow tracer
US9158562B2 (en) Method and apparatus for supporting virtualization of loadable module
Shi et al. Handling anti-virtual machine techniques in malicious software
Graziano et al. ROPMEMU: A framework for the analysis of complex code-reuse attacks
Christensen et al. {DECAF}: Automatic, adaptive de-bloating and hardening of {COTS} firmware
WO2015100327A1 (en) Generic unpacking of program binaries
Ovasapyan et al. Application of taint analysis to study the safety of software of the Internet of Things devices based on the ARM architecture
JP5161022B2 (ja) 解析装置、解析方法及び解析プログラム
JP2004538556A (ja) 複数命令セットシステムにおける非処理操作処理
Leon et al. Counter-measures against stack buffer overflows in GNU/Linux operating systems
JP5989599B2 (ja) 情報処理装置、および、情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110208

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110520

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120727

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121022

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121211

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121213

R150 Certificate of patent or registration of utility model

Ref document number: 5161022

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151221

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees