JP5437964B2 - 解析方法、解析装置及び解析プログラム - Google Patents
解析方法、解析装置及び解析プログラム Download PDFInfo
- Publication number
- JP5437964B2 JP5437964B2 JP2010226814A JP2010226814A JP5437964B2 JP 5437964 B2 JP5437964 B2 JP 5437964B2 JP 2010226814 A JP2010226814 A JP 2010226814A JP 2010226814 A JP2010226814 A JP 2010226814A JP 5437964 B2 JP5437964 B2 JP 5437964B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- memory space
- breakpoint
- information
- executed
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
まず、図1を用いて、実施例1に係る解析装置について説明する。図1は、実施例1に係る解析装置100の構成例を示すブロック図である。図1に示した解析装置100は、所定のプログラムを実行するコンピュータに実装される。
次に、図7を用いて、実施例1に係る解析装置100による処理の手順について説明する。図7は、実施例1に係る解析装置100による処理手順を示すフローチャートである。
上述してきたように、実施例1に係る解析装置100のブレークポイント情報記憶部110は、コンピュータで実行されるプログラムのプロセスに割り当てられるプロセスメモリ空間11に対応するブレークメモリ空間111を有し、かかるブレークメモリ空間111にプロセスを停止させるか否かを示すブレークポイント情報を記憶する。これにより、解析装置100は、プロセスにより実行される各命令に対して網羅的にブレークポイント情報を設定することが可能になる。
Intel社のx86アーキテクチャでは、レジスタをゼロクリアする場合に、「xor eax eax」といったxor命令による演算代入命令が用いられる。かかるxor命令は、演算元のデータと演算先のデータをxor演算することにより演算結果を「0」とするので、演算先のレジスタに「0」を代入する代入命令と等価であるといえる。このため、上記実施例1におけるブレークポイント伝播部140は、実行された命令がxor命令であり、かつ、演算元のデータと演算先のデータとが等しい場合には、演算先のメモリアドレスに対応するブレークメモリ空間111のブレークポイント情報を削除してもよい。
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示された構成要素と同一であることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図1に示したブレークポイント判定部130とブレークポイント伝播部140とを一つのブレークポイント処理部として統合してもよい。かかる場合には、ブレークポイント処理部は、ブレークポイント判定処理を行った後に、ブレークポイント伝播処理を行う。また、図1に示したブレークポイント判定部130は、プロセスを停止させる処理を行う停止処理部と、ログを出力するログ出力部とに分散してもよい。
また、上記実施例1に係る解析装置100が実行する処理をコンピュータが実行可能な言語で記述した解析プログラムを作成することもできる。この場合、コンピュータが解析プログラムを実行することにより、上記実施例1と同様の効果を得ることができ、その結果、解析プログラムは、デバッガとして動作する。さらに、かかる解析プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録された解析プログラムをコンピュータに読み込ませて実行することにより上記実施例1と同様の処理を実現してもよい。以下に、図1に示した解析装置100と同様の機能を実現する解析プログラムを実行するコンピュータの一例を説明する。
11 プロセスメモリ空間
100 解析装置
110 ブレークポイント情報記憶部
111 ブレークメモリ空間
120 命令取得部
130 ブレークポイント判定部
140 ブレークポイント伝播部
1000 コンピュータ
1010 メモリ
1011 ROM
1012 RAM
1020 CPU
1030 ハードディスクドライブインタフェース
1031 ハードディスクドライブ
1040 ディスクドライブインタフェース
1041 ディスクドライブ
1050 シリアルポートインタフェース
1051 マウス
1052 キーボード
1060 ビデオアダプタ
1061 ディスプレイ
1070 ネットワークインタフェース
1080 バス
1092 アプリケーションプログラム
1093 プログラムモジュール
1094 プログラムデータ
Claims (6)
- コンピュータが、
前記コンピュータで実行されるプログラムのプロセスに割り当てられる第一メモリ空間に対応する第二メモリ空間に、前記プロセスを停止させるか否かを示す停止情報を記憶する記憶部を有し、
前記プロセスにおいて命令が実行された場合に、該命令が記憶されている前記第一メモリ空間のメモリアドレスに対応する前記第二メモリ空間の停止情報に基づいて、前記プロセスを停止させるか否かを判定する判定ステップと、
前記実行された命令が前記第一メモリ空間内でデータを代入する代入命令である場合に、前記データの代入先となる第一メモリ空間のメモリアドレスに対応する前記第二メモリ空間の情報を、該データが記憶されている第一メモリ空間のメモリアドレスに対応する前記第二メモリ空間の停止情報に更新する更新ステップと
を実行することを特徴とする解析方法。 - 前記更新ステップは、
前記実行された命令が前記第一メモリ空間に記憶されている第一データと第二データとの演算結果を該第二データが記憶されていた領域に代入する演算代入命令である場合に、前記第二データが記憶されている第一メモリ空間のメモリアドレスに対応する前記第二メモリ空間を、前記第一データが記憶されている第一メモリ空間のメモリアドレスに対応する前記第二メモリ空間内の停止情報に更新する
ことを特徴とする請求項1に記載の解析方法。 - 前記更新ステップは、
前記実行された命令が前記第一メモリ空間に即値を代入する代入命令である場合に、該即値の代入先となる第一メモリ空間のメモリアドレスに対応する前記第二メモリ空間に記憶されている停止情報を削除する
ことを特徴とする請求項1又は2に記載の解析方法。 - 前記判定ステップは、
前記実行された命令に対応する停止情報が前記プロセスを停止させることを示す場合に、該プロセスを停止させるとともに、前記第一メモリ空間に記憶されている情報と該命令の内容と該停止情報とを含むプロセス情報を出力する
ことを特徴とする請求項1〜3のいずれか一つに記載の解析方法。 - コンピュータで実行されるプログラムの解析又は解析の支援を行う解析装置であって、
前記プログラムのプロセスに割り当てられる第一メモリ空間に対応する第二メモリ空間を有し、該第二メモリ空間に前記プロセスを停止させるか否かを示す停止情報を記憶する記憶部と、
前記プロセスにおいて命令が実行された場合に、該命令が記憶されている前記第一メモリ空間のメモリアドレスに対応する前記第二メモリ空間の停止情報に基づいて、前記プロセスを停止させるか否かを判定する判定部と、
前記実行された命令が前記第一メモリ空間内でデータを代入する代入命令である場合に、前記データの代入先となる第一メモリ空間のメモリアドレスに対応する前記第二メモリ空間の情報を、該データが記憶されている第一メモリ空間のメモリアドレスに対応する前記第二メモリ空間の停止情報に更新する更新部と
を有することを特徴とする解析装置。 - コンピュータで実行されるプログラムの解析又は解析の支援を行う解析プログラムであって、
前記コンピュータが、
前記プログラムのプロセスに割り当てられる第一メモリ空間に対応する第二メモリ空間を有し、該第二メモリ空間に前記プロセスを停止させるか否かを示す停止情報を記憶する記憶部を有し、
前記コンピュータに、
前記プロセスにおいて命令が実行された場合に、該命令が記憶されている前記第一メモリ空間のメモリアドレスに対応する前記第二メモリ空間の停止情報に基づいて、前記プロセスを停止させるか否かを判定する判定手順と、
前記実行された命令が前記第一メモリ空間内でデータを代入する代入命令である場合に、前記データの代入先となる第一メモリ空間のメモリアドレスに対応する前記第二メモリ空間の情報を、該データが記憶されている第一メモリ空間のメモリアドレスに対応する前記第二メモリ空間の停止情報に更新する更新手順と
を実行させることを特徴とする解析プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010226814A JP5437964B2 (ja) | 2010-10-06 | 2010-10-06 | 解析方法、解析装置及び解析プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010226814A JP5437964B2 (ja) | 2010-10-06 | 2010-10-06 | 解析方法、解析装置及び解析プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012083798A JP2012083798A (ja) | 2012-04-26 |
JP5437964B2 true JP5437964B2 (ja) | 2014-03-12 |
Family
ID=46242627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010226814A Active JP5437964B2 (ja) | 2010-10-06 | 2010-10-06 | 解析方法、解析装置及び解析プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5437964B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105247533B (zh) | 2013-05-20 | 2017-12-12 | 日本电信电话株式会社 | 信息处理装置和确定方法 |
JP6018346B2 (ja) | 2014-06-17 | 2016-11-02 | 日本電信電話株式会社 | 情報処理システム、制御方法及び制御プログラム |
JP6866645B2 (ja) | 2017-01-05 | 2021-04-28 | 富士通株式会社 | 類似度判定プログラム、類似度判定方法および情報処理装置 |
JP2018109910A (ja) | 2017-01-05 | 2018-07-12 | 富士通株式会社 | 類似度判定プログラム、類似度判定方法および情報処理装置 |
-
2010
- 2010-10-06 JP JP2010226814A patent/JP5437964B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2012083798A (ja) | 2012-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8510842B2 (en) | Pinpointing security vulnerabilities in computer software applications | |
KR101806090B1 (ko) | 멀웨어 검출을 위한 애플리케이션들의 제네릭 언패킹 | |
JP6888019B2 (ja) | メモリアクセスコマンドの転送記述子 | |
CN104715202B (zh) | 一种虚拟机中的隐藏进程检测方法和装置 | |
JP5437964B2 (ja) | 解析方法、解析装置及び解析プログラム | |
EP2985716B1 (en) | Information processing device and identifying method | |
US10129275B2 (en) | Information processing system and information processing method | |
US20190272226A1 (en) | Determining instruction execution history in a debugger | |
US20130185602A1 (en) | Heap dump occurrence detection | |
Vömel et al. | Visualizing indicators of Rootkit infections in memory forensics | |
Hasan et al. | Port or Shim? Stress Testing Application Performance on Intel SGX | |
KR101995176B1 (ko) | 프로그램 실행 컨텍스트 기반의 빅데이터를 활용한 역공학 방법 및 시스템 | |
JP2007094986A (ja) | シミュレーション装置およびシミュレーション方法 | |
JP2011227700A (ja) | 周辺機器障害模擬システム、周辺機器障害模擬方法および周辺機器障害模擬プログラム | |
JP5952218B2 (ja) | 情報処理装置および情報処理方法 | |
CN111194447B (zh) | 监视控制流完整性 | |
KR101225577B1 (ko) | 어셈블리 언어 코드의 분석 장치 및 방법 | |
JP2018085040A (ja) | プログラムテスト装置、プログラムテストプログラムおよびプログラムテスト方法 | |
JP2012018641A (ja) | ソフトウェア開発システム | |
JP5989599B2 (ja) | 情報処理装置、および、情報処理方法 | |
JP5710547B2 (ja) | 情報処理装置、監視方法および監視プログラム | |
JP6163678B2 (ja) | プログラムバイナリの汎用的なアンパッキング | |
CN115686739A (zh) | 攻击检测方法及装置 | |
JP2007148529A (ja) | バッファオーバーフロー検知装置、バッファオーバーフロー検知方法およびバッファオーバーフロー検知プログラム | |
JP2019125134A (ja) | 検証支援プログラム、検証支援方法、および情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121226 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131129 |
|
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: 20131210 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131212 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5437964 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |