Skip to content

LiamKarlMitchell/SignatureScanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Signature Scanner

A cross-platform signature scanning library for finding patterns in memory/data buffers. This monorepo contains implementations in multiple programming languages.

Implementations

  • C++ - Original implementation with Visual Studio project
  • Node.js - JavaScript/Node.js port for buffer scanning
  • Rust - Rust implementation (planned)

What is Signature Scanning?

Signature scanning allows you to find patterns in memory or data buffers using hex signatures with wildcards. This is useful for:

Video about Signiture Scanning

IMAGE ALT TEXT HERE

  • Easily find addresses.
  • Pulls out an address using XXXXXXXX
  • Magic

This project was previously on google code here: https://code.google.com/p/signiturescanner/ but github is nicer.

You can search with a ? for wildcard or XXXXXXXX where there is an address you want back. This can be usefull for finding code to hook,detour,modify or memory pointers in code that you want. When making signitures you use wildcards to represent things that may change when recompiled, such as addresses. Returns NULL if not found

--- Example Usage:

Init

signature_scanner* sig = new signature_scanner();

Get a memory address in code at XXXXXXXX with wildcards.

DWORD_PTR address = signature_scanner->search("3AB2DFAB????????3FBACD300200A1XXXXXXXXB1C4DA");

Find Second instance 90/NOP

DWORD_PTR address = signature_scanner->search("90");
if (address!=NULL)
{
address = signature_scanner->search("90",0,true,address)
if (address!=NULL)
{
// Found it at address
}
else
{
// Not found 2nd time
}
}
else
{
// Found first time
}

Finding Text

DWORD_PTR address = signature_scanner->search_text("Hello World");

There is also a find_all method. This is useful for game memory modification in multiple areas. For example the developers have a MOV EAX, [ECX+WeaponID*4], DEC EAX, MOV [ECX+WeaponID*4], EAX that decreases ammo but it is copy pasted to every function for every weapon's shoot. Like in Quake 1, 2, 3 etc.

You could NOP all of them. Or detour them all to only NOP for your player ID.

Do what you want license, IDGAF~

About

I wanted a nicer signature scanner that worked the way I wanted. Include however you want in your own DLL project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published