Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

VB Basic NET - Контроль доступа

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> VB Basic NET - Контроль доступа
Имя
Сообщение << Старые топики   Новые топики >>
VB Basic NET - Контроль доступа - 2008-08-01 00:01:08.443333   
RenderWare128

Сообщений: 12
Оценки: 0
Присоединился: 2008-02-16 21:47:20.660000
Товарисчи, помогите плиз! Пишу для себя программу класса "розыгрыш", задача проги - скопировать себя в system32. C этим вроде разобрался, в реестре она прописалась. При перезагрузке, она запускается, но выдает ошибку - процесс не может получить доступ к файлу, или пишет что файл не найден. Вообщем вот такие вот дела. Логически я конечно понимаю, что надо сделать типа "если файл уже есть" -> "тогда заново не копировать"…но вот как это реализовать?
&nbsp;
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", _
"EXAMPLE", "C:\WINDOWS\System32\filename.exe")
File.Create("filename.exe")
My.Computer.FileSystem.CopyFile(".\filename.exe", "C:\WINDOWS\System32\filename.exe")
SetAttr("C:\WINDOWS\System32\filename.exe", FileAttribute.Hidden)
 
Post #: 1
RE: VB Basic NET - Контроль доступа - 2008-08-01 00:25:13.723333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Попробовать открыть файл. Если кинет эксепшн - то словить нужный и обработать. У тебя возможно 2 ситуации:
1. Файла нет. Тогда, кажись, вылетает InvalidOperationException.
2. К файлу нет доступа. Тогда SecurityException.
и .т.п.
Post #: 2
RE: VB Basic NET - Контроль доступа - 2008-08-01 00:47:48.146666   
RenderWare128

Сообщений: 12
Оценки: 0
Присоединился: 2008-02-16 21:47:20.660000
прошу прощения, можно поподробнее? Функции я нашел, а как там значения предопределить? Может легче сделать проверку файла? (правда как сделать проверку что файл уже там есть и в этом случае не копировать его? Ведь по идее он пытается сам себя создать и сам себя заново записать туда же…ессесно у него это не выйдет…)
ну или на худой конец как заставить умолкнуть файл о любых ошибках?
Заранее спасибо вам!
Post #: 3
RE: VB Basic NET - Контроль доступа - 2008-08-01 12:42:31.196666   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
try
{
   // копируем файл
}
catch( Exception ) // примитивно, лучше подставить нужный
{
   // файл не скопировался
}

Читай про обработку исключительных ситуаций (try-catch-finally) и про то, какие эксепшены кидают твои функции копирования.
Post #: 4
RE: VB Basic NET - Контроль доступа - 2008-08-01 15:12:43.480000   
RenderWare128

Сообщений: 12
Оценки: 0
Присоединился: 2008-02-16 21:47:20.660000
Вообщем расклад такой…

If Dir("C:\WINDOWS\System32\filename.exe") = "filename.exe" Then

'Тогда запускаем выводимое сообщение, остальной код не выполняем.
End If
 

If Dir("C:\WINDOWS\System32\filename.exe") = "" Then
'Тогда уже запущенный файл должен скопировать себя в указанную директорию

My.Computer.FileSystem.CopyFile("filename.exe", "C:\WINDOWS\System32\filename.exe")

End If
&nbsp;
Первый запуск идёт нормально, если файла в конечной директории нет. Файл успешно копируется. При втором запуске файла пишется сообщение, что файл уже есть. Или что невозможно получить доступ к файлу, так как он уже используется. Тут я вообще в тупике. Я уже не знаю как тут быть…
Кстати, подскажите пожалуйста, какую переменную вставить в первый аргумент чтобы файл копировал сам себя?
Post #: 5
RE: VB Basic NET - Контроль доступа - 2008-08-01 16:13:39.133333   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
Типа того, только на C#. Человек, ты видно не видел, что я тебе писал или поленился попробовать…
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string path = "%windir%\system32\filename.exe"; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; bool result = false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; using ( FileStream fs = new FileStream( path, FileMode.Open ) ) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch ( FileNotFoundException ) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; result = true; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; if ( result ) &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; // копируем &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; } &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; else &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; { &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; // не копируем &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; }
Post #: 6
RE: VB Basic NET - Контроль доступа - 2008-08-02 03:07:34.873333   
mishok

Сообщений: 239
Оценки: 0
Присоединился: 2007-07-03 23:42:21.170000
Imports System.IO

If File.Exists("путь к файлу") Then
'что делаем, если файл есть
Else
'Что делаем, если файла нет
End If
 
 
зы: аналогично повторился :D
Post #: 7
RE: VB Basic NET - Контроль доступа - 2008-08-04 01:18:13.583333   
RenderWare128

Сообщений: 12
Оценки: 0
Присоединился: 2008-02-16 21:47:20.660000
mishok и _SaZ_
Спасибо вам огромное ! Благодаря Вам, у людей появляется стремление до конца разобраться и учить программирование, а не забить болт когда что то не выходит! Спасибо Вам ещё раз.
Скажите, а с реестром такой вариант прокатит?
Значение = 1 - тогда делаем то то, ЕСЛИ такого значения нет, тогда ТО не делаем, а делаем ДРУГОЕ.
И ещё у меня вопрос касательно модулей. Я стандартно вставляю обычный модуль - в нём прописан определенный код. Как подключить модуль к главной форме? И как сделать так, чтобы код в модулях выполнялся только по требованию, либо по вызову из результатов условий ЕСЛИ ?
—-
P.S.: Извините что столько вопросов сразу, просто раскопки MSDN не приносят ответа…либо просто я уже переутомился… 
Post #: 8
RE: VB Basic NET - Контроль доступа - 2008-08-04 07:31:32.930000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
гг. Начни с задач попроще.
Post #: 9
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> VB Basic NET - Контроль доступа







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.