Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Неубиваемые проги

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Неубиваемые проги
Имя
Сообщение << Старые топики   Новые топики >>
Неубиваемые проги - 2004-09-19 10:15:01   
macTep

Сообщений: 14
Оценки: 0
Присоединился: 2004-08-03 11:38:49
Вот заметил, что 5-й касперский не убивается диспетчером, фаром и другими прогами …. объясните как осуществить такое на паскале ( Делфи 6 )
Или на C++ (Борланд C 6)
Post #: 1
Неубиваемые проги - 2004-09-19 14:13:57   
DeepThinker

Сообщений: 177
Оценки: 0
Присоединился: 2004-06-13 02:26:09
Что, совсем ничем??? Process Explorer пробовал? Вообще есть один недокументированный способ сделать прогу неубиваемой на NT, я думаю о нем статью написать в ближайшем будущем. Надо IRQL поставить на 1 и не снимать. Но мне кажется, что касперского Process Explorer убъет.
Post #: 2
Неубиваемые проги - 2004-09-19 15:30:21   
macTep

Сообщений: 14
Оценки: 0
Присоединился: 2004-08-03 11:38:49
Подождём статью … Скажи пока что такое IRQL.
Не опытный ещё :)
Post #: 3
Неубиваемые проги - 2004-09-19 23:10:23   
DeepThinker

Сообщений: 177
Оценки: 0
Присоединился: 2004-06-13 02:26:09
Interrupt ReQuest Level. Вот в статье и увидишь :)
Post #: 4
Неубиваемые проги - 2004-09-20 07:10:08   
macTep

Сообщений: 14
Оценки: 0
Присоединился: 2004-08-03 11:38:49
Когда ждать статью то ?
Post #: 5
Неубиваемые проги - 2004-09-20 21:48:36   
DeepThinker

Сообщений: 177
Оценки: 0
Присоединился: 2004-06-13 02:26:09
На этой неделе будет. Дел по горло. [sm=7.gif]
Post #: 6
Неубиваемые проги - 2004-09-24 17:04:19   
macTep

Сообщений: 14
Оценки: 0
Присоединился: 2004-08-03 11:38:49
А насчёт того как осуществить убивание такой проги тоже напишишь?
Post #: 7
Неубиваемые проги - 2004-09-24 19:30:46   
DeepThinker

Сообщений: 177
Оценки: 0
Присоединился: 2004-06-13 02:26:09
Не знаю, как Касперского, мою только из ядра убить можно, точнее просто модифицировать ее код так, чтобы она сама себя завершила.
Post #: 8
Неубиваемые проги - 2004-10-05 09:43:02   
macTep

Сообщений: 14
Оценки: 0
Присоединился: 2004-08-03 11:38:49
Что-то статьи . на сайте не видно … готова?
Или сразу в журнале смотреть ?
Post #: 9
Неубиваемые проги - 2004-10-06 22:03:29   
DeepThinker

Сообщений: 177
Оценки: 0
Присоединился: 2004-06-13 02:26:09
Блин, извини, времени совсем не хватает пока статью писать. Давай я тебе в двух словах расскажу. Значит, загружаешь библиотеку hal.dll, как если бы она была пользовательской. Находишь в ней адрес ф-ии KfRaiseIrql и смещение его отн. базы. Через EnumModules находишь базовый адрес настоящей hal.dll, загруженной в пространство ядра и прибавляешь к нему смещение. Теперь ты знаешь адрес этой ф-ии в памяти. Ее объявление выгядит так: _fastcall ULONG KfRaiseIrql(ULONG Irql); Затем любым способом переходишь в режим ядра. Поищи в сети, как это сделать - по словам ZwSystemDebugControl или Device\PhysicalMemory или callgate.sys. И из режима ядра вызываешь эту ф-ию KfRaiseIrql(1); Затем возвращаешься в режим пользователя. Все. Программу не убить. Не помню уже, на каких Виндах я это проверял, но на ХР работает вроде, на 2003 вроде тоже. Бывали правда случаи, когда удавалось сделать из нее зомби - убить, но в списке процессов она висит. Вроде если с консольной прогой так сделать и закрыть консоль, то так и будет. А убить неконсольную можно только из режима ядра, болше никак. Комп перезагрузить тоже нельзя, пока эта хрень работает. Отладчик не может к такой проге подключиться и после закрытия сам превратится в зомби. Вот, пожалуй, и все.
Post #: 10
Неубиваемые проги - 2004-10-16 22:41:32   
***mR.PrOpEr***

Сообщений: 135
Оценки: 0
Присоединился: 2004-10-08 00:33:23
а ты чё из редакции ХАКЕРа???
Post #: 11
Неубиваемые проги - 2004-10-16 23:10:50   
DeepThinker

