I've taken all of the techniques from various authors of FFXI third party program creators and merged them into my own library by extending and changing various parts. Credit goes to atom0s, chocopon, sruon and Icehunter; your source code provided invaluable information to the process and implementation of memory reading techniques.

This code is not production ready yet; There are still some debugging statements left inside. I figured I'd update the repository since a lot of good, major changes have happened.

The Memory class now provides functionality to everything you need:
* use Memory.Peek(process, address, offset) to read from an address you want.
* use Memory.Scan(StringMask, ByteArraySignature, int Offset) to find a signature in a module or paged memory.
* use Memory.GetSystemInfo to retrieve the system's SystemInformation object.
* use Memory.Poke(process, address, offset) to write memory.
* use Memory.PageFilter()(MemoryBasicInfo) can to filter readable/writable pages.