ynbIpb
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Вот что накодил, пока жутко не оптимизировано и без GUI, вытаскивает только первый файл в архиве. анпакер Вот кстати ещё вопрос как лучше переворачивать HEX значения? а то мне кажется я как-то топорно делаю... ----------------------- Вот ещё задачка: в этих архивах лежат ещё и защифрованные файлы (( помогите понять, вот нашёл описание формата: Формат GGP представляет из себя зашифрованный PNG с дополнительными полями: - заголовок - 8 байт - заголовок 'GGPFAIKE' (GGPHeader) 4 байта - цветовая глубина. 0 - использовать из PNG-шки, 32 - ARGB, 24 - RGB. обычно не используется. 8 байт - ксор-ключ (XORMask) 4 байта - оффсет начала блока изображения 4 байта - длина блока изображения 4 байта - оффсет начала дополнительных полей 4 байта - размер блока дополнительных полей в байтах - блок дополнительных полей - 2 байта - конечная позиция спрайта по ширине 2 байта - конечная позиция спрайта по высоте 2 байта - координата начала спрайта в изображении по ширине 2 байта - координата начала спрайта в изображении по высоте 2 байта - ширина спрайта 2 байта - высота спрайта - данные - ... чтобы получить расшифрованный PNG, его необходимо обработать по следующему алгоритму: j := j xor (GGPHeader[i mod 8] xor XORMask[i mod 8]); как эту формулу в понимаемый вид преобразовать? В моём случае png файл без дополнитльных полей, значт его только разксорить нужно, но я не пойму принцип действия функции XOR это аналог BitXOR? вот образец файла: _http://slil.ru/28036527 | Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 01:24 02-10-2009 | Исправлено: ynbIpb, 14:30 02-10-2009 |
|