Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.58/12: Рейтинг темы: голосов - 12, средняя оценка - 4.58
maksili
1 / 1 / 1
Регистрация: 02.04.2013
Сообщений: 117
Завершенные тесты: 1
1

Не закрываемая программа WinApi

31.07.2013, 08:31. Просмотров 2215. Ответов 32
Метки нет (Все метки)

Пишу анти-вирусную утилиту но вирусы уже адаптировались и убивают как ее защитить!я понимаю что это на чистом шарпе не сделаещ поэтому объясните как это сделать прибегая к функциям на WinApi.Help my please.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2013, 08:31
Ответы с готовыми решениями:

Программа падает на Marshal.Copy при попытке сделать скриншот через WinAPI
Доброго, требуется "грабить" экран, задача вроде тривиальная но все же есть...

Требуется winapi функция memset, но после её импорта и использования программа прекращает работу
Здравствуйте, требуется winapi функция memset, но после её импорта и...

Программа на WINAPI
У меня есть такая задача, нужно сделать программу на котором будет...

Консольная программа С++ по WinAPI
Не могу разобраться с данным заданием. Прошу подсказать, откуда и как вообще...

Программа проводник на WinApi
Здравствуйте!Мне необходимо написать программу-проводник на WinApi - это моя...

32
neBezGrexa
48 / 48 / 3
Регистрация: 14.07.2011
Сообщений: 156
31.07.2013, 17:53 2
Ну убивают её скорее всего kill'ом, т.е. полностью выгрузив из памяти, а следовательно никакие деструкторы работать не станут. И врятли можно создать неубиваемый процесс, ибо тогда антивирусники можно было бы выбрасывать в топку. Системные процессы есть, но сделать свой процесс системным, насколько я знаю, нельзя.
Советую поковырять в сторону служб.
0
maksili
1 / 1 / 1
Регистрация: 02.04.2013
Сообщений: 117
Завершенные тесты: 1
31.07.2013, 20:50  [ТС] 3
А можно сделать при закрытии программы что она открывалась заново !
0
Убежденный
Ушел с форума
Эксперт С++
16128 / 7275 / 1181
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
31.07.2013, 23:07 4
На Win API такое толком не сделать.
Ну разве что задать для процесса дескриптор безопасности, из которого
убрать все мыслимые права доступа. Но это имеет смысл только тогда,
когда пользователь не входит в группу "Администраторы".
Еще можно поставить перехватчики на открытие процесса, но все это,
опять же, в режиме пользователя, поэтому почти также легко устраняется.

Добавлено через 2 минуты
Еще есть разнообразные "трюки", основанные на особенностях Windows.
Например, можно назвать свой процесс winlogon.exe, тогда его никто не посмеет тронуть.
Или загрузить свою dll-ку в критический системный процесс, при падении которого
система вылетает в "синий экран". То же способ, кстати. Хотя это все полумеры.
Правильная защита - это настройка прав доступа плюс мониторинг нежелательных
процессов в режиме ядра.
0
maksili
1 / 1 / 1
Регистрация: 02.04.2013
Сообщений: 117
Завершенные тесты: 1
01.08.2013, 11:01  [ТС] 5
а инжект в системный процесс поможет ? если поможет то как это сделать?
0
onicdr
37 / 36 / 7
Регистрация: 01.08.2013
Сообщений: 106
01.08.2013, 13:13 6
Предложу топорный метод - держать два процесса, первый следит за тем, чтобы был открыт второй процесс, а второй за первым. Запуск процессов желательно запускать через сторонний процесс, тогда нельзя будет убить процессы через дерево.
0
Убежденный
Ушел с форума
Эксперт С++
16128 / 7275 / 1181
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
01.08.2013, 13:31 7
Цитата Сообщение от maksili Посмотреть сообщение
а инжект в системный процесс поможет ? если поможет то как это сделать?
Инжект: открыть процесс, выделить в нем память, запустить там удаленный поток.
Поток загружает в процесс свою dll.

