• Amused
  • Angry
  • Annoyed
  • Awesome
  • Bemused
  • Cocky
  • Cool
  • Crazy
  • Crying
  • Down
  • Drunk
  • Embarrased
  • Enraged
  • Friendly
  • Geeky
  • Godly
  • Happy
  • Hateful
  • Hungry
  • Innocent
  • Meh
  • Piratey
  • Poorly
  • Sad
  • Secret
  • Shy
  • Sneaky
  • Tired
  • Wtf
  • At Work
  • CodenzHub
  • Coding
  • Deejaying
  • Donating
  • Drinking
  • Eating
  • Editing
  • Hacking
  • Hate Mailing
  • Jamin'
  • Lagging
  • Live Streaming
  • Lurking
  • No Status
  • Pawning
  • PC Gaming
  • PS Gaming
  • Raging
  • Reversing
  • Sleeping
  • Steam Gaming
  • Trolling
  • TwitchStreamer
  • Vodka!
  • Watching TV/Movie
  • Xbox Gaming
  • Youtuber
  • Zombies
  • Results 1 to 1 of 1
    1. #1
      Administrator
      Hacked By Jesus
       
      Reversing
       
      [GH]Rake's Avatar
      Join Date
      Jan 2014
      Location
      USA
      Posts
      3,677
      Thanks (-->)
      893
      Thanks (<--)
      1094

      Post Universal Pattern / Signature Parser

      How to Call Game Functions
      Different tools generate different signatures, IDA plugins, Cheat engine plugins, x64dbg, ollydbg etc...
      Whenever you're signature scanning you use a pattern and a mask but who doesn't enjoy the convenience of using them combined in one string?
      Trouble is that the tools generate different types of sigs. So I wrote this function.

      Give it a combo pattern and it will give you the pattern and mask.
      It accepts combos matching all wildcards I've seen, ?, ??, * & **
      Such as:
      "* C2 85 C0 7E * 8B D0 E8"
      "? C2 85 C0 7E ? 8B D0 E8"
      "?? C2 85 C0 7E ?? 8B D0 E8"
      "** C2 85 C0 7E ** 8B D0 E8"


      void Parse(char* combo, char* pattern, char* mask)
      {
      char lastChar = ' ';
      unsigned int j = 0;

      for (unsigned int i = 0; i < strlen(combo); i++)
      {
      if ((combo[i] == '?' || combo[i] == '*') && (lastChar != '?' && lastChar != '*'))
      {
      pattern[j] = mask[j] = '?';
      j++;
      }

      else if (isspace(lastChar))
      {
      pattern[j] = lastChar = (char)strtol(&combo[i], 0, 16);
      mask[j] = 'x';
      j++;
      }
      lastChar = combo[i];
      }
      pattern[j] = mask[j] = '\0';
      }


      And I call it like so in one of my pattern scan wrappers

      char* Mod(char* combopattern, Module* module)
      {
      char pattern[100];
      char mask[100];
      Parse(combopattern, pattern, mask);
      Mod(pattern, mask, module);
      }
      Last edited by [GH]Rake; 10-11-2017 at 07:36 PM. Reason: update code

    2. Thanks Traxin, AxDSan, mr.moon, maxbd thanked for this post

    Similar Game Hacker Threads

    1. [VideoTutorial] C++ Signature Scan / Pattern Scanning Tutorial DIFFICULTY[3/10]
      By Fleep in forum GH Hack Video Tutorials
      Replies: 41
      Last Post: 06-14-2016, 09:25 PM
    2. [Discuss] Polymorphic ASM Parser
      By c5 in forum General Coding Discussion
      Replies: 8
      Last Post: 05-11-2015, 03:29 PM
    3. [Release] C++ Console Universal Trainer / Source Code
      By Nether in forum Tutorials and Snippets
      Replies: 17
      Last Post: 01-03-2014, 05:01 PM
    4. EXE Signature
      By guru in forum AntiCheat - AntiDebug
      Replies: 21
      Last Post: 10-19-2013, 08:37 AM