Нужно написать Аналог Microsoft Security Centre

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by CrewToy, 6 May 2009.

  1. CrewToy

    CrewToy New Member

    Joined:
    10 Oct 2007
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    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#
    п.с. может быть кто сможет посоветовать, где я могу найти отдельные части ( например реализацию поиска по реестру, скачку через инет с базы данных и тд )
     
    #1 CrewToy, 6 May 2009
    Last edited: 6 May 2009
  2. CybFreak

    CybFreak New Member

    Joined:
    14 Feb 2009
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Если говорить о языках то советую брать С# на нем быстрее можно написать то что нужно и у него есть хорошая система классов. Если бы было побольше времени можно было бы оформить как опенсорсный проект, тема интересная и нужная поэтому желающих помочь было бы достаточно. Жаль что я не прикасался к С# уже давно поэтому могу помочь только советами.
     
  3. CrewToy

    CrewToy New Member

    Joined:
    10 Oct 2007
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    да я тоже остановился на C#
    пишу под дотнет)
     
  4. ivanko.rus

    ivanko.rus New Member

    Joined:
    5 May 2009
    Messages:
    8
    Likes Received:
    3
    Reputations:
    3
    А языки можно использовать только C++ и C#? Или всё же возможно использование других?
     
  5. CrewToy

    CrewToy New Member

    Joined:
    10 Oct 2007
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    я честно говоря больше по базам как-то ) поэтому если честно вопрос не очень понимаю)

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

    m13/40 New Member

    Joined:
    10 Feb 2009
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Для поиска в реестре есть класс в .Net
    Microsoft.Win32.Registry (http://msdn.microsoft.com/en-us/library/microsoft.win32.registry.aspx )
    Для подключения клиента к серверу по tcp сокеты: http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.aspx
    Для подключения к бд тебе нужно использовать ADO.NET (если ты писал сервер с бд, то скорее всего уже использовал ADO.NET)
    А вообще тебе нужно перед тем как начинать писать определиться с архитектурой приложений (разделить какие именно методы должны работать на сервере а какие на клиенте, построить объектную модель приложений (системы в целом))
    Далее определить и описать протокол взаимодействия клиента с сервером (определить комманды используемые, ответы на эти комманды, действие по истечению таймаута и прочее), решить как вообще будет происходить взаимодействие - через сокеты, COM+, служба сообщений или прочее.
    Если нужна помощь в написании пиши в ЛС, обсудим. Могу кинуть хорошие книжки по дот нет.
     
  7. CrewToy

    CrewToy New Member

    Joined:
    10 Oct 2007
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    гранд мерси
    сейчас разберусь) если будут вопросы,обращусь по ходу! )
     
  8. ivanko.rus

    ivanko.rus New Member

    Joined:
    5 May 2009
    Messages:
    8
    Likes Received:
    3
    Reputations:
    3
    Кстати, вспомнил что WMI имеет возможность выводить список установленных программ! Может тогда и не надо будет в реестре рыться. Я небольшую прогу на Питоне накатал, которая по сети отправляет кой-какую инфу о системе. Если интересно, могу выложить.
     
  9. m13/40

    m13/40 New Member

    Joined:
    10 Feb 2009
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Кстати, можно использовать скрипты на MS PowerShell . Полная поддержка классов .Net, лёгкий доступ к WMI, готовые скрипты на многое ))
     
  10. ivanko.rus

    ivanko.rus New Member

    Joined:
    5 May 2009
    Messages:
    8
    Likes Received:
    3
    Reputations:
    3
    Да в любом случае - к WMI можно доступ иметь почти со всего что хочешь =) Включая C/C++/C# . Так что дерзай! Для примера: вот код получения информации о юзерах из WMI на Питоне:
    Code:
    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
     
  11. CrewToy

    CrewToy New Member

    Joined:
    10 Oct 2007
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Парни)
    возник по ходу создания вопрос следующий)

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

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\

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

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

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

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

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

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


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

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

    CrewToy New Member

    Joined:
    10 Oct 2007
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Последний вопрос отпал) я разобрался уже)
    остаалсь маленькая просьба, она требует просто нормальных знаний Си шарп))) не могу никак цикл организовать грамотно) кто может помочь с этим, отпишитесь пожалуйста)

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

    CrewToy New Member

    Joined:
    10 Oct 2007
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    благодарю за тему тех,ребят, кто отозвался =) Я уже сам со всем разобрался, реализовал и сдал =)

    тему можно удалять =)
     
Loading...
Similar Threads - написать Аналог Microsoft
  1. Peja
    Replies:
    0
    Views:
    2,873