Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Защита процесса! 
:(
    Опции темы
_hunter
Дата 30.11.2006, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



ищи "перехват api" -- вопрос не раз обсуждался.


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


Шустрый
*


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

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



Ок, спасибо!
PM   Вверх
Феликс
Дата 7.12.2006, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Еще вот такой вопрос!
Вот скрипт по выводу всех процессов в системе!
Код

    HANDLE pSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    bool bIsok = false;
    PROCESSENTRY32 ProcEntry;
    ProcEntry.dwSize = sizeof(ProcEntry);
    bIsok = Process32First(pSnap, &ProcEntry);    
    while(bIsok)
    {
    printf("%u\t*%s*\n", ProcEntry.th32ProcessID, ProcEntry.szExeFile);
    bIsok = Process32Next(pSnap, &ProcEntry);
          }

Что мне нужно дописать, чтобы я смог определить (по имени процесса) заранее, если есть такой процесс в системе!
К примеру после вывода всего списка, программа анализировала каждый процесс, и если среди них наидёт заданный мной процесс, то его нужно разрушить!
Спасибо за помощь! Помощь предоставлаем ввиде сурсов!
PM   Вверх
Romikgy
Дата 7.12.2006, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Код

printf("%u\t*%s*\n", ProcEntry.th32ProcessID, ProcEntry.szExeFile);
if (strcmp("my.exe",ProcEntry.szExeFile)
{
TerminateProcess(OpenProcess( PROCESS_TERMINATE, 0,ProcEntry.th32ProcessID),0);
}
    bIsok = Process32Next(pSnap, &ProcEntry);

хотя сравнение надо сделать регистро независимым и только имя файла
Цитата(Феликс @  7.12.2006,  12:57 Найти цитируемый пост)
Вот скрипт по выводу всех процессов в системе!

это не скрипт!


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Феликс
Дата 7.12.2006, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Romikgy @ 7.12.2006,  14:52)
Цитата(Феликс @  7.12.2006,  12:57 Найти цитируемый пост)
Вот скрипт по выводу всех процессов в системе!

это не скрипт!

Часть его! Сейчас испробуем твой метод!
PM   Вверх
Феликс
Дата 7.12.2006, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



После запуска сурса у меня отрубило все процессы, а тот что надо было отрубить он оставил  smile . Romikgy помоги мне с этой задачей пожалуйста!

Добавлено @ 23:22 
Почемуто когда ставиш параметр закрития процесса в параметр False процедуры if, то всё работает!

Это сообщение отредактировал(а) Феликс - 7.12.2006, 23:19
PM   Вверх
Феликс
Дата 7.12.2006, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Еще одна задача! К процессу подключился постороний .dll. Нужен сурс по определению если такой .dll подключен к процессу и его уничтожению!
П.С: Romikgy спасибо за помощь!
PM   Вверх
Romikgy
Дата 8.12.2006, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Цитата(Феликс @  7.12.2006,  12:57 Найти цитируемый пост)
CreateToolhelp32Snapshot

+TH32CS_SNAPMODULE    
+Module32First
+Module32Next

имхо

Добавлено @ 00:14 
Кса правила форума давай придерживаться одна тема один вопрос


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
0x00
Дата 9.12.2006, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ты хочешь писать защиту от c0d3 injection?

перехватываешь апи WriteProcessMemory...
смотришь кто куда что хочет записать. если нильзя, или записал много, то терминейт, если нет, то норм работаешь.
например по умному это должно работать так - разрешать записть в чужой процесс, но не более разрешенного кол-ва байт, например в защите аутпост 4.0 про этот размер составляет помоему 15 байт на процесс. 

абсолютно ничего сложного. главная задача - перехватить WriteProcessMemory.

но возникает еще один вопрос - как завершить процесс, который пытается записать в чужое пространство... т.е. с юзермодовыми ф-циями далеко не уйдешь. надо писать драйвер и диспетчер для него... например спалил ты запись 1кб в процесс... передаешь информацию о том, что мол xxx.exe записал 1024 в yyy.exe, диспетчер решает что делать... а он решит заблокироввать надолго xxx.exe, для этого он передает irp пакет драйверу с информацией о том, какой процесс убить.

p.s.
на самом деле лучше все защиты писать в ring0, а для юзермода оставлять только gui =))
PM MAIL   Вверх
Феликс
Дата 10.12.2006, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Всё это очень хорошо 0х00, вот тока мне трудно это всё переварить и реализовать самому, поэтому я прощу у вас помощи в решении этой не легкой задачи!
PM   Вверх
zabivator
Дата 11.12.2006, 03:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Феликс, когда решаешь нелегкие задачи, надо получить минимальное представление по тематике. Читай классику. Въезжай в идеологию.  Помочь могут с конкретной проблемой, никто тебе всю программу писать не будет.
--------------------
#include <zabivator>int main( int, char * [] ){   while( Zabivator::жив() ) Zabivator::моск()++;   return 0;}
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

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


 




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


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

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