Показать сообщение отдельно
Старый 04.10.2011, 15:44   #3
Пользователь
 
Регистрация: 08.05.2008
Сообщений: 61
Сказал Спасибо: 0
Имеет 21 спасибок в 12 сообщенях
Hint пока неопределено
По умолчанию

Зато теперь есть общедоступная реализация на php и delphi :)

В интернете подробной информации нет. Про RSA понятно по l2encdec (вывод процесса распаковки). Сжатие - логично, потому что размер файла меньше (плюс DStuff написал про использование zlib у себя в USAGE). То, что сначала сжимают, а потом шифруют через RSA - тоже понятно (иначе бы ничего не сжималось :) Заголовок и CRC видно в hex-редакторе (размер остального кратен 128, что намекает на RSA и размер ключа и блоков).
Так что единственное темное пятно - ключи, а вот их нигде нет :)

Кстати, твой вариант не всегда будет работать, потому что в последнем блоке, который неполный, данные могут быть смещены (не знаю почему и зачем). Из-за этого пришлось добавить костыль:
PHP код:
    if ($size != 0x7c
    { 
      
$p strlen($s) - $size
      while (
$p && $s[$p 1] != "\0") --$p
      
$s substr($s$p$size); 
    } 
    else 
    { 
      
$s substr($s, -$size); 
    } 
Добавлено через 3 минуты
Честно говоря, копался в этом больше из-за любопытства, а не по необходимости. Началось с разбора нового 'itemname-*.dat' (l2disasm уже не помогает, поэтому пришлось писать свою программу), а потом захотелось разобраться и с l2encdec.

Последний раз редактировалось Hint, 04.10.2011 в 15:46. Причина: Добавлено сообщение
Hint вне форума   Ответить с цитированием