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日前
トヨタ自動車株式会社
情報処理装置
3日前
日本電信電話株式会社
解析装置、解析方法及び解析プログラム
23日前
日本電信電話株式会社
測定装置、測定方法、及び測定プログラム
5日前
日本電信電話株式会社
置換装置、置換方法および置換プログラム
12日前
日本電信電話株式会社
処理装置、処理方法、及び、処理プログラム
5日前
日本電信電話株式会社
処理装置、処理方法、及び、処理プログラム
5日前
日本電信電話株式会社
情報処理装置、調整方法および調整プログラム
17日前
日本電信電話株式会社
遠隔操作装置、遠隔操作方法、およびプログラム
10日前
日本電信電話株式会社
遠隔操作装置、遠隔操作方法、およびプログラム
11日前
日本電信電話株式会社
遠隔操作装置、遠隔操作方法、およびプログラム
11日前
日本電信電話株式会社
算出装置、算出システム、算出方法、及びプログラム
10日前
東日本電信電話株式会社
情報処理装置、情報処理方法、及び、情報処理プログラム
12日前
日本電信電話株式会社
翻訳装置、翻訳学習装置、翻訳方法、翻訳学習方法及びプログラム
12日前
日本電信電話株式会社
音声合成学習装置、音声合成装置、音声合成学習方法、音声合成方法及びプログラム
12日前
日本電信電話株式会社
学習装置、シミュレーション装置、学習方法、シミュレーション方法、及びプログラム
6日前
トヨタ自動車株式会社
情報処理装置、情報処理装置の動作方法、及び情報処理装置のプログラム
3日前
個人
非正規コート
1か月前
個人
物品給付年金
10日前
個人
政治のAI化
5日前
個人
RFタグ読取装置
23日前
個人
在宅介護システム
23日前
個人
人物再現システム
1か月前
個人
AI飲食最適化プラグイン
1か月前
キヤノン株式会社
通信装置
11日前
個人
電話管理システム及び管理方法
1か月前
有限会社ノア
データ読取装置
1か月前
株式会社ザメディア
出席管理システム
1か月前
キヤノン株式会社
画像処理装置
3日前
個人
全アルゴリズム対応型プログラム
6日前
個人
広告提供システムおよびその方法
1か月前
個人
日誌作成支援システム
1か月前
シャープ株式会社
電子機器
5日前
大同特殊鋼株式会社
輝線検出方法
5日前
株式会社CROSLAN
支援装置
23日前
ミサワホーム株式会社
情報処理装置
1か月前
続きを見る
他の特許を見る