Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Нужно написать Аналог Microsoft Security Centre (https://forum.antichat.xyz/showthread.php?t=119350)

CrewToy 06.05.2009 14:22

Help! Требуется написать Аналог Microsoft Security Centre
 
Всем доброго всемени суток
Накануне диплома появилась проблема с созданием программы.
Вообще программа должна оценивать уровень безопасности на компе. Чем-то подобным является интегрированый в Windows Центр Безопасности , выводящий инфу о защищённости компьютера и показываюшего актуальность баз обновления.

необходимо реализовать следующие шаги

программа-клиент
1)ставится на комп
2)запускается
3)соединяется к серверу ( который я почти написал уже), на котором хранится инфа о существующем в его базе защитном ПО и его рейтинге
4)качает с сервера необходимые данные для проверки машины ( название + тип ПО ( антивирь,файрвол и тд) + путь в реестре + путь в реестре + на инфу о версии обновления )

на примере NOD Smart Security это что то вроде

"NOD32 Smart Security"
"Antivirus"
HKEY_LOCAL_MACHINE\SOFTWARE\Eset\ESET Security\
HKEY_LOCAL_MACHINE\SOFTWARE\Eset\ESET Security\CurrentVersion\Info (тут находится ключ Scanner Version со значением "4055 (20090506)" )


5) Из скачаного списка идёт проверка на наличие этого ПО на машине ( поиск по реестру )
6) отправляет полученный список найденого ПО и версии его обновлений на сервер

сервер принимает данные, сверяет какое на машине стоит ПО и как оно обновлено и сверяет со своей базой ( это уже частично написано )


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

Программы-аналоги в сети есть, исходников их я не смог найти ( оно и понятно )


чем-то наподобие является программа Belarc Advisor .

ХЕЛП!

Языки - С++ либо C#
п.с. может быть кто сможет посоветовать, где я могу найти отдельные части ( например реализацию поиска по реестру, скачку через инет с базы данных и тд )

CybFreak 06.05.2009 17:03

Если говорить о языках то советую брать С# на нем быстрее можно написать то что нужно и у него есть хорошая система классов. Если бы было побольше времени можно было бы оформить как опенсорсный проект, тема интересная и нужная поэтому желающих помочь было бы достаточно. Жаль что я не прикасался к С# уже давно поэтому могу помочь только советами.

CrewToy 06.05.2009 18:00

да я тоже остановился на C#
пишу под дотнет)

ivanko.rus 06.05.2009 21:19

А языки можно использовать только C++ и C#? Или всё же возможно использование других?

CrewToy 06.05.2009 21:51

я честно говоря больше по базам как-то ) поэтому если честно вопрос не очень понимаю)

пишу под дотнет ) если там можно на нескольких языках разные части реализовывать - тогда не принципиально)

m13/40 07.05.2009 08:40

Для поиска в реестре есть класс в .Net
Microsoft.Win32.Registry (http://msdn.microsoft.com/en-us/libr....registry.aspx )
Для подключения клиента к серверу по tcp сокеты: http://msdn.microsoft.com/en-us/libr...ts.socket.aspx
Для подключения к бд тебе нужно использовать ADO.NET (если ты писал сервер с бд, то скорее всего уже использовал ADO.NET)
А вообще тебе нужно перед тем как начинать писать определиться с архитектурой приложений (разделить какие именно методы должны работать на сервере а какие на клиенте, построить объектную модель приложений (системы в целом))
Далее определить и описать протокол взаимодействия клиента с сервером (определить комманды используемые, ответы на эти комманды, действие по истечению таймаута и прочее), решить как вообще будет происходить взаимодействие - через сокеты, COM+, служба сообщений или прочее.
Если нужна помощь в написании пиши в ЛС, обсудим. Могу кинуть хорошие книжки по дот нет.

CrewToy 07.05.2009 12:36

гранд мерси
сейчас разберусь) если будут вопросы,обращусь по ходу! )

ivanko.rus 08.05.2009 08:34

Кстати, вспомнил что WMI имеет возможность выводить список установленных программ! Может тогда и не надо будет в реестре рыться. Я небольшую прогу на Питоне накатал, которая по сети отправляет кой-какую инфу о системе. Если интересно, могу выложить.

m13/40 08.05.2009 08:54

Кстати, можно использовать скрипты на MS PowerShell . Полная поддержка классов .Net, лёгкий доступ к WMI, готовые скрипты на многое ))

ivanko.rus 08.05.2009 10:05

Да в любом случае - к WMI можно доступ иметь почти со всего что хочешь =) Включая C/C++/C# . Так что дерзай! Для примера: вот код получения информации о юзерах из WMI на Питоне:
Код:

def GetUsers(SID=1, Status=1):

        a = ''

        for c in wmi.Win32_Account():

                m = a + c.Caption + ' '

                a = m

                if SID:

                        m = a + 'with ' + 'SID: ' + c.SID + '\n'

                        a = m

                if Status:

                        m = a + c.Status

                        a = m

                m = a + "\n\n"

        a = '<USERS>' + m + '</USERS>'

        return a



Время: 09:15