Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Неубиваемые программы, как сделать? 
:(
    Опции темы
ne0n
Дата 19.5.2006, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: 4
Всего: 11



Цитата(Nickel @  19.5.2006,  17:09 Найти цитируемый пост)
Выгрузить длл не сложнее чем загрузить, да и системный процесс убить как 2 байта переслать, только бы винда не скопытилась =)


Оно-то оно так, но ис драйвером проблем необерешься(если драйвер будет написан криво,
что скорей всего и будет, то машину можно с такойже легкостью пустить в даун)
 
PM MAIL ICQ   Вверх
Nickel
Дата 20.5.2006, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 7.2.2006

Репутация: 2
Всего: 4



Цитата(ne0n @ 19.5.2006,  21:10)
Оно-то оно так, но ис драйвером проблем необерешься(если драйвер будет написан криво,
что скорей всего и будет, то машину можно с такойже легкостью пустить в даун)

Да, с драйвером нелегко... Но думаю кривые драйвера мы писать не будем, покрайней мере постараемся  smile 
На самом деле и криво написанная длл может повалить тот же системный процесс.
Хотелось бы уже заслушать мнение создателя темы.
ЗЫ четвёртая пошла... 
PM   Вверх
Sunvas
Дата 20.5.2006, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: нет
Всего: 89



Цитата(Nickel @  20.5.2006,  09:47 Найти цитируемый пост)
На самом деле и криво написанная длл может повалить тот же системный процесс.
Хотелось бы уже заслушать мнение создателя темы.

Ну.. Длл мне сразу скажу, что не подходит - в ограниченной учетной записи ее нельзя присобачить к системному процессу csrss (которые винда не даст убить). С драйвером еще сложнее: почитал посты в теме и как-то драйвер писать перехотелось...
Думаем, думаем.. Нужно ведь, чтоб и в ограниченной записи работало..

ЗЫ:
Пока самая рульная остается идея Rouse_ об изменении PID процесса. 


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Yanis
Дата 22.5.2006, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 13
Всего: 111



Sunvas
Ты можешь назвать хоть одну программу аналог той, которую хочешь написать? 


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Rouse_
Дата 22.5.2006, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 18
Всего: 29



В ограниченой учетки спасет сервис... 


--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
killerbean
Дата 22.5.2006, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 18.5.2006

Репутация: нет
Всего: нет



вот этот код все равно убъет любой процесс
Код

Function DebugKillProcess(ProcessId: dword): boolean;
var
 pHandle: dword;
 myPID: dword;
 HandlesInfo: PSYSTEM_HANDLE_INFORMATION_EX;
 r: dword;
begin
 Result := false;
 myPID := GetCurrentProcessId();
 if not EnableDebugPrivilege() then Exit;
 //подключаемся к системе отладки и получаем DebugObject
 if DbgUiConnectToDbg() <> STATUS_SUCCESS then Exit;
 pHandle := OpenProcessEx(ProcessId);
 //включаем отладку процесса
 if DbgUiDebugActiveProcess(pHandle) <> STATUS_SUCCESS then Exit;
 //надо найти полученный DebugObject
 HandlesInfo := GetInfoTable(SystemHandleInformation);
 if HandlesInfo = nil then Exit;
 for r := 0 to HandlesInfo^.NumberOfHandles do
  if (HandlesInfo^.Information[r].ProcessId = myPID) and
     (HandlesInfo^.Information[r].ObjectTypeNumber = $8)  //DebugObject
     then begin
       //закрываем DebugObject, что приводит к уничтожению отлаживаемого процесса
       CloseHandle(HandlesInfo^.Information[r].Handle);
       Result := true;
       break;
     end;
 VirtualFree(HandlesInfo, 0, MEM_RELEASE);
end;


более подробное описание на wasm.ru. Там целая статья по этому поводу.
Проверено на Outpost Firewall, Kaspersky Antivirus 5,6 
PM MAIL   Вверх
Rouse_
Дата 22.5.2006, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 18
Всего: 29



killerbean, достаточно правильного перехвата NtCreateFile и этот код идет лесом smile
Не цитируй чужие ошибки...

Добавлено @ 17:37 
К тому же что ты будешь убивать, если ProcessId у тебя фальшивый? 


--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
Sunvas
Дата 23.5.2006, 07:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: нет
Всего: 89



Цитата(Rouse_ @  22.5.2006,  13:58 Найти цитируемый пост)
В ограниченой учетки спасет сервис... 

Но сервис можно стопануть..

Цитата(Yanis @  22.5.2006,  12:31 Найти цитируемый пост)
Sunvas
Ты можешь назвать хоть одну программу аналог той, которую хочешь написать? 

Вряд-ли. Мне просто пришла в голову эта идея после того, как мои процессы начали килять. 


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Rouse_
Дата 23.5.2006, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 18
Всего: 29



