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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как убить процесс, без помощи Win Api 
:(
    Опции темы
Sunvas
Дата 24.3.2006, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Как убить любой процесс (системный, другого пользователя) и/или поток без помощи Win Api.
Не смешно! - Когда-то год назад читал, что есть в винде такая возможность, и даже был преведено код одной функции на ассемблере. Жаль тогда у меня не было этой потребности и столь полезная вещь прошла мимо. А теперь надо, а никак не могу найти этот документ в сети..



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


Шустрый
*


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

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



Похоже, это был эксплоит (а скорее всего - просто утка), а дыру, вероятно, уже заделали. С usermode - никак

Это сообщение отредактировал(а) Dian - 24.3.2006, 09:12
PM MAIL WWW   Вверх
_hunter
Дата 24.3.2006, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



если код был на асме -- чего ты сюда постиш?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Sunvas
Дата 25.3.2006, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(_hunter @ 24.3.2006, 11:23 Найти цитируемый пост)
если код был на асме -- чего ты сюда постиш?

Логичный вопрос. Но ведь мне нужно это именно в делфи! К тому же как я помню там были лишь вставки ассемблера, а не все полностью.


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


Эксперт
****


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

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



Цитата(Sunvas @ 25.3.2006, 08:08 Найти цитируемый пост)
Логичный вопрос. Но ведь мне нужно это именно в делфи! К тому же как я помню там были лишь вставки ассемблера, а не все полностью.

Возможно я тебя огорчу, но врятли в Delphi это получится. Возможности встроегоно ассемблера там не велики, а без WinAPI так и вообще нереально.


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


Шустрый
*


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

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



Просто интересно, а зачем вам убивать процесс не используя винапи? В зависимости от конкретной задачи можно что-нибудь придумать.
PM   Вверх
Zero
Дата 25.3.2006, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

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



PM MAIL ICQ   Вверх
Yanis
Дата 26.3.2006, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Zero @ 25.3.2006, 23:40)
Тут есть всё что нужно

А главное, что без использования WinAPI...


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


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


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

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



Цитата(Nickel @ 25.3.2006, 13:48 Найти цитируемый пост)
Просто интересно, а зачем вам убивать процесс не используя винапи? В зависимости от конкретной задачи можно что-нибудь придумать.

Ну вот несколько из многих причин - нужно завалить процесс Антивируса Касперского (kav.exe); нужно убивать невидимые процессы; нужно убивать системные процессы (в том числе и ядро).+Еще и коммерческий проект....

Цитата(Yanis @ 26.3.2006, 00:09 Найти цитируемый пост)
А главное, что без использования WinAPI...

OpenThread там действительно почти без этого.. Но вот киляние процесса - апишное.


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


Эксперт
****


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

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



Так, давайте разберёмся. Что вы, Sunvas, считаете не WinAPI функциями!?


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


Шустрый
*


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

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



Цитата(Sunvas @ 26.3.2006, 01:31)
Ну вот несколько из многих причин - нужно завалить процесс Антивируса Касперского (kav.exe); нужно убивать невидимые процессы; нужно убивать системные процессы (в том числе и ядро).+Еще и коммерческий проект....

Понятно... значит коммерческий троян smile Вот тебе advapihook Ms-Rem'а. Чтобы завалить процесс Каспера, нам необходим его хендл, но дело в том что каспер не даст нам его просто так получить, поэтому используем функцию OpenProcessEx. Эта функция использует тот факт, что системный процесс csrss.exe имеет хендлы всех процессов запущенных после него и просто копирует нам хендл нужного процесса. Однако, чтобы нам провернуть такую операцию нужна привелегия отладчика, поэтому перед вызовом OpenProcessEx используем EnableDebugPrivilege. Далее прикончим каспера "отладочным методом" - DebugKillProcess. Наверно вы замечали, что отлаживаемый процесс завершается по завершению его отладки (т.е. при закрытии соответствующему ему DebugObject'а). Эта фича и лежит в основе данного метода. Насчёт скрытых процессов, обратимся опять же к Ms-Rem'у:
Цитата

...я приведу здесь разработанный мной метод поиска скрытых процессов.
Метод состоит в том, что список процессов получается не с помощью API функций, а непосредственно через системные вызовы ядра Windows.
Недостаток данного метода состоит в том, что интерфейсы ядра не документированы, и узнать их можно только дизассемблируя системные библиотеки.
Также функции ядра могут различаться в разных версиях Windows, поэтому работоспособность этого метода везде не гарантируется.
Приведенный ниже код получает список процессов с помощью вызова интерфейсов ядра:

Код

