Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions examples/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
project(examples)

add_executable(ExampleProjectionMatrixBuilder example_proj_mat_builder.cpp)
target_link_libraries(ExampleProjectionMatrixBuilder PRIVATE omath::omath)
add_executable(example_projection_matrix_builder example_proj_mat_builder.cpp)
set_target_properties(example_projection_matrix_builder PROPERTIES CXX_STANDARD 26)
target_link_libraries(example_projection_matrix_builder PRIVATE omath::omath)

add_executable(example_signature_scan example_signature_scan.cpp)
set_target_properties(example_signature_scan PROPERTIES CXX_STANDARD 26)
target_link_libraries(example_signature_scan PRIVATE omath::omath)
39 changes: 39 additions & 0 deletions examples/example_signature_scan.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
//
// Created by Vlad on 11/8/2025.
//

#include <iostream>
#include <omath/utility/pe_pattern_scan.hpp>
#include <print>

int main()
{
std::println("OMATH Signature Scanner");

std::print("Enter path to PE file: ");
std::string file_path;
std::getline(std::cin, file_path); // allows spaces

std::print("Enter target section: ");
std::string section;
std::getline(std::cin, section);

std::print("Enter signature: ");
std::string signature;
std::getline(std::cin, signature);

std::println("[LOG] Performing scan....");

const auto result = omath::PePatternScanner::scan_for_pattern_in_file(file_path, signature, section);

if (!result)
{
std::println("[ERROR] Scan failed or signature was not found");
return -1;
}

std::println("Found at virtual 0x{:x} , raw 0x{:x}", result->virtual_base_addr + result->target_offset,
result->raw_base_addr + result->target_offset);

return 0;
}
Loading