avkit

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 22, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package avkit is the AV/EDR identification fingerprint database (docs §4.12, phase P3 — "杀软识别指纹库").

It is identification only. The kit runs read-only enumeration over a core.Session (processes, services, drivers, registry keys) and matches what it finds against a static fingerprint database of well-known AV/EDR products. It returns the identified products, their defensive categories, and the signatures that matched — decision support for the operator. It builds or downloads no bypass, no AMSI/ETW patch, no BYOVD artifact; those stay out of the library ("识别与决策在库内,成品载荷在库外").

A second tool, av_list, returns the fingerprint database's known products so an operator can review coverage without touching a target.

Everything runs THROUGH a core.Session resolved from core.Deps.Sessions.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Manifest

func Manifest() core.Manifest

Manifest declares the AV/EDR tool surface.

func NewCapability

func NewCapability(deps core.Deps) (core.Capability, error)

NewCapability builds the capability. An empty database falls back to the built-in default so the tool always has something to match against.

Types

type Capability

type Capability struct {
	// contains filtered or unexported fields
}

Capability exposes the AV/EDR identification tools.

func (*Capability) Call

func (c *Capability) Call(ctx context.Context, call core.Call) (core.Result, error)

Call dispatches the tools.

func (*Capability) Manifest

func (c *Capability) Manifest() core.Manifest

Manifest implements core.Capability.

type Category

type Category string

Category groups the defensive role a product plays, so an operator can reason about what coverage exists rather than the brand name.

const (
	CatEDR     Category = "edr"      // behavioral EDR / endpoint detection
	CatAV      Category = "av"       // traditional antivirus
	CatNGAV    Category = "ngav"     // next-gen AV (cloud + ML)
	CatEPP     Category = "epp"      // endpoint protection platform
	CatLogging Category = "logging"  // audit/log forwarding (sysmon, etc.)
	CatFW      Category = "firewall" // host firewall
)

type Database

type Database struct {
	Products []Product `json:"products"`
}

Database is the static fingerprint set.

func DefaultDatabase

func DefaultDatabase() Database

DefaultDatabase is the built-in AV/EDR fingerprint set.

type Detection

type Detection struct {
	ProductID string   `json:"product_id"`
	Name      string   `json:"name"`
	Category  Category `json:"category"`
	Platform  string   `json:"platform"`
	Matches   []Match  `json:"matches"`
}

Detection is one identified product and the signatures that matched.

type Match

type Match struct {
	Kind   string `json:"kind"` // process | service | driver | registry | file
	Value  string `json:"value"`
	Sample string `json:"sample,omitempty"` // trimmed evidence line
}

Match is one signature that fired for a detected product.

type Product

type Product struct {
	ID        string   `json:"id"`
	Name      string   `json:"name"`
	Vendor    string   `json:"vendor"`
	Category  Category `json:"category"`
	Platform  string   `json:"platform"`            // linux | windows
	Processes []string `json:"processes,omitempty"` // process image names
	Services  []string `json:"services,omitempty"`  // service names
	Drivers   []string `json:"drivers,omitempty"`   // loaded kernel driver names
	Registry  []string `json:"registry,omitempty"`  // registry key/prefix (windows)
	Files     []string `json:"files,omitempty"`     // on-disk file paths
	// Notes are operator-facing decision support (what the product watches for),
	// NOT bypass instructions.
	Notes string `json:"notes,omitempty"`
}

Product is one known AV/EDR product and the signatures that identify it on a host. Only one signature needs to match for detection.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL