Feature/more constexpr (#125)

* added constexpr

* fix

* improved stuff

* added const

* improvement

* fix

* fix

* patch
This commit is contained in:
2025-12-24 02:32:14 +03:00
committed by GitHub
parent 897484bea1
commit d935caf1a4
36 changed files with 543 additions and 399 deletions

View File

@@ -64,7 +64,7 @@ static bool write_minimal_pe_file(const std::string& path, const std::vector<std
f.write(name, 8);
// Write placeholder bytes for the rest of the section header and remember its start
const std::uint32_t section_header_rest = 36u;
constexpr std::uint32_t section_header_rest = 36u;
const std::streampos header_rest_pos = f.tellp();
std::vector<char> placeholder(section_header_rest, 0);
f.write(placeholder.data(), placeholder.size());
@@ -75,7 +75,7 @@ static bool write_minimal_pe_file(const std::string& path, const std::vector<std
// Patch section header fields: virtual_size, virtual_address, size_raw_data, ptr_raw_data
const std::uint32_t virtual_size = static_cast<std::uint32_t>(section_bytes.size());
const std::uint32_t virtual_address = 0x1000u;
constexpr std::uint32_t virtual_address = 0x1000u;
const std::uint32_t size_raw_data = static_cast<std::uint32_t>(section_bytes.size());
const std::uint32_t ptr_raw_data = static_cast<std::uint32_t>(data_pos);
@@ -95,9 +95,9 @@ static bool write_minimal_pe_file(const std::string& path, const std::vector<std
TEST(unit_test_pe_pattern_scan_file, ScanFindsPattern)
{
const std::string path = "./test_minimal_pe.bin";
std::vector<std::uint8_t> bytes = {0x55, 0x8B, 0xEC, 0x90, 0x90}; // pattern at offset 0
ASSERT_TRUE(write_minimal_pe_file(path, bytes));
constexpr std::string_view path = "./test_minimal_pe.bin";
const std::vector<std::uint8_t> bytes = {0x55, 0x8B, 0xEC, 0x90, 0x90}; // pattern at offset 0
ASSERT_TRUE(write_minimal_pe_file(path.data(), bytes));
const auto res = PePatternScanner::scan_for_pattern_in_file(path, "55 8B EC", ".text");
EXPECT_TRUE(res.has_value());
@@ -105,9 +105,9 @@ TEST(unit_test_pe_pattern_scan_file, ScanFindsPattern)
TEST(unit_test_pe_pattern_scan_file, ScanMissingPattern)
{
const std::string path = "./test_minimal_pe_2.bin";
std::vector<std::uint8_t> bytes = {0x00, 0x01, 0x02, 0x03};
ASSERT_TRUE(write_minimal_pe_file(path, bytes));
constexpr std::string_view path = "./test_minimal_pe_2.bin";
const std::vector<std::uint8_t> bytes = {0x00, 0x01, 0x02, 0x03};
ASSERT_TRUE(write_minimal_pe_file(path.data(), bytes));
const auto res = PePatternScanner::scan_for_pattern_in_file(path, "FF EE DD", ".text");
EXPECT_FALSE(res.has_value());