Цитата(Sunvas @  23.5.2006,  08:23 Найти цитируемый пост)
Но сервис можно стопануть..

С ограниченой? Врятли... 


--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
Nickel
Дата 23.5.2006, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 7.2.2006

Репутация: 2
Всего: 4



Цитата(killerbean @ 22.5.2006,  17:07)
вот этот код все равно убъет любой процесс
Код

Function DebugKillProcess(ProcessId: dword): boolean;
var
 pHandle: dword;
 myPID: dword;
 HandlesInfo: PSYSTEM_HANDLE_INFORMATION_EX;
 r: dword;
begin
 Result := false;
 myPID := GetCurrentProcessId();
 if not EnableDebugPrivilege() then Exit;
 //подключаемся к системе отладки и получаем DebugObject
 if DbgUiConnectToDbg() <> STATUS_SUCCESS then Exit;
 pHandle := OpenProcessEx(ProcessId);
 //включаем отладку процесса
 if DbgUiDebugActiveProcess(pHandle) <> STATUS_SUCCESS then Exit;
 //надо найти полученный DebugObject
 HandlesInfo := GetInfoTable(SystemHandleInformation);
 if HandlesInfo = nil then Exit;
 for r := 0 to HandlesInfo^.NumberOfHandles do
  if (HandlesInfo^.Information[r].ProcessId = myPID) and
     (HandlesInfo^.Information[r].ObjectTypeNumber = $8)  //DebugObject
     then begin
       //закрываем DebugObject, что приводит к уничтожению отлаживаемого процесса
       CloseHandle(HandlesInfo^.Information[r].Handle);
       Result := true;
       break;
     end;
 VirtualFree(HandlesInfo, 0, MEM_RELEASE);
end;


более подробное описание на wasm.ru. Там целая статья по этому поводу.
Проверено на Outpost Firewall, Kaspersky Antivirus 5,6

Во-первых, когда приводишь чужую функцию неплохо бы привести и все остальные, которые она использует.
Во-вторых, посчитай скока раз в этой теме ссылались на статьи Ms Rem'а.
В-третьих, Rouse_ прав - этой код сможет завалить далеко не каждый процесс. Существует тысяча и один способ обойти этот способ убийства процессов: начиная закрывание своего хендла у csrss.exe и заканчивая перехватом вызовов api функций.
Sunvas,  вограниченной учётной записи действительно подойдёт сервис, только видимо устанавливать его придётся из-под админа. 
PM   Вверх
Sunvas
Дата 24.5.2006, 06:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: нет
Всего: 89



Цитата(Nickel @  23.5.2006,  14:49 Найти цитируемый пост)
Sunvas,  вограниченной учётной записи действительно подойдёт сервис, только видимо устанавливать его придётся из-под админа. 

Ну, этогда это уже не ораниченная учетка.. smile 

Цитата(Rouse_ @  23.5.2006,  08:14 Найти цитируемый пост)
С ограниченой? Врятли... 

Я имею в виду другой спецсофт не стандартный проводник.
 


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Rouse_
Дата 24.5.2006, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 18
Всего: 29



Цитата(Sunvas @  24.5.2006,  07:47 Найти цитируемый пост)
Я имею в виду другой спецсофт не стандартный проводник.

Если предполагается использование спецсофта, то ни один из вышеперечисленных приемов тебе не поможет... 


--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
BinaryEvil
Дата 24.5.2006, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 4.3.2006

Репутация: -1
Всего: 2



можно две проги забацать: каждое запускает другое при отсутствии оного... тоись убил одно, второе тут же его подняло, убил второе, первое его подымает...  
PM MAIL   Вверх
ne0n
Дата 24.5.2006, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

Репутация: 4
Всего: 11



А может все-таки хуком обоитись? Уже где-то  писалось что в библиотеке MAD есть неплохой 
примерчик.

Цитата(BinaryEvil @  24.5.2006,  13:17 Найти цитируемый пост)
можно две проги забацать: каждое запускает другое при отсутствии оного... тоись убил одно, второе тут же его подняло, убил второе, первое его подымает...  


енто придлагал Albinos_X(по-моему) - автор проигнорировал.
 
PM MAIL ICQ   Вверх
Sunvas
Дата 24.5.2006, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: нет
Всего: 89



Цитата(ne0n @  24.5.2006,  15:26 Найти цитируемый пост)
Цитата(BinaryEvil @  24.5.2006,  13:17 )    
можно две проги забацать: каждое запускает другое при отсутствии оного... тоись убил одно, второе тут же его подняло, убил второе, первое его подымает...    

енто придлагал Albinos_X(по-моему) - автор проигнорировал.

Это я точно проигнорировал вот почему: останавливаем один процесс и валим воторой, а затем валим первый. Я так много-много шпионов килянул. 


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0949 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.