Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CD защита от дурака, без учитывая, что можно снять образ 
V
    Опции темы
Platon
Дата 20.3.2008, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Здравствуйте, уважаемые.

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

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

Какие есть более сложные, но реализуемые с помощью Java, методы?
PM MAIL ICQ   Вверх
LSD
Дата 20.3.2008, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



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

fsutil fsinfo volumeinfo <CD>:

Только средствами Java его не получить, надо использовать или JNI или Runtime.exec().


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Platon
Дата 20.3.2008, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Так-так, видимо придется JNI, раз
Код

 fsutil fsinfo volumeinfo <CD>: 

Выдает текстом всю информацию.
PM MAIL ICQ   Вверх
Platon
Дата 21.3.2008, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



Задача благополучно решилась!!!

Код

import com.sun.jna.win32.StdCallLibrary;
import com.sun.jna.Native;
import com.sun.jna.ptr.IntByReference;

public interface Kernel32 extends StdCallLibrary {
    Kernel32 INSTANCE = (Kernel32)Native.loadLibrary("kernel32", Kernel32.class);
    public void GetVolumeInformationA(String disk, byte[] discName, int discNameSize, IntByReference vsNumber , IntByReference mcLength, IntByReference fileSF, byte[] sysNameBuffer, int sysNameBufferSize);
    public int GetDriveTypeA(String disk);
}

class T {
    public static void main(String[] args) {
        Kernel32 lib = Kernel32.INSTANCE;
        byte[] name = new byte[255];
        IntByReference vsNumber = new IntByReference();
        IntByReference mcLenght  = new IntByReference();
        IntByReference fileSF = new IntByReference();
        byte[] data = new byte[255];
        lib.GetVolumeInformationA("d:\\", name, name.length, vsNumber, mcLenght, fileSF, data, data.length);
        System.out.println(vsNumber.getValue());

        System.out.println(lib.GetDriveTypeA("d:\\"));
    }
}


Использую JNA, очень удобно и решает проблему неохоты лезть в JNI

Это сообщение отредактировал(а) Platon - 21.3.2008, 15:31
PM MAIL ICQ   Вверх
Platon
Дата 27.3.2008, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: 16
Всего: 40



LSD, прошу прощения, что вопрос не по Java... эта универсальная метка каждый раз меняется...
Пустой диск не обладает этой меткой, приходится сначала записать какие-то данные, затем во второй сессии добавить ключ-файл сгенерированный по текущей метке, но когда дополняешь диск этим файлом, то метка тома меняется... Как правильно сделать? Использую Nero StartSmart...
PM MAIL ICQ   Вверх
LSD
Дата 27.3.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Попробуй создать образ с помощью UltraISO, там вроде можно задать ID тома. А уже потом этот образ записывать Nero.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
v2v
Дата 27.3.2008, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



Цитата(LSD @  27.3.2008,  14:13 Найти цитируемый пост)
Попробуй создать образ с помощью UltraISO, там вроде можно задать ID тома. А уже потом этот образ записывать Nero. 

тогда в чём будет состоять защита? ведь можно будет и на другой диск скопировать такой образ.


--------------------
PM   Вверх
LSD
Дата 27.3.2008, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(v2v @  27.3.2008,  17:42 Найти цитируемый пост)
тогда в чём будет состоять защита? ведь можно будет и на другой диск скопировать такой образ.

Цитата(Platon @  20.3.2008,  13:43 Найти цитируемый пост)
Можно сказать, на несложном уровне, расчитаном на простых пользователей.

Никаких StarForce тут не нужно.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
v2v
Дата 27.3.2008, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



тоесть создать с диска образ и записать другой диск из созданного образа - это уже мега продвинутый пользователь?

Это сообщение отредактировал(а) v2v - 27.3.2008, 18:18


--------------------
PM   Вверх
LSD
Дата 27.3.2008, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(v2v @  27.3.2008,  18:17 Найти цитируемый пост)
тоесть создать с диска образ и записать другой диск из созданного образа - это уже мега продвинутый пользователь?

1. Ну как минимум для этого нужен сторонний софт. Стандартные функции записи XP, Vista такого не позволяют.
2. Какая разница, если автора это устраивает.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
v2v
Дата 27.3.2008, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



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


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

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

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


 




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


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

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