coder of the year
-
Автор темы
- #1
решил немного посвятить себя в дотахакинг.
через иду все прекрасно находит
p.s: client.dll загружен, делал проверку через getmodulehandle
на GetModuleInformation в поиске паттерна ставил брик, проверку проходит
в чем заключается ошибка, мужички?
C++:
ui ent_find_pat = (ui)FPat("client.dll", "48 83 EC 28 83 3A 02 7D 12 48 8D 0D ? ? ? ? 48 83 C4 28 48 FF 25 ? ? ? ? 48 89 5C 24 ? 48 8D 0D ? ? ? ? 48 89"/*"48 83 EC ? 83 3A 02 7D 12 48 8D 0D ? ? ? ? 48 83 C4 ? 48 FF 25 ? ? ? ? 48 89 5C ? ? 48 8D 0D ? ? ? ? 48 89 6C"*/);
if (ent_find_pat != 0)
ConsolePrint("[+] end_fint_pat %p.\n", ent_find_pat);
else
ConsolePrint("[-] end_fint_pat is NULL =(\n");
через иду все прекрасно находит
p.s: client.dll загружен, делал проверку через getmodulehandle
C++:
#define ui unsigned long long
ui FPat(const ui& start_address, const ui& end_address, const char* target_pattern) {
const char* pattern = target_pattern;
ui first_match = 0;
for (ui position = start_address; position < end_address; position++) {
if (!*pattern)
return first_match;
const unsigned char pattern_current = *reinterpret_cast<const unsigned char*>(pattern);
const unsigned char memory_current = *reinterpret_cast<const unsigned char*>(position);
if (pattern_current == '\?' || memory_current == getByte(pattern)) {
if (!first_match)
first_match = position;
if (!pattern[2])
return first_match;
pattern += pattern_current != '\?' ? 3 : 2;
}
else {
pattern = target_pattern;
first_match = 0;
}
}
return NULL;
}
ui FPat(const char* module, const char* target_pattern) {
MODULEINFO module_info = { 0 };
if (!GetModuleInformation(GetCurrentProcess(), GetModuleHandleA(module), &module_info, sizeof(MODULEINFO)))
return NULL;
const ui start_address = ui(module_info.lpBaseOfDll);
const ui end_address = start_address + module_info.SizeOfImage;
return FPat(start_address, end_address, target_pattern);
}
в чем заключается ошибка, мужички?