TOP
|
特許
|
意匠
|
商標
特許ウォッチ
Twitter
他の特許を見る
10個以上の画像は省略されています。
公開番号
2025070868
公報種別
公開特許公報(A)
公開日
2025-05-02
出願番号
2023181457
出願日
2023-10-20
発明の名称
解析装置、解析方法及び解析プログラム
出願人
日本電信電話株式会社
代理人
弁理士法人酒井国際特許事務所
主分類
G06F
11/36 20060101AFI20250424BHJP(計算;計数)
要約
【課題】仕様が未知のスクリプト言語のスクリプトエンジンについて、記号表の内部構造の情報を取得すること。
【解決手段】解析装置10は、記号表検出部1222と、記号表解析部1223と、を有する。記号表検出部1222は、プログラムがスクリプトを実行するために利用したメモリ領域において、第1のアドレスから、スクリプトにおいて指定された値を含む第2のアドレスに至るまでの参照経路上のアドレスを含む複数の構造体を、記号表として検出する。記号表解析部1223は、スクリプトをプログラムに実行させて得られた実行トレースを解析し、記号表検出部1222によって検出された記号表の構造情報を取得する。
【選択図】図4
特許請求の範囲
【請求項1】
プログラムがスクリプトを実行するために利用したメモリ領域において、第1のアドレスから、前記スクリプトにおいて指定された値を含む第2のアドレスに至るまでの参照経路上のアドレスを含む複数の構造体を、記号表として検出する記号表検出部と、
前記スクリプトをプログラムに実行させて得られた実行トレースを解析し、前記記号表検出部によって検出された前記記号表の構造情報を取得する記号表解析部と、
を有することを特徴とする解析装置。
続きを表示(約 1,600 文字)
【請求項2】
前記実行トレースにおいて、前記スクリプトを実行するプログラムの命令を指し示す変数である仮想プログラムカウンタと、前記仮想プログラムカウンタが指し示すメモリ領域であるバイトコードキャッシュと、のいずれか又は両方へのメモリアクセスが見られる解釈実行関数を検出する解釈実行関数検出部をさらに有し、
前記記号表検出部は、前記解釈実行関数の引数のポインタが指し示す前記第1のアドレスから、前記第2のアドレスに至るまでの参照経路上のアドレスを含む複数の構造体を、記号表として検出する
ことを特徴とする請求項1に記載の解析装置。
【請求項3】
前記記号表検出部は、前記第1のアドレスにテイントタグを付与し、前記スクリプトの実行におけるポインタ参照に合わせて、前記第1のアドレスから前記第2のアドレスに前記テイントタグを伝播させて、前記テイントタグが付与されたアドレスを含む複数の構造体を、前記記号表として検出する
ことを特徴とする請求項1に記載の解析装置。
【請求項4】
前記記号表解析部は、前記実行トレースに示される、前記第1のアドレスから前記第2のアドレスに至るまでの参照経路上のアドレスへのメモリアクセスが、ベースレジスタとインデックスレジスタの両方を用いている場合、前記メモリアクセスの対象を配列の要素と判定し、ベースレジスタとインデックスレジスタから前記配列の先頭アドレスと前記要素の添字とを取得する
ことを特徴とする請求項1に記載の解析装置。
【請求項5】
前記記号表解析部は、前記実行トレースに示される、前記第1のアドレスから前記第2のアドレスに至るまでの参照経路上のアドレスへのメモリアクセスが、ベースレジスタを用いており、かつインデックスレジスタを用いていない場合、前記メモリアクセスの対象を構造体のメンバ変数と判定し、実効アドレスとベースレジスタを基に、前記構造体の先頭アドレスからの前記メンバ変数のオフセットを算出する
ことを特徴とする請求項1に記載の解析装置。
【請求項6】
前記記号表検出部は、複数の前記スクリプトのそれぞれについて、前記参照経路上のアドレスを含む複数の構造体を、前記記号表として検出し、
前記記号表解析部は、前記記号表検出部によって検出された複数の記号表のそれぞれの前記参照経路の長さを基に、前記複数の記号表に共通する部分の構造と、前記複数の記号表に共通しない部分の構造と、を検出する
ことを特徴とする請求項1に記載の解析装置。
【請求項7】
解析装置によって実行される解析方法であって、
プログラムがスクリプトを実行するために利用したメモリ領域において、第1のアドレスから、前記スクリプトにおいて指定された値を含む第2のアドレスに至るまでの参照経路上のアドレスを含む複数の構造体を、記号表として検出する記号表検出工程と、
前記スクリプトをプログラムに実行させて得られた実行トレースを解析し、前記記号表検出工程によって検出された前記記号表の構造情報を取得する記号表解析工程と、
を含むことを特徴とする解析方法。
【請求項8】
プログラムがスクリプトを実行するために利用したメモリ領域において、第1のアドレスから、前記スクリプトにおいて指定された値を含む第2のアドレスに至るまでの参照経路上のアドレスを含む複数の構造体を、記号表として検出する記号表検出手順と、
前記スクリプトをプログラムに実行させて得られた実行トレースを解析し、前記記号表検出手順によって検出された前記記号表の構造情報を取得する記号表解析手順と、
をコンピュータに実行させることを特徴とする解析プログラム。
発明の詳細な説明
【技術分野】
【0001】
本発明は、解析装置、解析方法及び解析プログラムに関する。
続きを表示(約 1,500 文字)
【背景技術】
【0002】
[スクリプトの解析]
スクリプトを解析する技術は、多様な目的に用いられる。例えば、JIT(Just-In-Time)コンパイルのためのコンパイラ最適化、ソフトウェアのテストやデバッグ、ファジング、マルウェア解析などが挙げられる。
【0003】
[変数情報の取得の重要性]
スクリプトの解析において、変数の情報を取得することは、重要な要素の一つである。スクリプトが実行時にどのような変数を保持するかは、そのスクリプトの持つ機能を理解するために、重要な情報となる。
【0004】
ここでの変数の情報として、どのようなスコープに何個の変数があるか、どの変数がどのような値を保持しているか、どのコード箇所がどの変数に読み書きしているか、などが挙げられる。このような変数の情報を取得するには、スクリプトを解析する必要がある。
【0005】
この解析を実現するために、例えば、デバッガやバイトコードの逆アセンブラなどの解析支援機能が提供されており、それらを用いることができる場合もある。しかしながら、そうした機能がない場合は、スクリプトを独自に解析して変数の情報を得る必要があり、容易ではない。
【0006】
[解析の手法]
スクリプトを含むプログラムを解析する技術に、静的解析と動的解析が存在する。動的解析は、解析対象のプログラムを実際に実行し、振る舞いを観測することで、その挙動を解析する技術である。静的解析は、解析対象のプログラムを実行することなく、プログラムの持つ意味を解釈していくことで、その機能を解析する技術である。分岐の情報を取得する際には、このような解析技術を用いる。
【0007】
[難読化への対応の必要性]
ここで、解析を妨害する技術に、難読化がある。難読化は、主に静的解析を妨害するために、プログラムの解釈を困難にする変換を施すものである。スクリプトに対する難読化においては、例えば、スクリプトの一部にエンコードや暗号化が施されており、実行時に動的にデコードや復号をしてから実行する、というものがある。このような場合には、どのようなスクリプトが実行されるかは、実行時まで明らかにならない。このため、スクリプトの静的解析が困難になる。
【0008】
悪性なスクリプトや保護されたスクリプトは、一般に難読化されており、静的解析は困難となる。ソフトウェアの保護は、作成者の知的財産権を守る上で重要な技術である。ソフトウェアがどのような技術を用いて実装されているかを明らかにする技術に、リバースエンジニアリングがある。これは、プログラムを解析して、その構造や仕様を理解する技術である。ソフトウェア保護とは、こうしたリバースエンジニアリングのためのプログラム解析から、ソフトウェアを守るための技術である。
【0009】
[スクリプトの実行方式]
スクリプトはスクリプトエンジン(インタプリタとも呼ばれる)によって実行される。スクリプトは一般に、実行時にバイトコードに変換され、そのバイトコードが仮想機械(Virtual Machine:VM)によって解釈実行される。このため、実行前にはスクリプトを解析し、実行時にはバイトコードを解析することになる。
【0010】
ここで、前述の通り、スクリプトが難読化されている場合には、実行前の静的解析は困難となる。このため、バイトコードを動的解析して、実行時に得られる情報から、変数の情報を取得する必要がある。
(【0011】以降は省略されています)
この特許をJ-PlatPatで参照する
関連特許
個人
非正規コート
19日前
個人
在宅介護システム
1日前
個人
人物再現システム
16日前
個人
RFタグ読取装置
1日前
個人
AI飲食最適化プラグイン
9日前
個人
電話管理システム及び管理方法
10日前
有限会社ノア
データ読取装置
17日前
株式会社ザメディア
出席管理システム
24日前
個人
広告提供システムおよびその方法
19日前
個人
日誌作成支援システム
16日前
株式会社CROSLAN
支援装置
1日前
長屋印刷株式会社
画像形成システム
1日前
ミサワホーム株式会社
情報処理装置
23日前
個人
ポイント還元付き配送システム
17日前
株式会社タクテック
商品取出集品システム
23日前
ひびきの電子株式会社
認証システム
3日前
トヨタ自動車株式会社
工程計画装置
24日前
トヨタ自動車株式会社
作業判定方法
25日前
オムロン株式会社
回転装置及びマウス
5日前
オベック実業株式会社
接続構造
16日前
トヨタ自動車株式会社
情報処理システム
25日前
ゼネラル株式会社
RFIDタグ付き物品
26日前
株式会社村田製作所
動き検知装置
23日前
トヨタ自動車株式会社
情報処理方法
25日前
個人
アルバム作成システム及びアルバム作成方法
3日前
株式会社実身美
ワーキングシェアリングシステム
17日前
株式会社国際電気
支援システム
26日前
個人
コンテンツ配信システム
23日前
株式会社ドクター中松創研
生成AIの適切使用法
16日前
富士通株式会社
画像生成方法
29日前
株式会社エスシーシー
置き配システム
17日前
株式会社半導体エネルギー研究所
情報処理システム
1日前
ブラザー工業株式会社
ラベルプリンタ
25日前
個人
プラットフォームシステム
23日前
トヨタ自動車株式会社
方法
5日前
株式会社 昭芝製作所
情報処理システム
3日前
続きを見る
他の特許を見る