Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
ZLOI
0 / 0 / 0
Регистрация: 17.05.2009
Сообщений: 7
#1

Кто-нибудь создаёт потоки как в MSDN? - C++

17.05.2009, 08:10. Просмотров 1935. Ответов 18
Метки нет (Все метки)

Приветствую, жизнь заставила писать на 2005м MVS и использовать MS SQL SERVER (требует ObjectARX).
Вообщем, раньше было какое-то предвзятое отношение, что C++ - это зло, но поработав с этим чудовищем недавно понял, что С++ - это и вправду зло.
Когда приходилось работать в Delphi, Java, PHP и даже ассемблере(MASM), то скорость разработки была гораздо выше.
Но раз некоторые утверждают, что С++ лучшее, что есть, то хочу проверить это, может быть я в чём-то ошибался.
Постановка задачи:
Для разработки программы "AntiCS", которую у меня попросили с кафедры, где я учусь в аспирантуре мне требуется разработать программный модуль запускаемый при загрузке Windows в виде скрытого процесса, который не виден в диспетчере задач и toolbar. Основная цель - уничтожение процессов hl.exe и czero.exe при их появлении в системе.
Впринципе, подобные программы я писал на Delphi за несколько минут, но есть желание быть универсалом и освоить С++, прошу Вашей помощи, потому что в процессе работы на С++ возникают разные маленькие проблемы, которые тормозят разработку, а в MSDN приходиться долго искать.
Итак вопрос:
Почему такая конструкция вызывает ошибку:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DWORD KillCS(void)
{
    MessageBeep(2);
    return 0;
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    DWORD dwThreadId;
    HANDLE hThread; 
            hThread = CreateThread( 
            NULL,              
            0,                 
            KillCS,        
            0,             
            0,                 
            &dwThreadId);
Ошибка звучит так:
cannot convert parameter 3 from 'DWORD (__cdecl *)(void)' to 'LPTHREAD_START_ROUTINE'
Но в то же самое время, такая конструкция проходит свободно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DWORD WINAPI KillCS(LPVOID lpParam)
{
    MessageBeep(2);
    return 0;
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    DWORD dwThreadId;
    HANDLE hThread; 
            hThread = CreateThread( 
            NULL,              
            0,                 
            KillCS,        
            0,             
            0,                 
            &dwThreadId);
Хотелось бы ещё комментариев, нормальна ли такая конструкция:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    HANDLE hSnapshot;
    PROCESSENTRY32 Entry;
    Entry.dwFlags = sizeof( PROCESSENTRY32 );
 
     // создаем моментальный снимок
    hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hSnapshot == INVALID_HANDLE_VALUE)
        return FALSE;
 
    // получаем информацию о первом процессе
    Entry.dwSize = sizeof(Entry);
    if (!Process32First(hSnapshot, &Entry))
        return FALSE;
 
    // перечисляем остальные процессы и уничтожаем неугодные
    do
    {    
        if ((wcscmp(Entry.szExeFile,L"czero.exe")==0)||(wcscmp(Entry.szExeFile,L"hl.exe")==0))
            TerminateProcess(OpenProcess(PROCESS_ALL_ACCESS,true,Entry.th32ProcessID),0);
    }
    while (Process32Next(hSnapshot, &Entry));
 
    CloseHandle(hSnapshot);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2009, 08:10
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Кто-нибудь создаёт потоки как в MSDN? (C++):

Кто нибудь, когда нибудь встречал Шрёдинбаг? - C++
Шрёдинбаг (англ. Schroedinbug) — термин, используемый в программировании для описания программной ошибки, которая никак не проявляет себя,...

Кто нибудь знает как написать игру на С ?) - C++
Зраствуйте Можно ли написать крестики нолики на С ? И как это сделать ? Дайте идею или код. Спасибо за внимание.

нужно сделать трассировку. кто-нибудь знает как? - C++
неужели никто не знает как делать трассировку? завтра преподу сдавать все, а я уже который день не могу сделать трассировку. ...

Всем добрый день! Кто-нибудь знает как исправить это? - C++
https://pp.vk.me/c625822/v625822049/3a869/cr3hbcL44_4.jpg Нарушение правил п.5.8. Запрещено публиковать ссылки на другие форумы, а...

Подскажите кто-нибудь, как записать квадратную динамическую матрицу в файл??? - C++
Подскажите кто-нибудь, как записать квадратную динамическую матрицу в файл??? Вот я её заполнил: #include<iostream> #include<stdio.h>...

