Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Библиотеки

Ответ
 
Опции темы
Старый 14.07.2009, 21:45   #1
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Lib_vault - Ресурсы под замком

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

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

Итак, для начала нужно создать пакет с нашими ресурсами. Для этого запускаем запаковщик (он прилагается к данной статье, на момент написания самая свежая версия запаковщика это 3).

Нажимаем кнопку "Добавить" и выбираем файлы, которые нужно поместить в архив. У меня получилось примерно такой архивчик:



Потом поставьте галочку напротив строчки "Использовать шифрование" и наберите в текстовой строчке пароль для доступа к вашему архиву.

Ещё в качестве дополнительной меры можно добавлять фейковый (ложный, поддельный) файл в начало архива. Как видно из скриншота, я туда поместил файл с картинкой под названием "lock.png". Всё, теперь нажимаем кнопку "Запаковать", программа спросит имя файла и путь сохранения. Я указал название "logo.png". Архив готов. При создании архива появилось окошко с числом "2894". Запишем это число на бумажечке, оно нам ещё пригодится. Можете попробовать открыть полученный файл на компьютере, картинка откроется совершенно нормально, без ругани, что файл как-то странно перегружен. Ну и что, что такая маленькая картинка занимает 16 Кб. Может я ламер и запаковал картинку в плохом формате сжатия

Теперь приступаем к созданию нашего приложения.
Перед тем как начать, кратко опишу функции, которые поддерживает библиотека Lib_vault:

OpenVault(fnameStringofInteger) - Открыть файл с ресурсами
    fname 
имя файла с ресурсами (символ "/" в начале писать не нужно)
    
of отступ в байтах от начала файла (в случае добавления фейковых файлов перед заголовкоминаче 0)
    
Security(passStringscrollInteger) - Установить параметры безопасности для архива ресурсов
    pass 
пароль
    scroll 
циклический сдвиг каждого байта на N битов влево
    
(пока не поддерживается запаковщикомно уже забронированопока ставьте значение 0)
    
Image LoadImage(resInteger) - Загрузить картинку из архива
    res 
номер ресурса в архиве
    
String LoadText
(resIntegerencInteger) - Загрузить текстовый файл целиком
    res 
номер ресурса в архиве
    enc 
кодировка символов
    0 
не делать перекодировку
    1 
перекодировка Windows (cp1251) -- > UTF-8
    2 
перекодировка ANSI -- > UTF-8
    
LoadSound
(resIntegerformatStringloopInteger) - Загрузить мелодию из архива
    res 
номер ресурса в архиве
    format 
