Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помощь в программе

Ответить
Настройки темы
C/C++ - Помощь в программе

Аватара для O L E G

Старожил


Сообщения: 284
Благодарности: 16


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: O L E G
Дата: 24-05-2012
Нужен совет человека, который раpбирается хорошо в C++ или просто уже разбирается.
1.Хочу начать делать программу, которая будет защитать мною указанные файлы от изменения и удаления, будет только чтение на них
2.Программа не имеет интерфейса и всегда сидит скрыто в процессах, придумать защиту от выгрузки программы
3.Такая же защита на реестр, только чтение ветвей мною указанных
4.Ну и придумать сервис который будет саму программу запускать или просто в автозагрузку добавить
5.Думал над тем,может сделать не большой интерфейс, который будет в треи, Вкл и Откл защиты.

С чего можете посоветовать начать мне и сложно ли будет сделать такой проект?!
Все программы есть Visual 2010 Ultimat! Начал не давно, только учиться писать, читаю ((Хортон_Visual C++_2010)), достаточно ли мне будет этого или где то еще надо будет искать помощи людей или посоветуйте книги какие ни будь еще?
Спасибо за уделенное время)

Отправлено: 10:32, 24-05-2012

 

Старожил


Сообщения: 169
Благодарности: 27

Профиль | Сайт | Отправить PM | Цитировать


Самый простой путь без написания драйверов и перехвата API Windows - в памяти висят сразу 2 процесса и каждый проверяет наличие своего дублера. Если дублер убит сразу же запускается копия. Убить одновременно 2 процесса не просто, и пока будет убиваться один, стартует дубль.
Так же можно опрашивать значение файлов - ветвей реестра и при их изменении, менять значение назад.

-------
Microsoft Visual C++ | Realtek Ethernet Drivers | .NET Framework 4.0


Отправлено: 22:53, 24-05-2012 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


Цитата softter:
Так же можно опрашивать значение файлов - ветвей реестра и при их изменении, менять значение назад. »
проще ставить им владельца system, а остальным разрешение только чтение

Отправлено: 22:59, 24-05-2012 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата softter:
Убить одновременно 2 процесса не просто »
Элементарно. Нужно «заморозить» исполнение одного процесса, снять второй, затем снять первый.

P.S. Такую технологию (несколько следящих друг за другом процессов/служб) используют некоторые виды вирусов.

Отправлено: 07:46, 25-05-2012 | #4


Аватара для O L E G

Старожил


Сообщения: 284
Благодарности: 16

Профиль | Отправить PM | Цитировать


Цитата ferget:
проще ставить им владельца system, а остальным разрешение только чтение »
Устанавливал Владеьца System на ветвь Winlogon, а остальным чтение! ну конечно,кроме самой System полный доступ,так после этого система не запускается, не на всех ветвях это работает

Что то вроде такого на Vbs
Код: Выделить весь код
wsh.Run("""subinacl"" /keyreg ""HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"" /grant=%username%=r /grant=system=f /setowner=system"), 0 ,True
Видел не которые Программы, устанавливают защиту на ветви и дают им доступ Только чтение, после выгрузки программы их можно изменить.
Вот что мне интересно!

На файлах я делал так: Iska, спасибо за разъеснение! опять же на vbs, хотелось бы это реализовать на C++ и такие же действия с реестром
Код: Выделить весь код
Option Explicit

Const ReadOnly = &H01
Const ForReading = 1, ForWriting = 2, ForAppending = 8

Dim strFile
Dim fso, a, b, c, d, e, f, w

With wscript.CreateObject("Scripting.FileSystemObject")
Set fso = CreateObject("Scripting.FileSystemObject")
	For Each strFile In Array("c:\boot.ini", "c:\ntldr", "c:\windows\explorer.exe", "c:\windows\system32\userinit.exe", "c:\windows\system32\drivers\etc\hosts", "c:\NTDETECT.COM", "c:\WINDOWS\win.ini")
		If .FileExists(strFile) Then
			With .GetFile(strFile)
				.Attributes = .Attributes And Not ReadOnly
			End With
		End If
	Next
End With

   Set a = fso.OpenTextFile("C:\windows\system32\drivers\etc\hosts", ForAppending, True)
   Set b = fso.OpenTextFile("C:\ntldr", ForAppending, True)
   Set c = fso.OpenTextFile("C:\boot.ini", ForAppending, True)
   Set d = fso.OpenTextFile("C:\windows\explorer.exe", ForReading, True)
   Set e = fso.OpenTextFile("C:\Windows\system32\userinit.exe", ForAppending, True)
   Set f = fso.OpenTextFile("c:\NTDETECT.COM", ForAppending, True)
   Set w = fso.OpenTextFile("c:\windows\win.ini", ForAppending, True)

Do
With wscript.CreateObject("Scripting.FileSystemObject")
For Each strFile In Array("C:\boot.ini", "c:\ntldr", "c:\windows\explorer.exe", "c:\windows\system32\userinit.exe", "c:\windows\system32\drivers\etc\hosts", "c:\NTDETECT.COM", "c:\WINDOWS\win.ini")
		If .FileExists(strFile) Then
			With .GetFile(strFile)
				.Attributes = .Attributes Or ReadOnly
			End With
		End If
	Next
End With

			wscript.Sleep 1
		Loop

-------
Сложность программы растет до тех пор, пока не превысит способности программиста.


Последний раз редактировалось O L E G, 25-05-2012 в 09:24.


Отправлено: 09:11, 25-05-2012 | #5


Старожил


Сообщения: 169
Благодарности: 27

Профиль | Сайт | Отправить PM | Цитировать


Цитата Iska:
Цитата softter:
Убить одновременно 2 процесса не просто »
Элементарно. Нужно «заморозить» исполнение одного процесса, снять второй, затем снять первый.
P.S. Такую технологию (несколько следящих друг за другом процессов/служб) используют некоторые виды вирусов. »
Интересно каким образом домохозяйка или бухгалтер в офисе это сделает, если запись в файле Hosts (127.0.0.1 vk.com) для них сродни катастрофе.
Системщик же покопавшись снимет любые ограничения.

Цитата:
P.S. Такую технологию (несколько следящих друг за другом процессов/служб) используют некоторые виды вирусов.
Вы правы, имел дело с Авторан вирусом, который таким образом зашищал свой процесс.

Отправлено: 13:53, 25-05-2012 | #6


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата softter:
Интересно каким образом домохозяйка или бухгалтер в офисе это сделает, если запись в файле Hosts (127.0.0.1 vk.com) для них сродни катастрофе.»
Я обычно пользовался Process Explorer'ом; в нём есть подобный функционал.

Цитата softter:
имел дело с Авторан вирусом, который таким образом зашищал свой процесс. »
Аналогично, коллега. Была служба и два процесса.

Отправлено: 16:04, 25-05-2012 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Помощь в программе

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - [решено] Запуск CMD в программе mp091@vk Программирование и базы данных 15 09-04-2012 22:02
VBS/WSH/JS - Скрипт к программе SMAC XXXp Скриптовые языки администрирования Windows 2 11-02-2011 21:19
Разное - Нужна помощь по программе для общения с компом (написать бота) 16087ZHEKA Программирование и базы данных 6 01-07-2010 17:46
Установка - Графика в DOS программе Pnfl Microsoft Windows 2000/XP 0 25-11-2007 20:33
Инофо о программе при запуске Galosh Программирование и базы данных 5 27-05-2003 09:32




 
Переход