![]() |
eXeL@B —› Программирование —› ZwEnumerateKey |
Посл.ответ | Сообщение |
|
Создано: 08 июля 2009 23:37 · Поправил: depler · Личное сообщение · #1 Ктонить делал скрытие веток или значений реестра перехватом этой функции из ntdll.dll на уровне 3го кольца? Со скрытием файлов проще - легко нашел инфу, а тут кроме MSDN ниче конкретного нет, а описывать все структуры самому естессна в лом. PS. Если вы еще чтото перехватывали из системных или не очень библиотек - выложите плз. ----- Лень - это подсознательная мудрость ![]() |
|
Создано: 09 июля 2009 00:06 · Поправил: arnix · Личное сообщение · #2 |
|
Создано: 09 июля 2009 10:40 · Личное сообщение · #3 |
|
Создано: 09 июля 2009 12:00 · Личное сообщение · #4 Я делал, тока код ща не найду. Принцип в том, что ZwEnumerateKey возвращает список, и надо удалить элемент списка перед тем как отпустить функцию. Но не в смысле удалить - освободить память, а сделать чтобы ссылки на предидущий/следующий элемент списка не указывали на элемент который мы прячем. ----- Реверсивная инженерия - написание кода идентичного натуральному ![]() |
|
Создано: 09 июля 2009 12:19 · Личное сообщение · #5 |
|
Создано: 09 июля 2009 13:02 · Личное сообщение · #6 |
|
Создано: 09 июля 2009 13:07 · Личное сообщение · #7 |
|
Создано: 09 июля 2009 13:13 · Личное сообщение · #8 |
|
Создано: 09 июля 2009 13:24 · Личное сообщение · #9 |
|
Создано: 09 июля 2009 13:31 · Личное сообщение · #10 |
|
Создано: 09 июля 2009 13:42 · Личное сообщение · #11 |
|
Создано: 09 июля 2009 13:49 · Личное сообщение · #12 |
|
Создано: 09 июля 2009 14:08 · Поправил: depler · Личное сообщение · #13 |
|
Создано: 09 июля 2009 14:37 · Личное сообщение · #14 |
|
Создано: 09 июля 2009 15:06 · Личное сообщение · #15 |
|
Создано: 09 июля 2009 16:03 · Личное сообщение · #16 SLV пишет: Тогда можно переименовать в MSDNl@b Я просто не представляю как можно учиться креку спрашивая о конкретных защитах на форуме. Гораздо более полезней изучить Win32API (в случае с Win32/64-крекингом), причём на более глубоком уровне чем просто то, что можно узнать из MSDN (а узнать там можно много, тем не менее). P.S. Давайте уже закончим флуд о том, что и где можно искать. Если кто-то хочет помочь - ссылки на код или примеры реализаций в атаче. В противном случае посты будем килять. ![]() |
|
Создано: 09 июля 2009 18:37 · Личное сообщение · #17 |
|
Создано: 10 июля 2009 11:51 · Поправил: depler · Личное сообщение · #18 Вобщем пришлось накатать структуры самому, получилось вот что: [ASM]type PKEY_BASIC_INFORMATION = ^KEY_BASIC_INFORMATION; KEY_BASIC_INFORMATION = packed record LastWriteTime: LARGE_INTEGER; TitleIndex: ULONG; NameLength: ULONG; Name: array [0..0] of WideChar; end; PKEY_NODE_INFORMATION = ^KEY_NODE_INFORMATION; KEY_NODE_INFORMATION = packed record LastWriteTime: LARGE_INTEGER; TitleIndex: ULONG; ClassOffset: ULONG; ClassLength: ULONG; NameLength: ULONG; Name: array [0..0] of WideChar; end; PKEY_FULL_INFORMATION = ^KEY_FULL_INFORMATION; KEY_FULL_INFORMATION = packed record LastWriteTime: LARGE_INTEGER; TitleIndex: ULONG; ClassOffset: ULONG; ClassLength: ULONG; SubKeys: ULONG; MaxNameLen: ULONG; MaxClassLen: ULONG; Values: ULONG; MaxValueNameLen: ULONG; MaxValueDataLen: ULONG; Name: array [0..0] of WideChar; end; PKEY_NAME_INFORMATION = ^KEY_NAME_INFORMATION; KEY_NAME_INFORMATION = packed record NameLength: ULONG; Name: array [0..0] of WideChar; end; PKEY_CACHED_INFORMATION = ^KEY_CACHED_INFORMATION; KEY_CACHED_INFORMATION = packed record LastWriteTime: LARGE_INTEGER; TitleIndex: ULONG; SubKeys: ULONG; MaxNameLen: ULONG; Values: ULONG; MaxValueNameLen: ULONG; MaxValueDataLen: ULONG; NameLength: ULONG; end; PKEY_VIRTUALIZATION_INFORMATION = ^KEY_VIRTUALIZATION_INFORMATION; KEY_VIRTUALIZATION_INFORMATION = packed record VirtualizationCandidate: ULONG; VirtualizationEnabled: ULONG; VirtualTarget: ULONG; VirtualStore: ULONG; VirtualSource: ULONG; Reserved: ULONG; end; При этом сама функция вынлядит так: Function ZwEnumerateKey( KeyHandle: DWORD; Index: ULONG; KeyInformationClass: DWORD; KeyInformation: pointer; Length: ULONG; ResultLength: PULONG):NTStatus; stdcall;external 'ntdll.dll'; Вроде правильно? Теперь вопрос что фильтровать-то в функции из этих 6 структур? ----- Лень - это подсознательная мудрость ![]() |
|
Создано: 10 июля 2009 21:59 · Личное сообщение · #19 |
|
Создано: 11 июля 2009 11:49 · Личное сообщение · #20 |
![]() |
eXeL@B —› Программирование —› ZwEnumerateKey |
Эта тема закрыта. Ответы больше не принимаются. |