Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование алтернативных потоков данных, система NTFS 
V
    Опции темы
mihanik
Дата 10.10.2006, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



Привет!

Сразу предупреждаю, что это не вопрос!
Просто хочу поделиться тем, чем немного научился пользоваться...

Сейчас практически везде используюется система Windows XP в различных своих версиях.
Довольно часто на компьютерах с этой системой используется файловая система NTFS, которая позволяет использовать у файла альтернативные потоки данных.
Такие потоки можно размещать абсолютно в любом файле и даже, говорят, каталоге.
(С каталогами правда я не эксперементировал, но поверю на слово.)

Итак!
Я решил попробовать "прятать" информацию от чужих глаз в этих самых потоках.
И у меня получилось!!!

Формат имени альтернативных потоков имеет следующий вид:

имя_файла:имя_потока:атрибут

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

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

Чтобы повторить мой эксперимент вы можете создать проект с единственной формой.
Разместите на нём две кнопки btnSaveMyFile и btnOpenMyFile при помощи которых мы будем записывать и считывать данные.
А также два текстовых поля:
Text1 - для написания "записок", которые будем прятать 
(у этого элемента я поставил свойство MultiLine = True )
Text2 - для указания имени альтернативного потока данных в файле.

Я также "бросил" на форму CommonDialog1 для удобного выбора подопытных файлов.

Ниже текст программы...

Код

Private Sub btnOpenMyFile_Click()
Dim strFileName As String
Dim lngFilesDescriptor As Long
Dim strString As String

    CommonDialog1.ShowOpen
    strFileName = CommonDialog1.Name
    
    strFileName = strFileName + ":" + Text2.Text
    
    lngFD = FreeFile()
    
    Open strFileName For Input As lngFD
    
    Text1.Text = ""

    While Not EOF(lngFD)
    
        Line Input #lngFD, strString
        Text1.Text = Text1.Text + strString + vbCrLf
    Wend
    
    Close lngFD

End Sub

Private Sub btnSaveMyFile_Click()
Dim strFileName As String
Dim lngFD As Long

    CommonDialog1.ShowSave
    strFileName = CommonDialog1.Name
    
    strFileName = strFileName + ":" + Text2.Text
    
    lngFD = FreeFile()
    
    Open strFileName For Output As lngFD
    
    Print #lngFD, Text1.Text
    
    Close lngFD
    
End Sub


Для экспериментов я выбрал первый попавшийся текстовый файл.
мои действия.

1. Открыл этот файл в блокноте, посмотрел на его содержание.
2. При помощи моей проги записал в этот файл свою записочку. (указал в качестве имени дополнительного потока "111")
3. Открыл текстовый файл. ИЗМЕНЕНИЙ В ФАЙЛЕ НЕ ОБНАРУЖИЛОСЬ!!!
4. При помощи своей проги прочитал данные из потока. Данные считались!!!

Мне данный способ использования особенностей файловой системы NTFS очень понравился.
Почему?
Сейчас пишу прогу для заказчика и не уверен в получении с него денюжек...
При помощи этого приёма я смогу сделать свою прогу триальной на пару дней, а затем заставить её не запускаться...
(я точно знаю, что у моего заказчика система XP с файловой системой NTFS).

Сейчас учусь находить список всех альтернативных файловых потоков у конкретного файла.
Мало ли что туда могут записать другие...  smile

Добавлено @ 13:44 
Замечание!!!

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

Ниже прикреплю архив с моим эксперементальных проектом...  smile 

Это сообщение отредактировал(а) mihanik - 10.10.2006, 13:44

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  ads.rar 1,77 Kb


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Тутанхамец
Дата 11.10.2006, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

Репутация: 4
Всего: 6



Спасибо. Это может быть полезным. smile Даже показываемый в Проводнике размер файлов при дописывании альтернативного потока не меняется. 

P.S. Хотя вообще-то придумка неоднозначная. Я бы предпочел, чтобы чужие проги не могли так прятать данные на моем компе. Ладно еще, если шароварщики свои интересы отстаивают... 

P.P.S. А вообще, по большому счету, зачем это надо? 
PM MAIL   Вверх
mihanik
Дата 12.10.2006, 06:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 11
Всего: 109



Цитата(Тутанхамец @  11.10.2006,  18:38 Найти цитируемый пост)
А вообще, по большому счету, зачем это надо?  


Касаперский, например, в альтернативных потоках  прячет какой-то свой признак проверки файла. (чтобы избежать повторной проверки и уменьшить время проверки всего компа)

Система что-то туда ишет...

Оказывается про эти потоки идёт разговор в сети уже давно.

Попробуй использовать поисковик, как я.  smile 
Столько ссылок вывалится!!!  smile 


--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0476 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.