Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace Memory {
- ///////////////
- // ScriptContext Scanner, Pretty Damn Fast
- // Credits To ASDF
- ///////////////
- bool compare(BYTE* address, BYTE* pattern, BYTE* mask) {
- for (; *mask; address++, pattern++, mask++) {
- if (*mask == 'x' && *address != *pattern) {
- return false;
- }
- }
- return true;
- }
- DWORD Scan(BYTE* aob, BYTE* mask, BYTE prot = (PAGE_READONLY | PAGE_READWRITE | PAGE_WRITECOPY | PAGE_EXECUTE | PAGE_EXECUTE_READ | PAGE_EXECUTE_READWRITE | PAGE_EXECUTE_WRITECOPY)) {
- MEMORY_BASIC_INFORMATION mbi;
- DWORD j = (DWORD)GetModuleHandle(NULL);
- while (j < 0x7FFFFFFF && VirtualQuery((void*)j, &mbi, sizeof(mbi))) {
- if (!(mbi.Protect & PAGE_GUARD) && (mbi.State & MEM_COMMIT) && (mbi.Protect & prot)) {
- for (DWORD k = (DWORD)mbi.BaseAddress; k < ((DWORD)mbi.BaseAddress + mbi.RegionSize); ++k) {
- if (compare((BYTE*)k, (BYTE*)aob, (BYTE*)mask)) {
- return k;
- }
- }
- }
- j += mbi.RegionSize;
- }
- return 0;
- }
- ///////////////
- }
- //HOW 2 ACTUALLY SCAN FOR IT:
- ScriptContext = Memory::Scan((BYTE*)&ScriptContextVFT_Addy, (BYTE*)"xxxx", PAGE_READWRITE);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement