26 Haz 2017 #1 exBrowser E l33t Seçkin Üye Katılım 5 Ara 2015 Mesajlar 464 Tepki puanı 76 Ödüller 9 10 HİZMET YILI Kod bana ait değil :d Kod: #define INRANGE(x,a,b) (x >= a && x <= b) #define getBits( x ) (INRANGE((x&(~0x20)),'A','F') ? ((x&(~0x20)) - 'A' + 0xa) : (INRANGE(x,'0','9') ? x - '0' : 0)) #define getByte( x ) (getBits(x[0]) << 4 | getBits(x[1])) Kod: DWORD FSignature(const char* szSignature, ModuleInfo * Mod) { DWORD startAddress = Mod->dwBaseAddr; DWORD endAddress = startAddress + Mod->dwSize; const char* pat = szSignature; DWORD firstMatch = 0; for (DWORD pCur = startAddress; pCur < endAddress; pCur++) { if (!*pat) return firstMatch; if (*(PBYTE)pat == '\?' || *(BYTE*)pCur == getByte(pat)) { if (!firstMatch) firstMatch = pCur; if (!pat[2]) return firstMatch; if (*(PWORD)pat == '\?\?' || *(PBYTE)pat != '\?') pat += 3; else pat += 2; //one ? } else { pat = szSignature; firstMatch = 0; } } return NULL; } Kod: FSignature("8B 35 ? ? ? ? 85 FF 74 73", CshModule) Son düzenleme: 26 Haz 2017
Kod bana ait değil :d Kod: #define INRANGE(x,a,b) (x >= a && x <= b) #define getBits( x ) (INRANGE((x&(~0x20)),'A','F') ? ((x&(~0x20)) - 'A' + 0xa) : (INRANGE(x,'0','9') ? x - '0' : 0)) #define getByte( x ) (getBits(x[0]) << 4 | getBits(x[1])) Kod: DWORD FSignature(const char* szSignature, ModuleInfo * Mod) { DWORD startAddress = Mod->dwBaseAddr; DWORD endAddress = startAddress + Mod->dwSize; const char* pat = szSignature; DWORD firstMatch = 0; for (DWORD pCur = startAddress; pCur < endAddress; pCur++) { if (!*pat) return firstMatch; if (*(PBYTE)pat == '\?' || *(BYTE*)pCur == getByte(pat)) { if (!firstMatch) firstMatch = pCur; if (!pat[2]) return firstMatch; if (*(PWORD)pat == '\?\?' || *(PBYTE)pat != '\?') pat += 3; else pat += 2; //one ? } else { pat = szSignature; firstMatch = 0; } } return NULL; } Kod: FSignature("8B 35 ? ? ? ? 85 FF 74 73", CshModule)