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で参照する

関連特許

日本電信電話株式会社
量子鍵配送装置
10日前
日本電信電話株式会社
データ伝送システム
19日前
日本電信電話株式会社
光線路特性解析装置
11日前
日本電信電話株式会社
ロボットVRシステム
19日前
日本電信電話株式会社
モード間損失差補償器
26日前
日本電信電話株式会社
ロボットVRシステム
19日前
日本電信電話株式会社
光ファイバ特性解析装置
25日前
日本電信電話株式会社
光ファイバ特性解析装置
25日前
日本電信電話株式会社
モード回転子及びモード合分波器
24日前
日本電信電話株式会社
演算装置、演算方法及びプログラム
10日前
日本電信電話株式会社
抽出装置、抽出方法及び抽出プログラム
2日前
日本電信電話株式会社
解析装置、解析方法及び解析プログラム
2日前
日本電信電話株式会社
管路位置探査装置及び管路位置探査方法
4日前
日本電信電話株式会社
検証装置、検証方法および検証プログラム
2日前
日本電信電話株式会社
解析装置、解析方法および解析プログラム
2日前
日本電信電話株式会社
解析装置、解析方法および解析プログラム
24日前
日本電信電話株式会社
図形配置装置、図形配置方法及びプログラム
1か月前
日本電信電話株式会社
振動センシング装置及び振動センシング方法
3日前
東日本電信電話株式会社
制御システム、制御方法、および制御プログラム
24日前
日本電信電話株式会社
感情提示装置、感情提示方法及び感情提示プログラム
17日前
日本電信電話株式会社
学習方法、推論方法、学習装置、推論装置及びプログラム
1か月前
日本電信電話株式会社
音響システム
24日前
日本電信電話株式会社
連携無線通信装置、無線通信システム、空間多重無線伝送方法及びプログラム
1か月前
日本電信電話株式会社
アンテナの配置を決定する方法、装置、及びプログラム、並びに物体検出システム
19日前
日本電信電話株式会社
パラメータ更新保証システム、証明装置、パラメータ更新保証方法及びプログラム
12日前
日本電信電話株式会社
エネルギー関数の最小値探索装置、エネルギー関数の最小値探索方法、及びプログラム。
10日前
富士通株式会社
リソース割当て装置、リソース割当て方法、およびリソース割当てプログラム
24日前
日本電信電話株式会社
二酸化炭素固定化システム及び二酸化炭素固定化方法
23日前
日本電信電話株式会社
信号処理装置、信号処理方法及び信号処理プログラム
12日前
日本電信電話株式会社
参照画像キャッシュメモリ、プリフェッチ用データ要求方法、及びプリフェッチ用データ要求プログラム
1か月前
NTTテクノクロス株式会社
音声認識モデル追加学習装置、音声認識モデル追加学習方法、及びプログラム
24日前
日本電信電話株式会社
単語対応装置、学習装置、単語対応方法、学習方法、及びプログラム
24日前
個人
非正規コート
20日前
個人
在宅介護システム
2日前
個人
RFタグ読取装置
2日前
個人
人物再現システム
17日前
続きを見る