1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

1.2.6 (1.3.4) Ручные обновления

Тема в разделе 'PW Вопросник', создана пользователем maestro199, 17 сен 2015.

  1. TopicStarter Overlay

    maestro199 Пользователи

    Сообщения:
    320
    Лайки:
    53
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    AsteriaOnline
    Какими плясками с бубном можно выдрать файлы с ручника?
    upload_2015-9-17_23-49-58.png
  2. HolaRiva Пользователи

    Сообщения:
    232
    Лайки:
    62
    Пол:
    Женский
    Репутация:
    0
    Страна:
    Russian Federation Russian Federation
    Файлы сжат. Распаковываются через патчер. Как вариант - просто установить их в клиент через патчер и выдернуть потом.
    Как другой вариант - распаковка и расшифровка пути и имени файла. Но хз чем он запакован, я не копал.
  3. TopicStarter Overlay

    maestro199 Пользователи

    Сообщения:
    320
    Лайки:
    53
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    AsteriaOnline
    Ну это понятно, но ведь при компилировании создается inc файл, там фроде как контрольные суммы и цифры версии обновления, если они с клиентом не совпадают (или не идут по порядку, хз как) то обновление не проходит..
  4. dpakon1 Пользователи

    Сообщения:
    101
    Лайки:
    14
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    myself
    sPCK может распаковывать *CUP файлы.
  5. TopicStarter Overlay

    maestro199 Пользователи

    Сообщения:
    320
    Лайки:
    53
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    AsteriaOnline
    спасибо кэп) на скрине все распаковано. Вопрос в том как получить оригинальные файлы из шифра. нужно как-то заставить патчер схавать ручник другой версии
  6. lama-sek Пользователи

    Сообщения:
    34
    Лайки:
    17
    Репутация:
    0
    Шифра нет. Файлы просто отзипованы и переименованы по base64.
    Джо что-то делал подобное, но кажется для CPW на хосте.
  7. JoLan Команда форума Администратор AngeliCore Программист

    Сообщения:
    1.061
    Лайки:
    948
    Пол:
    Мужской
    Репутация:
    6
    Команда:
    AngeliCore
    Страна:
    Russian Federation Russian Federation
    Имена файлов зашифрованы в base64. Содержимое файлов имеет следующий формат:

    Код:
    int decompressed_size;
    byte zlib_data[filesize -4];
    
    Где zlib_data - данные, сжатые с помощью zLib.

    Реализация для Delphi:
    Код:
    var s1, s2: TMemoryStream;
        out_size: Integer;
    begin
      s1 := TMemoryStream.Create;
      s2 := TMemoryStream.Create;
      s1.LoadFromFile('путь_к_зашифрованному_файлу');
      s1.Position := 0;
      s1.Read(out_size, 4);
      zDecompressStream(s1, s2);
      //но перед сохранением можно проверить на равенство out_size и s2.Size
      //если не словили исключения на zDecompressStream
      s2.SaveToFile('путь_сохранения_дешифрованного_файла');
      s2.Free;
      s1.Free;
    end;
    
    NetSpirit, Тыщ, Unix и 2 другим нравится это.
  8. dpakon1 Пользователи

    Сообщения:
    101
    Лайки:
    14
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    myself
    Он как бы распаковывает в нормальный вид - без сжатия и с нормальными именами.
    Вот пример:
    sPCK.exe -pw -xp "D:\ec_patch_658-670.cup"

    На выходе будут ПОЛНОСТЬЮ распакованные файлы БЕЗ base64.
    maestro199 нравится это.
  9. TopicStarter Overlay

    maestro199 Пользователи

    Сообщения:
    320
    Лайки:
    53
    Пол:
    Мужской
    Репутация:
    0
    Команда:
    AsteriaOnline
    Я был удивлен. Спасибо.
Черновик сохранён Черновик удалён

Поделиться этой страницей