формат аудио (пример"audio/midi"подробнее смотри стандартный хелп по функции OpenPlayer
    loop 
количество разкоторое будет воспроизводиться мелодия
    
PlaySound 
Начать воспроизведение мелодии загруженной ранее функцией LoadSound

StopSound 
Закончить воспроизведение мелодии 
Ну а теперь собственно сама программа, я подробно всё откомментировал.
Думаю у вас не возникнет дополнительных вопросов.
Program VaultTest;
Uses vault;
Var
    
imimage;
    
sstring;
Begin
    
    im
:=LoadImage('/logo.png');  // Открываем наш архив как обычную картинку
    
DrawImage(im55); // Рисуем на экране симпатичный замочек (закрытый)
    
RepaintDelay(5000); // Ждем 5 секунд
    
    
SetColor(255255255); FillRect(00GetWidthGetHeight); // Очистка экрана
    
    
OpenVault('logo.png'2894); // Открываем наше хранилище (сдвиг от начала файла 2894 байт)
    
Security('1234567890'0); // Пароль 1234567890, циклический сдвиг битов не применялся (пока 0)
    
    
im:=vault.LoadImage(0); // Извлекаем ресурс #0 - картинку
    
DrawImage(im55); // Рисуем на экране симпатичный замочек (уже открытый!)
    
    
s:=vault.LoadText(11); // Загружаем текстовый файл целиком (кодировка Win-1251)
    
SetColor(000); DrawText(s270); // Рисуем текст на экране
    
    
vault.LoadSound(2'audio/midi'1); // Загружаем ресурс #2 - MIDI мелодию, играть будем 1 раз
    
vault.PlaySound// Начать воспроизведение
    
    
RepaintDelay(50000); // Ждем 50 секунд
    
End
В общем, это и всё, что я хотел сегодня рассказать. Я показал как успешно хранить ваши ресурсы в зашифрованном виде, как маскировать их под обычные файлы. Ждите выходов новых версий запаковщика и распаковщика соответственно тоже.
Вложения
Тип файла: zip Lib_vault.zip (2.9 Кб, 667 просмотров)
Тип файла: zip RESPacker3.zip (273.2 Кб, 721 просмотров)
Тип файла: zip VaultTest.zip (12.4 Кб, 639 просмотров)
(Offline)
 
Ответить с цитированием
Эти 16 пользователя(ей) сказали Спасибо odd за это полезное сообщение:
Bananbl4 (28.03.2010), GRAY_WOLF (15.10.2009), im_zorg (11.01.2010), Ksanatos (31.08.2010), Mr.Twister (15.07.2009), NetBuilding (21.07.2010), Phantom (16.07.2009), PVD (27.02.2010), Pyth_ON (15.07.2009), Richik (21.07.2009), Romanzes (28.02.2010), scimitar (01.10.2011), Serg153 (15.07.2009), Trazzy (18.11.2009), ViNT (16.07.2009), VM (15.07.2009)
Старый 15.07.2009, 12:08   #2
Serg153
Нуждающийся
 
Регистрация: 03.01.2009
Сообщений: 93
Написано 8 полезных сообщений
(для 15 пользователей)
Ответ: Lib_vault - Ресурсы под замком

Либа работает нормально... распаковывает...
а вот Ресурпакер - при распаковке кажется глючит....
1- если неуказать смещение(при наличии "ложного" файла) - то прога Зависает и за несколько секунд пишет сотни и тысячи файлов с лабудой в каталог распаковки...
2 - если Указать смещение - то распаковка происходит,
но - все русурсы распаковывает с одним расширением PNG
хотя, как в примере там были три типа (png, txt, mid)
и размер Распакованных ресурсов неявляется истинным - он равен размеру упакованного файла (в примере 3 файла по 16Кб...)
---
может подправите Пакер?
а так, усё работает...
(Offline)
 
Ответить с цитированием
Старый 15.07.2009, 16:45   #3
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Ответ: Lib_vault - Ресурсы под замком

Lib_vault: Prepare for the future
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо Tadeus за это полезное сообщение:
ABTOMAT (16.07.2009), Ksanatos (31.08.2010), Phantom (16.07.2009)
Старый 16.07.2009, 02:46   #4
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Lib_vault - Ресурсы под замком

Пакер пока в разработке, еще не сделаны некоторые проверки корректности входных данных.

Вообще распаковщик делался скорее для проверки упаковщика, чем для использования. А выход из указанной ситуации один - в следующей сборке сделаю создание информационного файла для пакета, в котором будут указаны все необходимые для распаковки данные, вплоть до пароля(естественно, этот файл не должен быть доступен "злоумышленнику").
(Offline)
 
Ответить с цитированием
Старый 16.07.2009, 12:34   #5
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Lib_vault - Ресурсы под замком

Какой алгоритм шифрования используется?
Если вы считаете, что мой вопрос раскрывает секретность, то Вам сюда - http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF_%D0%9A% D0%B5%D1%80%D0%BA%D0%B3%D0%BE%D1%84%D1%84%D1%81%D0 %B0
Система не должна быть секретной, и если она попадёт в руки противника, это не должно причинить неудобства.
«принцип Керкгоффса».

И, если я не ошибаюсь, создание крипто-прог возможно только по лицензии ФАПСИ ?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 16.07.2009, 18:43   #6
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_vault - Ресурсы под замком

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

ФАПСИ осталось не у дел. Я уверен, что опытные криптографы даже не зная алгоритма шифрования и его ключа всё равно смогут взломать данную защиту причем в рекордно короткие сроки (менее чем за 1 день).
(Offline)
 
Ответить с цитированием
Старый 16.07.2009, 20:44   #7
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Lib_vault - Ресурсы под замком

1 - перекодировка Windows (cp1251) -- > UTF-8
2 - перекодировка ANSI -- > UTF-8
Разве это не одно и то же? Может вместо ANSI ты имел в виду ASCII?
(Offline)
 
Ответить с цитированием
Старый 18.07.2009, 15:40   #8
odd
Мастер
 
Аватар для odd
 
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений
(для 713 пользователей)
Ответ: Lib_vault - Ресурсы под замком

ACSII это вообще то первые 128 символов, а с ними как раз никаких проблем не возникает. А вот вторые 128 символов кодируют как кто захочет, кто в cp1251, кто в КОИ, кто в ISO8859-5. Хз. Возможно это в реальной жизни кодировка ISO, во всяком случае алгоритмы у cp1251 и ANSI(ISO?) совершенно разные.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Phantom (18.07.2009)
Старый 18.07.2009, 18:36   #9
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Lib_vault - Ресурсы под замком

Мой текстовый редактор при сохранении в ANSI сохраняет в WINDOWS-1251
(Offline)
 
Ответить с цитированием
Старый 03.08.2009, 22:12   #10
МонстР
AnyKey`щик
 
Регистрация: 30.07.2009
Сообщений: 4
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Lib_vault - Ресурсы под замком

Odd, а может напишешь шифровальшик на php? Или можешь мне в асю написать и разьяснить алоритм шифровки, попробую сам)
(Offline)
 
Ответить с цитированием
Старый 15.10.2009, 21:10   #11
DmitryNPK
AnyKey`щик
 
Регистрация: 15.10.2009
Сообщений: 3
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Lib_vault - Ресурсы под замком

Почему-то либа распаковывает тестовый файл (тот что в архиве), а если сам собираешь - не распаковывает.
(Offline)
 
Ответить с цитированием
Старый 15.10.2009, 21:21   #12
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Lib_vault - Ресурсы под замком

А встроенный распаковщик программы распаковывает?
(Offline)
 
Ответить с цитированием
Старый 15.10.2009, 21:30   #13
GRAY_WOLF
Разработчик
 
Аватар для GRAY_WOLF
 
Регистрация: 16.08.2008
Адрес: Нижегородская провинция
Сообщений: 389
Написано 48 полезных сообщений
(для 93 пользователей)
Ответ: Lib_vault - Ресурсы под замком

Где-то при сборке допустил глюк. Читай по внимательней 1 пост.
__________________
- Это мы накодили WINDOWS,
- Это мы надкусили APPLE,
- Нам играют живые The Beatles
- И нестареющий Вова Высоцкий...
(Offline)
 
Ответить с цитированием
Старый 15.10.2009, 21:33   #14
DmitryNPK
AnyKey`щик
 
Регистрация: 15.10.2009
Сообщений: 3
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Lib_vault - Ресурсы под замком

Да. Пытался сделать архив 1 в 1 как в тесте - ни каких ошибок не выскакивает, просто картинки/текст - не показывает.
(Offline)
 
Ответить с цитированием
Старый 15.10.2009, 21:42   #15
GRAY_WOLF
Разработчик
 
Аватар для GRAY_WOLF
 
Регистрация: 16.08.2008
Адрес: Нижегородская провинция
Сообщений: 389
Написано 48 полезных сообщений
(для 93 пользователей)
Ответ: Lib_vault - Ресурсы под замком

Сообщение от DmitryNPK Посмотреть сообщение
Да. Пытался сделать архив 1 в 1 как в тесте - ни каких ошибок не выскакивает, просто картинки/текст - не показывает.
Без исходника, что либо сказать трудно. Выложи посмотрим.
__________________
- Это мы накодили WINDOWS,
- Это мы надкусили APPLE,
- Нам играют живые The Beatles
- И нестареющий Вова Высоцкий...
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ресурсы в папках im_zorg MidletPascal 11 24.12.2009 17:15
Все ресурсы в одном EXE SubZer0 FAQ 6 23.10.2008 22:29
Ресурсы для БМ Pixel BlitzMax 2 28.11.2007 02:26
ресурсы smersh 3D-программирование 4 29.03.2007 21:19
Ресурсы по Opengl pax OpenGL 7 24.01.2007 13:28


Часовой пояс GMT +4, время: 10:18.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com