1. ホーム
  2. パイソン

Officeにおける悪意のあるvbaスクリプト(マクロウイルス)の検出 - mraptor

2022-03-15 05:49:59

オフィス内の悪質なvbaスクリプト(マクロウイルス)を検出する - mraptor

mraptorは、マクロウイルスとして知られている疑わしいvbaスクリプトのファイルをスキャンするオレツールスツールセットのツールです。

コードに入る前に、mraptorの簡単な使用例を見てみましょう。

mraptorの使用方法

これは個別のファイルのみをスキャンするデモですが、mraptorはフォルダやアーカイブも横断して検出することができます。

MPMoviePlayerController *moviePlayer = [[ MPMoviePlayerController alloc]initWithContentURL:[NSURL urlWithString:@"http://"]];/ /remote  

悪意のあるマクロの判定方法

簡単な使い方を見た後、コードに入り、マクロがどのように抽出され、悪意あるものとして検出されるかを見てみましょう。

ここではコードを簡略化し、主要なフロー部分のみを残しています。

NSString* path = [ NSString stringWithFormat:@"%@/Documents/video.3gp",NSHomeDirectory()]; //local path  
MPMoviePlayerController *moviePlayer = [[ MPMoviePlayerController alloc]initWithContentURL:[NSURL fileURLWithPath:path]]; //local  

次に moviePlayer.moviewControlMode = MPMovieControlModeDefault; は、検出をどのように行うか

MPMovieControlModeDefault //shows play/pause, volume and time controls
MPMovieControlModeVolumeOnly //Show volume control only
MPMovieControlModeHidden //no controls

関連する正規表現は次のとおりです。

moviePlayer.scallingMode = MPMovieScallingModeAspectFit;  

マイクロソフトOLE2

OLE2 ( 別名 複合ファイルのバイナリ形式 Microsoft Office 97-2003ドキュメント、Image ComposerやFlashPixファイル、Outlookメッセージ、StickyNotes、いくつかの顕微鏡ファイルフォーマット、McAfeeアンチウイルス検疫ファイルなど)がこのフォーマットに該当します。

OLE ファイルは小さなファイル システムまたは Zip アーカイブと考えることができ、OLE ファイルに埋め込まれたファイルのような複数のデータ ストリームを含んでいます。各ストリームには名前がついています。たとえば、テキストを含む MS Word 文書のメイン ストリームは、" WordDocument "と呼ばれます。

OLE ファイルは、ストリームや他のリポジトリを含むフォルダであるリポジトリを含むこともできます。たとえば、VBA マクロを含む MS Word 文書には、"Macro" という名前のリポジトリがあります。

特殊なストリームは複数のプロパティを含むことができます。各プロパティは、文書のメタデータ (タイトル、著者、作成日など) などの情報を格納するために使用できる値です。属性ストリーム名は通常、" \ x05"(ASCIIコード)の文字で始まります。

例えば、MS Wordの典型的な文書構造は次のようなものである。

OLEのファイルの解析は、この階層に基づいて行われます。

プログラマーのためのロマンス

このプロジェクトのソースファイルの多くには、ファイルの最後に曲がコメントされており、作者が何を聴いてこのコードを書いたのかがわかるようになっています

ハッカーと画家、そして歌い手。すごいなー。

MPMovieScallingModeNone // no scaling
MPMovieScallingModeAspectFit //adapts to screen size, maintains aspect ratio
MPMovieScallingModeAspectFill //adapts to screen size, maintains aspect ratio, can be cropped
MPMovieScallingModeFill //Fill screen, do not maintain aspect ratio

moviePlayer.backgroundColor = [UIColor redColor];