Skip to content
API Documentation
BastionGuard™
anonymous_namespace{signature_scanner.cpp} Namespace Reference

Functions

uint64_t adaptive_stride (uint64_t disk_size)
bool is_ntfs (const std::array< unsigned char, 512 > &b)
bool is_fat32 (const std::array< unsigned char, 512 > &b)
bool is_exfat (const std::array< unsigned char, 512 > &b)
bool looks_ext4 (DiskReader &reader, uint64_t offset)
bool looks_btrfs (DiskReader &reader, uint64_t offset)

Variables

constexpr uint64_t MiB = 1024ull * 1024ull
constexpr uint64_t GiB = 1024ull * 1024ull * 1024ull

Function Documentation

◆ adaptive_stride()

uint64_t anonymous_namespace{signature_scanner.cpp}::adaptive_stride ( uint64_t disk_size)

Definition at line 11 of file signature_scanner.cpp.

11 {
12 if (disk_size <= 64ull * GiB) return MiB;
13 if (disk_size <= 512ull * GiB) return 4ull * MiB;
14 if (disk_size <= 2ull * 1024ull * GiB) return 16ull * MiB;
15 return 32ull * MiB;
16}

References adaptive_stride(), GiB, and MiB.

Referenced by adaptive_stride().

◆ is_exfat()

bool anonymous_namespace{signature_scanner.cpp}::is_exfat ( const std::array< unsigned char, 512 > & b)

Definition at line 26 of file signature_scanner.cpp.

26 {
27 return std::string(reinterpret_cast<const char*>(b.data() + 3), 8) == "EXFAT ";
28}

References is_exfat().

Referenced by is_exfat().

◆ is_fat32()

bool anonymous_namespace{signature_scanner.cpp}::is_fat32 ( const std::array< unsigned char, 512 > & b)

Definition at line 22 of file signature_scanner.cpp.

22 {
23 return std::string(reinterpret_cast<const char*>(b.data() + 82), 8) == "FAT32 ";
24}

References is_fat32().

Referenced by is_fat32().

◆ is_ntfs()

bool anonymous_namespace{signature_scanner.cpp}::is_ntfs ( const std::array< unsigned char, 512 > & b)

Definition at line 18 of file signature_scanner.cpp.

18 {
19 return std::string(reinterpret_cast<const char*>(b.data() + 3), 8) == "NTFS ";
20}

References is_ntfs().

Referenced by is_ntfs().

◆ looks_btrfs()

bool anonymous_namespace{signature_scanner.cpp}::looks_btrfs ( DiskReader & reader,
uint64_t offset )

Definition at line 35 of file signature_scanner.cpp.

35 {
36 std::array<char, 8> sig{};
37 return reader.read_at(offset + 0x10040, sig.data(), sig.size()) && std::string(sig.data(), sig.size()) == "_BHRfS_M";
38}
bool read_at(uint64_t offset, void *buffer, size_t len)

References looks_btrfs(), and DiskReader::read_at().

Referenced by looks_btrfs().

◆ looks_ext4()

bool anonymous_namespace{signature_scanner.cpp}::looks_ext4 ( DiskReader & reader,
uint64_t offset )

Definition at line 30 of file signature_scanner.cpp.

30 {
31 std::array<unsigned char, 2> sig{};
32 return reader.read_at(offset + 1024 + 56, sig.data(), sig.size()) && sig[0] == 0x53 && sig[1] == 0xEF;
33}

References looks_ext4(), and DiskReader::read_at().

Referenced by looks_ext4().

Variable Documentation

◆ GiB

uint64_t anonymous_namespace{signature_scanner.cpp}::GiB = 1024ull * 1024ull * 1024ull
constexpr

Definition at line 9 of file signature_scanner.cpp.

Referenced by adaptive_stride().

◆ MiB

uint64_t anonymous_namespace{signature_scanner.cpp}::MiB = 1024ull * 1024ull
constexpr

Definition at line 8 of file signature_scanner.cpp.

Referenced by adaptive_stride().