Сообщений: 177
Оценки: 0
Присоединился: 2004-06-13 02:26:09
нет
Post #: 12
Неубиваемые проги - 2004-11-04 02:48:15   
Laex

Сообщений: 44
Оценки: 0
Присоединился: 2004-11-04 01:38:29
quote:

—————-<BR>Цитата: Дата:06.10.2004 22:03:29, Автор:DeepThinker ::
Блин, извини, времени совсем не хватает пока статью писать. Давай я тебе в двух словах расскажу. Значит, загружаешь библиотеку hal.dll, как если бы она была пользовательской. Находишь в ней адрес ф-ии KfRaiseIrql и смещение его отн. базы. Через EnumModules находишь базовый адрес настоящей hal.dll, загруженной в пространство ядра и прибавляешь к нему смещение. Теперь ты знаешь адрес этой ф-ии в памяти. Ее объявление выгядит так: _fastcall ULONG KfRaiseIrql(ULONG Irql); Затем любым способом переходишь в режим ядра. Поищи в сети, как это сделать - по словам ZwSystemDebugControl или DevicePhysicalMemory или callgate.sys. И из режима ядра вызываешь эту ф-ию KfRaiseIrql(1); Затем возвращаешься в режим пользователя. Все. Программу не убить. Не помню уже, на каких Виндах я это проверял, но на ХР работает вроде, на 2003 вроде тоже. Бывали правда случаи, когда удавалось сделать из нее зомби - убить, но в списке процессов она висит. Вроде если с консольной прогой так сделать и закрыть консоль, то так и будет. А убить неконсольную можно только из режима ядра, болше никак. Комп перезагрузить тоже нельзя, пока эта хрень работает. Отладчик не может к такой проге подключиться и после закрытия сам превратится в зомби. Вот, пожалуй, и все.
—————-


Блин! А не понял как и почему это работает??! Как связан конкретный процесс и KfRaiseIrql?
Post #: 13
Неубиваемые проги - 2004-11-05 14:29:16   
DeepThinker

Сообщений: 177
Оценки: 0
Присоединился: 2004-06-13 02:26:09
Если ты не спец по ядру NT, то это ооооочень дооооолго объяснять.
Post #: 14
Неубиваемые проги - 2004-11-05 20:00:04   
Laex

Сообщений: 44
Оценки: 0
Присоединился: 2004-11-04 01:38:29
Я несколько в этом разбираюсь, но первое чего я непонимаю это почему вызов этой функции делает неубиваемой именно нужный процесс(или неубиваемыми становяться все процессы)
Post #: 15
Неубиваемые проги - 2004-11-07 22:51:57   
DeepThinker

Сообщений: 177
Оценки: 0
Присоединился: 2004-06-13 02:26:09
Прикол в том, что полностью этого не понимаю и я. :) Но насколько я смог докопаться, это некоторый глюк в диспетчере потоков. Когда IRQL текуего потока ставится в 1, сам он уже в 0 не сбросится никогда (это понятно), но вот на ДРУГИЕ потоки (даже не процессы, наверное, а именно потоки) это не повлияет, для них IRQL будет 0. Хоть IRQL - это общепроцессорная характеристика в данный момент, диспетчер очевидно, прерывая поток с IRQL 1 (у диспетчера он - 2), передает управление на другой поток, сохраняя старый IRQL в ETHREAD. (хотя этого, ты прав, быть НЕ должно). Моложды в M$, постарались. :)
Post #: 16
Неубиваемые проги - 2004-11-11 00:58:28   
GorluM

Сообщений: 312
Оценки: 0
Присоединился: 2004-04-07 23:41:00
DeepThinker: интересно, попробую реализовать на днях… и разобраться как работает, а то пока все мутновато… не факт что дисп вообще может irql 1 убивать

а о cpl 3->0 можно будет прочесть в одном из ближайших номеров Ха… коротко о калгейтах, коротко о физ.памяти… немного слов о дровах…
простенький материальчик
Post #: 17
Неубиваемые проги - 2004-11-11 19:28:45   
DeepThinker

Сообщений: 177
Оценки: 0
Присоединился: 2004-06-13 02:26:09
Ну, если мы объясним (или примеем за дожное :)) то факт, что после установки IRQL будет оставаться на 1 именно в данном потоке (судя по всему, получается так), то все остальное пояняется просто - наверное, TerminateThread просто напрявляет APC в очередь того потока, который надо убить, и в этом APC поток и завершается, а если IRQL = 1, то и не доходит до APC очередь.
Post #: 18
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Неубиваемые проги







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.