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

Форум АНТИЧАТ (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


CrewToy 18.05.2009 19:15

Парни)
возник по ходу создания вопрос следующий)

Мучу поиск по реестру по следующему принципу
есть в рестре директория

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Uninstall\

в не записи обо всех установленных прогах =)
в поддиректориях есть ключ DisplayName где собсна и находится название установленной программы.

База где собсна хранятся имена прог, которые надо найти на компе , стоит на мускуле
Следовательно пользуюсь MySQL коннектором.
Будьте добры подскажите, как в нём формировать запрос таким образом , чтоб он брал значение какого то атрибута из базы и присваивал его какой то переменной.

сразу на примере скажу
база называется TestBase
таблица с именами проги выглядит примерно так -
ID NAME
1 NOD32
и тд по аналогии

я реализовал поиск сам. вовремя обхода он смотрит
If DisplayName == X ( где Х - какая то переменная) , то выдаёт сообщение о том что такая прога найдена

кто юзал MySQL коннектор , подскажите как сформировать запрос пользуясь коннектором и как сделать так, чтоб значение , которое вернёт запрос записывалось в переменную?

Заранее большое спасибо)


п.с. пишу на C# (это к вопросу о рприсвоении значения)

формирование запроса думаю там не зависит от языка ( ? )

CrewToy 24.05.2009 12:19

Последний вопрос отпал) я разобрался уже)
остаалсь маленькая просьба, она требует просто нормальных знаний Си шарп))) не могу никак цикл организовать грамотно) кто может помочь с этим, отпишитесь пожалуйста)

пока что прога работает тока с каким то определённым кортежом из БД )
подскажите как узнать число всех записей в таблице
что то вроде COUNT чтоли)

CrewToy 29.05.2009 23:29

благодарю за тему тех,ребят, кто отозвался =) Я уже сам со всем разобрался, реализовал и сдал =)

тему можно удалять =)


Время: 22:39