Procedure GetProcessList(var NameList, HandleList: TList); 
asm 
 push ebp 
 mov ebp, esp
 push ecx
 push ebx
 push esi
 push edi
 mov esi, edx
 mov ebx,eax
 push $05
 call @GetInfoTable
 jmp @InfoTableEnd
 @GetInfoTable:
 push ebp
 mov ebp, esp
 sub esp, $04h
 push esi 
 push 0
 pop dword ptr [ebp - $04] 
 mov esi, $4000
 @GetInfoTable_doublespace:
 shl esi, $01
 push esi
 push 0
 call LocalAlloc
 test eax, eax
 jz @GetInfoTable_failed 
 mov [ebp-$04], eax 
 push 0
 push esi
 push eax
 push dword ptr [ebp + $08]
 call @OpenKernelData
 jmp @Cont 
 @OpenKernelData: 
 mov eax, $AD 
 call @SystemCall 
 ret $10 
 @SystemCall: 
 mov edx, esp 
 sysenter 
 @Cont: 
 test eax, $C0000000 
 jz @GetInfoTable_end 
 cmp eax, $C0000004
 jnz @GetInfoTable_failed 
 push dword ptr [ebp - $04] 
 call LocalFree 
 jmp @GetInfoTable_doublespace 
 @GetInfoTable_failed: 
 push 0 
 pop dword ptr [ebp - $04] 
 @GetInfoTable_end: 
 mov eax,[ebp - $04] 
 pop esi 
 leave 
 ret $04 
 @InfoTableEnd: 
 mov [edi], eax 
 @FindData: 
 mov edx, [eax + $3C] 
 mov eax, [ebx] 
 call TList.Add  //NameList.Add 
 mov eax, [edi] 
 lea edx, [eax + $44] 
 mov eax, [esi] 
 call TList.Add  //HandleList.Add 
 mov eax, [edi] 
 cmp [eax], 0 
 jz @EndData 
 add eax, [eax] 
 mov [edi], eax 
 jmp @FindData 
 @EndData: 
 pop edi  
 pop esi 
 pop ebx 
 pop ecx 
 pop ebp 
 ret 
end;


NameList будет содержать указатели PWideChar на имена процессов, а HandleList на их PID. Данный код проверен в Windows XP sp0,sp1 и sp2. В Windows 2000 он работать не будет, так как интерфейс системных вызовов там сильно отличается от XP. Но от перехвата API в ядре этот метод не спасет.

Видимо вызовы интерфейсов ядра можно использовать и для завершения процесса, если кто-нибудь так умеет, я был бы рад примеру.

Цитата(Yanis @ 26.3.2006, 02:24)
Так, давайте разберёмся. Что вы, Sunvas, считаете не WinAPI функциями!?

Ага, неплохо бы. Возможно вам поможет эта картинка. Так вот если вы не хотите использовать Win API, вам бы возможно подошла функция ZwTerminateProcess из ntdll.dll, однако Native API щас мало кого удивишь.
ЗЫ: Ахтунг! Писать вирусы, трояны и прочие руткиты вредно для здоровья!
PM   Вверх
Sunvas
Дата 27.3.2006, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Yanis @ 26.3.2006, 02:24 Найти цитируемый пост)
Так, давайте разберёмся. Что вы, Sunvas, считаете не WinAPI функциями!?

Те функции, которых нет в модулях - например windows, shellapi и т.д ..
Цитата(Nickel @ 26.3.2006, 16:16 Найти цитируемый пост)
ЗЫ: Ахтунг! Писать вирусы, трояны и прочие руткиты вредно для здоровья!

Я не говорил, что пишу вирус! Поэтому твои обвинения безпочвенны!


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


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

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



Цитата(Sunvas @ 27.3.2006, 19:06 Найти цитируемый пост)
Цитата(Yanis @ 26.3.2006, 02:24 )
Так, давайте разберёмся. Что вы, Sunvas, считаете не WinAPI функциями!?


Те функции, которых нет в модулях - например windows, shellapi и т.д ..

А я думал в модуле windows нет ничего кроме АПИ


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Sunvas
Дата 28.3.2006, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Nickel, вся проблема в том, что
Цитата(Nickel @ 26.3.2006, 16:16 Найти цитируемый пост)
В Windows 2000 он работать не будет

а мне нужно что работало в первую очередь здесь. Да и функции, преведенные в архиве, который ты мне дал используют Апи. Это не желательно, ведь мне нужно без Апи завалить любой процесс (для примера я взял Каспера - он самый стойкий), если я знаю его хэндл. Вообщем немного не то.. Или я не с того начал..
Что еще ты можешь хорошего предложить?
smile smile


Это сообщение отредактировал(а) Sunvas - 28.3.2006, 00:43


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


Эксперт
****


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

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



Цитата(Sunvas @ 27.3.2006, 19:06 Найти цитируемый пост)
Те функции, которых нет в модулях - например windows, shellapi и т.д ..

GetModuleHandleEx (как и многих других) нет в модуле Windows.pas. Что скажешь?


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


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

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


 




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


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

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