Только с такими методами есть шанс самому угодить в "черные списки" антивирусов.
0
maksili
1 / 1 / 1
Регистрация: 02.04.2013
Сообщений: 117
Завершенные тесты: 1
01.08.2013, 13:56  [ТС] 8
я школо кодер и незнанию как это.А можно написать екзешник который будет проверять хэндл моего окна закрыт или открыт если закрыт откроет его а если открыт то ничего делать не будет.
0
onicdr
37 / 36 / 7
Регистрация: 01.08.2013
Сообщений: 106
01.08.2013, 14:08 9
Цитата Сообщение от maksili Посмотреть сообщение
я школо кодер и незнанию как это.А можно написать екзешник который будет проверять хэндл моего окна закрыт или открыт если закрыт откроет его а если открыт то ничего делать не будет.
Как раз и есть топорный метод, очень давно делал таким образом, с обычными таймерами, как раз в школе когда был. Возможно, что можно проверять не по таймеру, а подвесить на системные события.
0
Убежденный
Ушел с форума
Эксперт С++
16128 / 7275 / 1181
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
01.08.2013, 14:13 10
Цитата Сообщение от maksili Посмотреть сообщение
Пишу анти-вирусную утилиту
Цитата Сообщение от maksili Посмотреть сообщение
я школо кодер
Как-то не сочетается...
0
maksili
1 / 1 / 1
Регистрация: 02.04.2013
Сообщений: 117
Завершенные тесты: 1
01.08.2013, 14:30  [ТС] 11
утилиту а не антивирус базой данных на милиард вирусов.
0
Убежденный
Ушел с форума
Эксперт С++
16128 / 7275 / 1181
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
01.08.2013, 14:33 12
Цитата Сообщение от maksili Посмотреть сообщение
А можно написать екзешник который будет проверять хэндл моего окна закрыт или открыт если закрыт откроет его а если открыт то ничего делать не будет.
А вредоносный код будет в цикле проверять присутствие окна и закрывать его.
0
maksili
1 / 1 / 1
Регистрация: 02.04.2013
Сообщений: 117
Завершенные тесты: 1
01.08.2013, 14:34  [ТС] 13
Цитата Сообщение от Убежденный Посмотреть сообщение
А вредоносный код будет в цикле проверять присутствие окна и закрывать его.
нет создатели вируса до этого не додумаются.
0
Убежденный
Ушел с форума
Эксперт С++
16128 / 7275 / 1181
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
01.08.2013, 14:35 14
А как же тогда это:

Цитата Сообщение от maksili Посмотреть сообщение
Пишу анти-вирусную утилиту но вирусы уже адаптировались и убивают
0
maksili
1 / 1 / 1
Регистрация: 02.04.2013
Сообщений: 117
Завершенные тесты: 1
01.08.2013, 14:37  [ТС] 15
данный вирус который я обхожу завершает все окна при загрузке формы потом ни чо не делает просто висит и выполняет свою вирусную работу.
и да а можеш скайп написать для более удобного обшения.
0
Убежденный
Ушел с форума
Эксперт С++
16128 / 7275 / 1181
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
01.08.2013, 14:40 16
А если сделать процесс без окна ? Вирус его тоже прибъет ?
0
maksili
1 / 1 / 1
Регистрация: 02.04.2013
Сообщений: 117
Завершенные тесты: 1
01.08.2013, 14:44  [ТС] 17
нет не убьет, но мне нужно с окном.

Добавлено через 1 минуту
может можно как то спрятать.

Добавлено через 1 минуту
я сейчас уежаю потом прочитаю и отвечу.
0
Убежденный
Ушел с форума
Эксперт С++
16128 / 7275 / 1181
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
01.08.2013, 14:44 18
Ну тогда надо попробовать так: в обработчике WM_CLOSE (пользователь жмет
"крестик" в углу окна) ничего не делать, сразу возвращая управление, чтобы
окно не закрывалось. Хотя такая "защита" не вызывает ничего, кроме улыбки...
0
maksili
1 / 1 / 1
Регистрация: 02.04.2013
Сообщений: 117
Завершенные тесты: 1
01.08.2013, 20:10  [ТС] 19
если убивать процесс то это не поможет.
0
neBezGrexa
48 / 48 / 3
Регистрация: 14.07.2011
Сообщений: 156
03.08.2013, 13:02 20
Из того что ты описал, вирусня убивает твое приложение как форму, т.е. с помощью WindowClose. Тогда просто делаешь в главной форме реакцию на событие WindowClose и в ней запускаешь свое же приложение через Process.
Но это не гуд. Все хорошие антивирусы используют службу в Windows которая следит за присутствием процесса антивируса в системе. Попробуй установить Касперского и кикнуть его через диспетчер задач и увидишь что он запуститься заново через пару секунд.
0
03.08.2013, 13:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.08.2013, 13:02

Первая программа с WinApi
Вот код программы: #include <windows.h> bool RegClass(WNDPROC, LPCTSTR,...

Программа проводник на WinApi
Здравствуйте!Мне необходимо написать программу-проводник на WinApi - это моя...

Первая программа на WINAPI
Вот написал первую программу с 2 кнопками. при нажатии на которые получаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru