посоветуйте способ реализации
неужели ни кто не может предложить каким образом можно запихнуть данные в программу не используя общеизвестных файлов?
в дельфи например можно было в исполняемый файл внедрить бинарный поток а-ля TRecourseStream и читать из него объекты в рантайме. никто не мешает навернуть поверх еще один поток, который будет, например ксорить данные или еще как прикрывать от "пристального взгляда"
P.S. Впрочем, это не прокатит, если сама программа тоже будет изменять файл: ей нужно будет иметь закрытую часть ключа, а значит, ее можно будет сломать.
Или тебе нужна защита от глупого пользователя? Так предлагался уже XOR.
Или тебе нужна защита от глупого пользователя? Так предлагался уже XOR.xor — защита от примерно настолько же глупого пользователя, как и шифрование.
Только чтение или чтение-запись?
Как минимум можно зашить прямо в экзешник. Делается просто: сериализуется в поток байтов, этот поток хранится статически в самом exe-файле. Вокруг пишешь оберточку, которая получает настоящие данные.
Или тебе нужна защита от глупого пользователя? Так предлагался уже XOR.да, нужна именно защита от такого пользователя.
остальное написанное не понял - пытаюсь загуглить
Ну эта матрица из чисел? Просто берешь и заводишь в программе глобальный массивчик...
Ну эта матрица из чисел? Просто берешь и заводишь в программе глобальный массивчик...слишком большой гемор.
Пишешь на большом компе мааленькую программку, которая генерит исходник. Так делают, если сильно хочется.
1500 чисел — это от силы 12 Кб к размеру. Это если там числа double.
сделать то просто, а менять оперативно я как буду эту матрицу? именно это я подразумевал под гемором.
Я просто не понимаю, от чего хочется защититься: от хакера? От тех, кто открывает блокнотом все файлы подряд и пытается подставить числа? Или от не очень грамотного пользователя, но который будет намеренно пытаться искать, что изменить?
Или даже так: если тебя хранение в экзешнике не устраивает только тем, что надо обновлять весь экзешник, то можешь хранить в отдельном файле, но бинарно. Т.е. записывать туда числа не в текстовом виде, а прямо как они у тебя в памяти лежат.
Поменяй расширение файла на какое-нибудь левое
xor — защита от примерно настолько же глупого пользователя, как и шифрование.М-м?
Вот, к примеру, я: если мне дадут файл, "зашифрованный" XOR-ом, я его смогу прочитать. А файл, зашифрованный PGP - не смогу, не имея ключа. А ты?
Не имея ключа — нет. Ну, а программа сможет?
если мне дадут файл, "зашифрованный" XOR-ом, я его смогу прочитатьстрого говоря, без ключа ты и ксор не прочитаешь если про данные ничего не знаешь (случайные равномерно распределенные данные).
а при наличии ключа в программе можно и ксор и пгп прочитать. причем возможно даже не разбираясь в криптографии,
а просто пройдя под отладчиком за место распаковки и подсмотрев данные в оперативной памяти.
Ну да, а подменить можно опять же либо отладчиком, либо разобравшись-таки в криптографии и заменив вместе с данными и открытый ключ, который там хранится.
Ну да, а подменить можно опять же либо отладчиком, либо разобравшись-таки в криптографии и заменив вместе с данными и открытый ключ, который там хранится.
Замена одного ключа ничего не даст, надо либо оба ключа менять, либо, просто, новые данные зашифровать старым открытым ключем. Только непонятно, зачем здесь вообще использовать шифрование именно с открытым ключем.
Замена одного ключа ничего не даст, надо либо оба ключа менять, либо, просто, новые данные зашифровать старым открытым ключем.Что-то ты не понял похоже. Идея такая: автор шифрует данные закрытым ключем, открытый зашивает в программу, она может расшифровать.
Ломается простой атакой: у чувака есть программа и зашифрованные данные. Он их расшифровывает, генерит свою пару открытый/закрытый, шифрует вновь созданным закрытым, новым открытым заменяет тот, что зашит в программу.
Видимо не понял, думал, что программа может модифицировать и сохранять данные. В любом случае шифрование с открытым ключем в этом случае не дает никакх преимуществ перед шифрованием без открытого ключа.
Ну да, я-то согласен, так и писал
если бинарник подписан, это будет чуть сложнее... впрочем, для человека, заменившего ключ в бинарнике, это достаточно просто, просто чуть дольше...
Я с тобой согласен.
P.S. между прочим, я не предлагал ничего шифровать, а предлагал подписывать. В этом случае мы гарантируем, что для того, чтобы подменить данные, надо менять и саму программу.
Если просто убрать с глаз долой от любопытных, то можно скажем в зашифрованную базу аксеса положить.
Вообще мне непонятен выбор экселя как носителя.
Если просто убрать с глаз долой от любопытных, то можно скажем в зашифрованную базу аксеса положить.
Достать/записать - гораздо проще, чем с ячейками возиться в кселе.
Вы смотрите, тут спорят, где лучше хранить матрицу из 1500 чисел, в зашифрованной базе аксеса или в экселе. И вроде бы аксес действительно получается удобнее, а то в экселе еще и с ячейками надо возиться
Я исхожу из того, что будет проще топикстартеру, а не то, что посчитают кошерным такие упоротые, как ты.
Оставить комментарий
Mufy
есть программа для КПК, которая при работе использует матрицу с 1500 элементами. Эта матрица находится в экселевском файле, к которому при работе обращается программа.как лучше реализовать эту матрицу для использования в программе, чтобы не использовать не защищенные файлы (чтобы пользователь не мог залезть и исправить элементы)?
еще один важный пункт - простота замены всего файла при обновлении или элементов матрицы.
Хотя реализация может быть основана и не на файлах, а каким-либо еще способом.
Посоветуйте, плз.