Кто нибудь подскажет просто как объявить динамический массив M на M (с буквой M, я не ошибся) - C++
:)

18
ZLOI
0 / 0 / 0
Регистрация: 17.05.2009
Сообщений: 7
21.05.2009, 15:12  [ТС] #16
Цитата Сообщение от Deicider Посмотреть сообщение
Не знаю, каким образом у нас на работе боролись с CS, но смена имени экзешника решила проблему ))))))
Я пробовал сменить имя только у czero.exe и перестало работать, может быть Вы и правы, обычной контры у меня нет. Будем надеяться они не догадаются, в любом случае я обрубил им все порты и по сети они не поиграют, а что это за контра с ботами.
Цитата Сообщение от Deicider Посмотреть сообщение
Хотел вопрос по делу задать: а каким образом программа "скрыта в диспечере задач"? Какой именно кусок кода обеспечивает это? Что-то не могу сообразить.
Это я черновик выложил, скрытие в моей основной версии, хочу всё по уму написать.

Добавлено через 12 минут 23 секунды
Цитата Сообщение от Шерсть-На-Носу Посмотреть сообщение
Да я hl.exe имел в виду, вон Deicider меня правильно понял
Я понял, просто на CZ проверял.
Цитата Сообщение от Шерсть-На-Носу Посмотреть сообщение
Тут надо службу писать, работающую в режиме ядра. И она должна иметь список разрешенных программ, а все остальные рубить.
Добавлено через 21 минуту 46 секунд
Про разработку служб можно вот здесь почитать:
Рихтер, Кларк. "Программирование серверных приложений" (2001)
Ну если можно изменить название приложения, то она не поможет. Было желание сделать удалённую версию, но сервер в основном лежит мёртвым сном, поэтому целесообразность пропала.
Вот если бы выяснить как контра локальный сервер создаёт, тогда можно было бы убить это зло в зародыше. Но после закрытия портов на кафедре уже никто не режется, поэтому тратить время не хочется.

Добавлено через 15 минут 50 секунд
Да по скрытию, есть интересный пример:
http://irazin.ru/Programms/PShelter.htm
0
Deicider
96 / 52 / 1
Регистрация: 18.03.2009
Сообщений: 273
21.05.2009, 15:13 #17
Цитата Сообщение от ZLOI Посмотреть сообщение
Это я черновик выложил, скрытие в моей основной версии, хочу всё по уму написать.
Может раскроешь секрет? :-)
0
Шерсть-На-Носу
45 / 45 / 1
Регистрация: 30.01.2009
Сообщений: 168
21.05.2009, 20:50 #18
Да по скрытию, есть интересный пример:
Скрытие потока с помощью драйвера - старый хакерский трюк. Кстати, Святой Касперский мне сказал, что там сидит троянец злой (это намек дяде модератору).
0
ZLOI
0 / 0 / 0
Регистрация: 17.05.2009
Сообщений: 7
22.05.2009, 05:11  [ТС] #19
Цитата Сообщение от Deicider Посмотреть сообщение
Может раскроешь секрет? :-)
Всмысле?!
Посмотри исходники ссылки, которую я дал.

Добавлено через 7 минут 48 секунд
Цитата Сообщение от Шерсть-На-Носу Посмотреть сообщение
Скрытие потока с помощью драйвера - старый хакерский трюк. Кстати, Святой Касперский мне сказал, что там сидит троянец злой (это намек дяде модератору).
Если Вы имеете ввиду Infostealer, который сидит в самом драйвере, то я же не сказал чего-то ставить или запускать, в исходниках никто сидит. Посмотрел как делают, скопипастил, что надо изменил и радуйся.

В будущем буду осторожнее(это намёк модератору).
0
22.05.2009, 05:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2009, 05:11
Привет! Вот еще темы с ответами:

проверьте кто-нибудь - C++
я давно как-то создавал тему дек через массив.там в конце я написал что вроде прога рабоатет. через несколько дней я запустил её - вроде...

кто нибудь из программистов знает? - C++
Кто нибудь из программистов знает, а то я запарился искать книги (вернее задачи) на классы, указатели,обьекты и т.д. В интернете очень...

ну кто нибудь составит программу???????? - C++
ну кто нибудь составит программу????????ну кто нибудь составит программу????????ну кто нибудь составит программу????????ну кто нибудь...

Кто-нибудь реализовывал класс множество? - C++
Нужно реализовать данный класс, я без понятия каким образом, пока написал только имена функций и сам класс. Там должны быть функции...


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

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

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