Сейчас на форуме: tyns777, zds, JustLife, 2nd, morgot (+5 невидимых)

 eXeL@B —› Программирование —› ZwEnumerateKey
Посл.ответ Сообщение


Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 08 июля 2009 23:37 · Поправил: depler
· Личное сообщение · #1

Ктонить делал скрытие веток или значений реестра перехватом этой функции из ntdll.dll на уровне 3го кольца? Со скрытием файлов проще - легко нашел инфу, а тут кроме MSDN ниче конкретного нет, а описывать все структуры самому естессна в лом.

PS. Если вы еще чтото перехватывали из системных или не очень библиотек - выложите плз.

-----
Лень - это подсознательная мудрость




Ранг: 210.5 (наставник), 2thx
Активность: 0.140
Статус: Участник

Создано: 09 июля 2009 00:06 · Поправил: arnix
· Личное сообщение · #2

посмотри этот руткит:
hххp://www.xfocus.net/tools/200106/rk_044.zip
тут хучится - rk_kpatch.c
тут новая функа (NewZwEnumerateKey) - rk_ioman.c

+
тут че-то есть на эту тему:
hххp://securitylabs.websense.com/content/Blogs/2835.aspx




Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 09 июля 2009 10:40
· Личное сообщение · #3

arnix это все перехват через драйвер, т.е. нулевое кольцо. Перехватна уровне 3го кольца - это dll

-----
Лень - это подсознательная мудрость




Ранг: 481.4 (мудрец), 109thx
Активность: 0.180
Статус: Участник
Тот самый :)

Создано: 09 июля 2009 12:00
· Личное сообщение · #4

Я делал, тока код ща не найду. Принцип в том, что ZwEnumerateKey возвращает список, и надо удалить элемент списка перед тем как отпустить функцию. Но не в смысле удалить - освободить память, а сделать чтобы ссылки на предидущий/следующий элемент списка не указывали на элемент который мы прячем.

-----
Реверсивная инженерия - написание кода идентичного натуральному




Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 09 июля 2009 12:19
· Личное сообщение · #5

depler
глянь вот это
www.wasm.ru/forum/viewtopic.php?id=28863




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 09 июля 2009 13:02
· Личное сообщение · #6

толку от этих хуков всё легко детектиться и снимается.

-----
[nice coder and reverser]




Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 09 июля 2009 13:07
· Личное сообщение · #7

Hellspawn
ну так ... побаловаться маленько и только




Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 09 июля 2009 13:13
· Личное сообщение · #8

и это b4.cih.ms/?m=v&n=3

-----
127.0.0.1, sweet 127.0.0.1





Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 09 июля 2009 13:24
· Личное сообщение · #9

Hexxx дада, оно самое. Поищи плз код

ВАСМ я весь сразу перерыл, нашел большинство что мне нужно, но рабочего примера ZwEnumerateKey нету

-----
Лень - это подсознательная мудрость




Ранг: 309.8 (мудрец), 21thx
Активность: 0.170
Статус: Участник

Создано: 09 июля 2009 13:31
· Личное сообщение · #10

Четвёртая ссылка в гугле предотвратила бы появление этого топика.

-----
Shalom ebanats!




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 09 июля 2009 13:42
· Личное сообщение · #11

SLV
Ну если правильно пользоваться гуглом и MSDN - то форум вообще не нужен.



Ранг: 309.8 (мудрец), 21thx
Активность: 0.170
Статус: Участник

Создано: 09 июля 2009 13:49
· Личное сообщение · #12

Тогда можно переименовать в MSDNl@b

-----
Shalom ebanats!





Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 09 июля 2009 14:08 · Поправил: depler
· Личное сообщение · #13

SLV лол посмотри кто автор 4й ссылки в гугле

Hexxx ты всетаки поищи плз

Кстати вот еще вопрос на засыпку: кто писал udp или syn flooder на delphi? И не надо мня в гугл посылать! Да есть там исходник с rawsockets, да он работает, но мне сырые пакеты не нужны

-----
Лень - это подсознательная мудрость




Ранг: 309.8 (мудрец), 21thx
Активность: 0.170
Статус: Участник

Создано: 09 июля 2009 14:37
· Личное сообщение · #14

Надо тебя в гугл посылать, есть код от Cr4sh, там и syn и icmp реализовано.

-----
Shalom ebanats!





Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 09 июля 2009 15:06
· Личное сообщение · #15

В любом исходнике DDoS-бота организовано, правда на С

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 09 июля 2009 16:03
· Личное сообщение · #16

SLV пишет:
Тогда можно переименовать в MSDNl@b

Я просто не представляю как можно учиться креку спрашивая о конкретных защитах на форуме. Гораздо более полезней изучить Win32API (в случае с Win32/64-крекингом), причём на более глубоком уровне чем просто то, что можно узнать из MSDN (а узнать там можно много, тем не менее).

P.S. Давайте уже закончим флуд о том, что и где можно искать. Если кто-то хочет помочь - ссылки на код или примеры реализаций в атаче. В противном случае посты будем килять.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 09 июля 2009 18:37
· Личное сообщение · #17

wasm.ru/comment.php?srcid=275
Вообще с такими запросами надо посылать, к кряку отношения никакого. Вообще непонятно, какую муть пишет.




Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 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 структур?

-----
Лень - это подсознательная мудрость





Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 10 июля 2009 21:59
· Личное сообщение · #19

В статье описано, как перехватить и вроди был когда-то код...
wasm.ru/article.php?article=hidingnt

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes





Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 11 июля 2009 11:49
· Личное сообщение · #20

Читал я это, там действительно полно заморочек именно со скрытием реестра, со всем остальным намного проще. Вобщем тему закрываю

-----
Лень - это подсознательная мудрость



 eXeL@B —› Программирование —› ZwEnumerateKey
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати