Re: файлы $* в NTFS
От: duke89 Россия  
Дата: 05.02.04 20:42
Оценка:
Здравствуйте, SilverCloud, Вы писали:

SC>По-моему, дело не в функции. Просто доступ к метаданным NTFS из-под администратора был возможен только в версиях NT до Win2K. (На sysinternals была утилитка ntfsinfo, посмотри, если её ещё не убрали.)


NTFSINFO я скачал, метадатафайлы не показывает. Что мне делать, если у меня XP?

SC>Можно попробовать, конечно, под Local System, но это .

SC>В любом случае под простым пользователем работать не будет, и, IMHO, и не должно.

Под простым пользователем это и не должно работать, по смыслу программы.

SC>Если цель — причинение геморроя на доступ к твоим данным, то можно попробовать использовать следующий факт:


SC>В WinAPI имена файлов — это 0-terminated строки, в Native NT API — строки с явно заданной длиной.

SC>Соответственно, файл с именем типа "\0MyCoolFile" должен быть доступен в NT, но недоступен в Win32.
SC>Ещё можно с POSIX-семантикой позаморачиваться.

Так я не понял, как мне размеры boot sector узнать? А вообще, не проще ли прочитать первые сектора, найти первые пустые сектора от начала, которые вроде и будут boot, и записать туда все, что я хочу?

SC>PS: Если я ошибаюсь, уважаемые гуру меня поправят.

SC>PPS: А вообще, нужно ли такое причинение геммороев? Может, сама задача неправильно поставлена? Сдаётся мне, что права доступа штатными средствами надо разруливать, если ты, конечно, не вирус пишешь
Дело в том, что пишу я что-то вроде защиты от пиратства, и моя цель-доставить пиратам побольше геммороя.
Re[8]: Прямая запись на диск
От: Аноним  
Дата: 06.02.04 06:36
Оценка:
Здравствуйте, MShura, Вы писали:

ВН>>Это, конечно, все очень хорошо, но это — грязный хак. Две таких программы уже не будут корректно работать. ИМХО надо искать какие-то другие способы для решения задачи.


Вопрос может быть идиотский, но все таки, а в свапе нельзя создавать объекты, способные пережить выгрузку программы? Другой вопрос, а разве к файлу может быть соэдан только один поток?
Re[2]: файлы $* в NTFS
От: MShura  
Дата: 06.02.04 10:24
Оценка:
D>Так я не понял, как мне размеры boot sector узнать? А вообще, не проще ли прочитать первые сектора, найти первые пустые сектора от начала, которые вроде и будут boot, и записать туда все, что я хочу?

Я не встречал, ситуаций когда размер данных $Boot меньше 8К, т.е. это 16 секторов.
Размер самого заргузчика обычно 6-8 секторов.

Вижу два пути получения настоящего размер $Boot под Win2K+:
Получить handle на файл (как это делает Руссинович при получении handle на pagefile.sys)
Имея этот handle можно узнать многое.
К сожалению способ получения я видел и понял из IDA только в общих чертах и если понадобится, то повторю, но это приличные затраты времени.

Второй путь — научиться самому находить эту информацию.
Это несложно.
http://linux-ntfs.sourceforge.net/ntfs/index.html
Т.е. тебе надо.
— Прочитать первые 512 байт (boot sector)
— Проверить некоторые поля (это NTFS??)
— Взять начало $MFT (в кластерах) из boot sector
— Умножить на размер кластера, прибавить 14 секторов. Это 7 запись (при условии, что размер записи 1024 байт)
— Прочитать 1024 байт (одну запись)
— Найти в этой записи аттрибут данных
— Воспользоваться значением allocated (в данном случае все размеры в этом аттрибуте будут совпадать)

Удачи.
Re[3]: файлы $* в NTFS
От: MShura  
Дата: 06.02.04 10:27
Оценка:
Если будут совсем сложные проблемы, то оставляй e-mail.
Помогу.
Re[9]: Прямая запись на диск
От: Valerio Россия linkedin.com/in/boronin
Дата: 06.02.04 10:49
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Здравствуйте, MShura, Вы писали:


ВН>>>Это, конечно, все очень хорошо, но это — грязный хак. Две таких программы уже не будут корректно работать. ИМХО надо искать какие-то другие способы для решения задачи.


А>Вопрос может быть идиотский, но все таки, а в свапе нельзя создавать объекты, способные пережить выгрузку программы? Другой вопрос, а разве к файлу может быть соэдан только один поток?

1) в свопе — нельзя
2) потоков — 1 неименованный и сколько угодно именованных
... << RSDN@Home 1.1.3 beta 1 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Оффтоп: защита от копирования
От: SilverCloud Россия http://rodonist.wordpress.com
Дата: 10.02.04 17:11
Оценка: +1
Похоже, что эту ветку в другой форум пора

D>Дело в том, что пишу я что-то вроде защиты от пиратства, и моя цель-доставить пиратам побольше геммороя.


Гы. А легальным пользователям зачем геморрой добавлять? Вадим Никулин абсолютно правильно сказал
Автор: Вадим Никулин
Дата: 04.02.04
. От себя добавлю, что программу, которая делает такие вещи, ставить просто опасно, и любой антивирус тебе это подтвердит Кстати, что это за программа такая, что ей как минимум администратор нужен? Средство администрирования? Если нет, то в сад такую программу! Защиту от несанкционированного копирования надо делать другими средствами. Легальными с точки зрения ОС. На Королевстве Дельфи была серия статей на эту тему.


P.S.: Знаю случай, когда легально купленную программу пришлось ломать (именно ломать, а не копировать), просто чтобы заставить работать на предназначенной ей машине Копировалась, кстати, она один к одному за ~5 минут. В защите тоже raw доступ к диску использовался
О чём поёт ночная птица?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.