Skip to content
API Documentation
BastionGuard™
FileCarver Class Reference

#include <file_carver.hpp>

Static Public Member Functions

static bool carve_to_directory (DiskReader &reader, const std::string &output_dir, std::vector< CarvedFile > &carved, std::vector< std::string > &logs, std::string &error)
static bool carve_ranges_to_directory (DiskReader &reader, const std::vector< std::pair< uint64_t, uint64_t > > &ranges, const std::string &output_dir, std::vector< CarvedFile > &carved, std::vector< std::string > &logs, std::string &error)

Detailed Description

Definition at line 19 of file file_carver.hpp.

Member Function Documentation

◆ carve_ranges_to_directory()

bool FileCarver::carve_ranges_to_directory ( DiskReader & reader,
const std::vector< std::pair< uint64_t, uint64_t > > & ranges,
const std::string & output_dir,
std::vector< CarvedFile > & carved,
std::vector< std::string > & logs,
std::string & error )
static

Definition at line 171 of file file_carver.cpp.

176 {
177 carved.clear();
178 const auto pats = patterns();
179
180 try {
181 fs::create_directories(output_dir);
182 } catch (const std::exception& ex) {
183 error = ex.what();
184 return false;
185 }
186
187 logs.push_back(trs("File carving started."));
188 for (const auto& range : ranges) {
189 if (!carve_one_range(reader, range.first, range.second, pats, output_dir, carved, logs, error)) {
190 return false;
191 }
192 }
193 logs.push_back(trs("File carving completed."));
194 return true;
195}
std::string trs(const char *msgid)
Definition i18n.cpp:22
std::vector< Pattern > patterns()
bool carve_one_range(DiskReader &reader, uint64_t range_offset, uint64_t range_size, const std::vector< Pattern > &pats, const std::string &output_dir, std::vector< CarvedFile > &carved, std::vector< std::string > &logs, std::string &error)

References trs().

Referenced by carve_to_directory(), and RecoveryExporter::export_results_and_carve().

◆ carve_to_directory()

bool FileCarver::carve_to_directory ( DiskReader & reader,
const std::string & output_dir,
std::vector< CarvedFile > & carved,
std::vector< std::string > & logs,
std::string & error )
static

Definition at line 163 of file file_carver.cpp.

167 {
168 return carve_ranges_to_directory(reader, {{0, reader.size()}}, output_dir, carved, logs, error);
169}
uint64_t size() const
static bool carve_ranges_to_directory(DiskReader &reader, const std::vector< std::pair< uint64_t, uint64_t > > &ranges, const std::string &output_dir, std::vector< CarvedFile > &carved, std::vector< std::string > &logs, std::string &error)

References carve_ranges_to_directory(), and DiskReader::size().


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