Skip to content
API Documentation
BastionGuard™
FilesystemProbes Class Reference

#include <filesystem_probes.hpp>

Static Public Member Functions

static std::vector< ScanResult > analyze (DiskReader &reader, const std::vector< ScanResult > &seed_results, std::vector< std::string > &logs)

Detailed Description

Definition at line 9 of file filesystem_probes.hpp.

Member Function Documentation

◆ analyze()

std::vector< ScanResult > FilesystemProbes::analyze ( DiskReader & reader,
const std::vector< ScanResult > & seed_results,
std::vector< std::string > & logs )
static

Definition at line 333 of file filesystem_probes.cpp.

335 {
336 std::vector<ScanResult> out;
337 std::set<uint64_t> seen_offsets;
338 logs.push_back(trs("Filesystem probes: analysis started."));
339
340 for (const auto& seed : seed_results) {
341 const bool interesting_seed =
342 seed.kind == ResultKind::Partition ||
344 seed.kind == ResultKind::FilesystemCandidate ||
345 seed.kind == ResultKind::NtfsVolume;
346 if (!interesting_seed || seen_offsets.count(seed.offset_bytes) != 0) {
347 continue;
348 }
349 seen_offsets.insert(seed.offset_bytes);
350
351 if (auto r = fat32_probe(reader, seed.offset_bytes); !r.type.empty()) out.push_back(r);
352 if (auto r = exfat_probe(reader, seed.offset_bytes); !r.type.empty()) out.push_back(r);
353 if (auto r = ext4_probe(reader, seed.offset_bytes); !r.type.empty()) out.push_back(r);
354 if (auto r = btrfs_probe(reader, seed.offset_bytes); !r.type.empty()) out.push_back(r);
355 if (auto r = xfs_probe(reader, seed.offset_bytes); !r.type.empty()) out.push_back(r);
356 if (auto r = hfs_probe(reader, seed.offset_bytes); !r.type.empty()) out.push_back(r);
357 }
358
359 logs.push_back(trs("Filesystem probes: analysis completed."));
360 return out;
361}
std::string trs(const char *msgid)
Definition i18n.cpp:22
@ Partition
Definition models.hpp:8
@ LostPartitionCandidate
Definition models.hpp:9
@ FilesystemCandidate
Definition models.hpp:10
ScanResult fat32_probe(DiskReader &reader, uint64_t offset)
ScanResult exfat_probe(DiskReader &reader, uint64_t offset)
ScanResult hfs_probe(DiskReader &reader, uint64_t offset)
ScanResult xfs_probe(DiskReader &reader, uint64_t offset)
ScanResult ext4_probe(DiskReader &reader, uint64_t offset)
ScanResult btrfs_probe(DiskReader &reader, uint64_t offset)

References FilesystemCandidate, LostPartitionCandidate, NtfsVolume, Partition, and trs().

Referenced by ScannerEngine::run_scan().


The documentation for this class was generated from the following files: