Russian Qt Forum

Qt => Вопросы новичков => Тема начата: CJ1 от Июль 11, 2012, 15:56



Название: Как из ресурсов записать файл на диск?
Отправлено: CJ1 от Июль 11, 2012, 15:56
Как из ресурсов записать файл на диск?


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: Пантер от Июль 11, 2012, 15:59
QFile::copy


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: CJ1 от Июль 11, 2012, 16:01
спасибо! Не знал что и с ресурсами проканает


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: CJ1 от Июль 11, 2012, 17:37
А есть способ в ресурсах хранить число


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: Bepec от Июль 11, 2012, 18:27
До. берёшь создаёшь файл и пихаешь туда число :D
Для более искушённых - реестр и ини файлы.


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: CJ1 от Июль 12, 2012, 06:24
Вариант с файлом подходит больше


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: Пантер от Июль 12, 2012, 09:14
До. берёшь создаёшь файл и пихаешь туда число :D
Для более искушённых - реестр и ини файлы.
Можно еще на картинке нарисовать число и запихнуть её в ресурсы. Куча способов.


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: CJ1 от Июль 12, 2012, 11:01
А можно сделать так, делаю приложения с файлом в ресурсах в файле число, после этого делаю другое приложения которая вытаскивает из хтого экзэшника этот файл, изменяет число и сохраняет его обратно.

Или в библиотеки qt нет такой возможности, и надо на win API сделать?


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: Пантер от Июль 12, 2012, 11:05
Изменять данные в ресурсах - это хак и можно просто сломать приложение. Что тебе вообще нужно?


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: CJ1 от Июль 12, 2012, 11:45
Сделаю так, есть прога, у нее в ресурсах куча файлов, она их вытаскивает куданибудь на диск в скрытую папку, запускает другой исполняемый файл, ждет его завершения, и удаляет все файлы.



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

Но эту прогу мне нужно копировать на 5000 cd И всем нужно записать разный серийник


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: CJ1 от Июль 12, 2012, 11:47
Или тупо возьму короче напишу кряк, чтобы открыл прогу, и записал по адресу где будет хранится этот серийник новый серийник...


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: Igors от Июль 12, 2012, 12:56
Для более искушённых - реестр и ини файлы.
Может для менее. Для больших данных реестр/ини  не очень-то подходят.

Или тупо возьму короче напишу кряк, чтобы открыл прогу, и записал по адресу где будет хранится этот серийник новый серийник...
В принципе правильно, Qt ресурсы модификации не подлежат, а с нативными нужно возиться. Два момента

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

01 02  03 04 05 <serial> 05 04 03 02 01

Полезно также записать не только сериал, а и доп данные, напр дату, имя пользователя

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



Название: Re: Как из ресурсов записать файл на диск?
Отправлено: CJ1 от Июль 12, 2012, 13:17
Цитировать
1) вместо мучительного вычисления адреса (который может измениться при каждом новом билде) лучше поставить меточку который пишущий найдет, напр в исходных ресурсах строка

01 02  03 04 05 <serial> 05 04 03 02 01

Билд будет один раз, но за идею спасибо, так и сделаю.
И тут не будет никаких пользователей, это всеголишь мультик, на action script, мне просто нужно сделать защиту.


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: Igors от Июль 12, 2012, 13:22
Билд будет один раз,
Хмм... жизнь покажет  :)


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: CJ1 от Июль 12, 2012, 13:24
ааа, точно! Может придется и переделывать.. тут я не подумал!  :)


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: kostya2vntu от Июль 12, 2012, 14:17
Всё намного проще.

1) Получаем серийник диска, добавляем соль и получаем хеш, записываем это всё отдельным файлом прямо на диске (всеравно болванка ro)
2) Для проверки при запуске проги: получаем серийник диска, добавляем соль и получаем хеш, сравниваем с тем что в файле на диске.

Даже если кто-то научится перезаписывать файл на диске, нужно будет еще угадать как он генерируется - уже надо поиграться. Так что как простейшая защита сойдет.


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: Bepec от Июль 12, 2012, 14:41
Просто, логично и почти непробиваемо для юзверя.

Виват Константину!


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: CJ1 от Июль 12, 2012, 16:47
Блин! Точно! А я тупил!  :) :) :)


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: CJ1 от Июль 13, 2012, 07:25
Ой, блин! Какой файл на диск, мне же нужно чтоб на другие диски не кто не копировал! Не запутывайте меня!


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: Bepec от Июль 13, 2012, 07:32
Ты реально думаешь придумать систему защиты лучше старфорса? :D

PS есть возможность полного клонирования диска - в чём цимус тогда твоей задумки?


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: CJ1 от Июль 13, 2012, 08:18
Может быть, но не в этом случае, просто это заказ понимаете, я так договорился, мне нужно чтоб недалекий в цифровых делах человек не скопировал все себе и на другой диск, и все.


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: CJ1 от Июль 13, 2012, 08:23
Просто другой программист им уже делал эту защиту, там вообще смешная была...


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: Bepec от Июль 13, 2012, 11:54
Ну блин, сделай скрытый файл с хешем/паролем.

Обычный не взломает. Если клонированием будет пилить - то любая твоя защита сойдёт на нет.


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: Alex Custov от Июль 13, 2012, 12:06
Может быть, но не в этом случае, просто это заказ понимаете, я так договорился, мне нужно чтоб недалекий в цифровых делах человек не скопировал все себе и на другой диск, и все.

Даже недалекий в цифровых делах человек догадается склонировать диск в нерке или imgburn.


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: CJ1 от Июль 13, 2012, 13:24
Я знаю! Но те кому я делаю не знают!


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: Igors от Июль 13, 2012, 13:37
Ну блин, сделай скрытый файл с хешем/паролем.
Все равно получается лучше сделать небольшую утилитку авторизации. А тогда смысл светиться с отдельным файлом? Загнать в исполняемый файл - и все дела   

Обычный не взломает. Если клонированием будет пилить - то любая твоя защита сойдёт на нет.
То да


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: Bepec от Июль 13, 2012, 13:45
Отдельный файл проще генерить и записывать на диск.
Хотя конечно да, в любом случае перекомпилить надо будет.

В общем задача "как сделать чтобы сделать".


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: CJ1 от Июль 13, 2012, 13:46
Блин... А как можно хорошую защиту поставить?


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: kostya2vntu от Июль 13, 2012, 15:22
http://rfcmd.ru/book_08/h11_2

От себя добавлю:
1) привязка к CD - ненадежный путь. Лучше уж сделай привязку к mac-адресу сетевой платы (хотя это повлечет дополнительные затраты)
2) CD-диски (да и DVD) - это уже прошлое. Они уже давно и стабильно умирают. Флешки, интернет успешно их убили.
3) Кроме того, диск - штука очень ненадежная, при активной эксплуатации сдохнет через пол года из-за царапин.
4) Спроси заказчика, действительно нужна ли ему защита от копирования.


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: Bepec от Июль 13, 2012, 15:36
Насколько я помню, защиту от копирования с диска уже сломали всю, какую можно :D

То же самое клонирование тупо переносит с одного диска на другой. Это то и печально. И никакие способы защиты уже вроде как и недействительны.

PS просто starforce уже прошла путь от начала защиты дисков аля "хеш на диске" и заканчивая всеми способами защиты. Но старфорс умер, да здравствует клоне сиди.


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: Igors от Июль 13, 2012, 15:45
Блин... А как можно хорошую защиту поставить?
Ну надо решить "к чему привязываться". Как я понимаю, специальный hardware ключ не обсуждается. Тогда простая и хорошая привязка - к имени/логину пользователя.

Другая, на первый взгляд неказистая, возможность - пулять по udp пакетики с (условным) ID программы. Таким образом если 2 или более запущенных копий в сети (с тем же ID) - они все выходят. А сеть практически везде есть


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: Пантер от Июль 13, 2012, 15:47
А можно еще рандомно не запускаться или крашиться. Как защита, фигня, но зато весело. :)


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: alexis031182 от Июль 13, 2012, 15:48
А можно еще рандомно не запускаться или крашиться. Как защита, фигня, но зато весело. :)
И человечка выводить, который говорит: "Йо-хо-хо, Вы не сказали волшебного слова"


Название: Re: Как из ресурсов записать файл на диск?
Отправлено: Igors от Июль 13, 2012, 16:10
А можно еще рандомно не запускаться или крашиться. Как защита, фигня, но зато весело. :)
Ну кому-то может нравится юмор бурсы - раньше называлась ПТУ а сейчас не знаю как  :)
Впрочем это уже не сама защита а "санкции"