yara-x 1.19.0

A pure Rust implementation of YARA.
Documentation
syntax = "proto2";
import "yara.proto";

package vba;

option (yara.module_options) = {
  name: "vba"
  root_message: "vba.Vba"
  cargo_feature: "vba-module"
};

enum ModuleType {
  option (yara.enum_options).inline = true;
  MODULE_TYPE_STANDARD = 1;
  MODULE_TYPE_CLASS = 2;
  MODULE_TYPE_UNKNOWN = 3;
}

message Vba {
  // True if VBA macros are present
  optional bool has_macros = 1;
  message Module {
    optional string name = 1;
    optional ModuleType type = 2;
    optional string code = 3;
  }

  // VBA macro modules found
  repeated Module modules = 2;
  
  // Project metadata
  message ProjectInfo {
    optional string name = 1;
    optional string version = 2;
    repeated string references = 3;
    optional int32 module_count = 4;
  }

  optional ProjectInfo project_info = 5;
}