[Util] ACF Toolkit v1.0 (beta)

Всё для взлома и эмуляции Steam.

1
100%
 
Всего голосов: 1

Сообщение
Автор
Аватара пользователя
ROY666
Лейтенант
Лейтенант
Сообщения: 104
Зарегистрирован: 20.08.2010
Поблагодарили: 27 раз
Контактная информация:

#46 Сообщение 13.11.2013, 20:33

Сразу хочу извиниться. Прочел всю тему и все посты, но одного так и не понял.
Суть вопроса вот в чем: Нужно сделать патч для no-steam сборки используя обновленную игру. Возможно ли это сделать? Или утилита создает патчи понятные только ей? Или же есть другие инструменты позволяющее отследить список изминенных файлов вышедших с последним обновлением.
Еще раз извиняюсь за столь глупый (и возможно не к месту) вопрос. :(

Аватара пользователя
DRON9RA
Полковник
Полковник
Сообщения: 2233
Зарегистрирован: 04.02.2009
Благодарил (а): 1477 раз
Поблагодарили: 205 раз
Контактная информация:

#47 Сообщение 14.11.2013, 02:39

Вообще да, не хватает наиполнейшей инофрмации об играх, вплоть до каждого файла и когда он был последний раз изменён. В этой утилите такое не реализовать (вся равно не читаемо будет без ГУИ). А в TINcft этой функции не предвидеться (мне вообще интерфейс старого cf toolbox больше нравился).
Да и стиму доверять нельзя, он нередко качает не всё, или как-нить криво. Нужно проводить проверку кеша обязательно. А для некоторых игр требуется и английская и русская версия последних версий.

То есть, делать патч просто новыми файлами будет проблематично. А имеющийся функционал в ACF Toolkit и TINcft, такой же как в CF Toolbox. Как делать патчи описано в шапках соответствующих тем. После того как Вы обновли полностью игру в стим, проверьте пару раз кеш (чтобы никаких скачиваний а сразу "всё на месте" и для каждого языка) и заранее сделайте файл-архив с информацией об установленной версии. В дальнейшем Вы сможете сделать или установить патч только используя этот файл. Читайте первый пост.

Учтите, что прога несовместима с TINcft.
Продам ключ (2) + CD Half-Life 1 Platinum [WON][Steam], не дорого!

Half-Life Platinum Pack + Generation edition [EN][4CD].
http://forum.csmania.ru/viewtopic.php?f ... 39#p966139

Аватара пользователя
Psycho-A
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 424
Зарегистрирован: 28.09.2009
Благодарил (а): 15 раз
Поблагодарили: 82 раза

#48 Сообщение 14.11.2013, 04:22

ROY666
1. Возможно. Это функционал для создания .update-файлов.
2. То есть, тебе необходимо самому просмотреть список измененных файлов? Если так, то для этого достаточно просто открыть сделанный .update-файл 7-zip'ом, и просмотреть полученную файловую систему. Помимо обновленных и добавленных файлов, туда также включается список (файл с расширением .del) файлов, которые были удалены Steam'ом с приходом текущего обновления. Его можно открыть блокнотом.

DRON9RA
Ну, чтобы иметь возможность включать файлы для нескольких локализаций одновременно, нужно в первую очередь, чтобы обе версии игры были полностью скачаны, а для этого требуется держать два Стим-клиента сразу. Потому как нередко файлы локализаций могут быть одинаковыми, и перезаписывают друг-друга.
К версии 1.0 я планирую добавить возможность раздельного обновления контента манифестов, т.е. если у нас где-то имеется дополнительная локализация, то можно будет делать патчи-обновления только для нее и для основного контента игры. Тут, однако, есть свой нюанс: ACF-файлы для разных вариаций игр всегда будут отличаться, равно как и их buildid. Т.е., если мы накатим .update с русской локализацией на английскую версию игры, то она автоматически превратится в русскую, причём, состав файлов будет неполным. Так что, думаю, проще реализовать проверку языка локализации между .update-файлом и ACF игры соответственно, и, если они не совпадают, то либо предложить отказаться от обновления, либо обновить только базовый контент игры (с последним будет сложнее, т.к. по имени манифеста не всегда можно вычислить язык, а в AppInfo такие данные не прописаны).

Насчёт проверки кэша перед обновлением - это уже реализовано в программе, и не нужно даже использовать Стим - программа сама покажет, какие файлы не прошли валидацию.

Аватара пользователя
ROY666
Лейтенант
Лейтенант
Сообщения: 104
Зарегистрирован: 20.08.2010
Поблагодарили: 27 раз
Контактная информация:

#49 Сообщение 14.11.2013, 18:03

Psycho-A
Абсолютно точно, именно это мне и нужно. Просто не было возможности провести данную операцию как подобает. Со следующим обновлением буду пробывать. Что бы было понятно остальным, на деле я имею чистую версию Killing Floor, а также идентичную копию no-steam, собственно после обновления я имею update-to-date Steam версию Killing Floor и мне нужно собрать патч (набор обновленных файлов) для no-Steam сборки (конечно же можно дождаться пока патч сделают другие пользователи, но все же нужно и самому руками поработать :D) Psycho-A Спасибо Вам еще раз!

Аватара пользователя
Psycho-A
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 424
Зарегистрирован: 28.09.2009
Благодарил (а): 15 раз
Поблагодарили: 82 раза

#50 Сообщение 02.12.2013, 07:23

v1.00-beta2.
Тестовая версия, которую выкладываю по причине нескорого завершения работы над финальной (ввиду недостатка времени) и желания поделиться дополнительными улучшениями уже сейчас.
ChangeLog
1.00.0-beta (15.11.2013)
- Корректировка кода: теперь утилита совместима с командной строкой с отключенными расширениями.
- Корректировка кода: теперь утилита поддерживает прямой запуск из командной строки с сохранением исходного состояния последней при выходе.
- Корректировка кода: мелкие оптимизации в целях совместимости.
- Добавлена новая операция ("2e") - скачивание обновлений для игр/приложений с серверов Steam (только для доступных игр).
- Улучшение интерфейса: все диалоговые сообщения теперь выводятся в отдельный GUI-элемент (т.е. не требуется ручной ввод в консоль).
- Добавлено отображение корневой папки со Steam в предварительном меню.
- Исправлена (надеюсь, полностью) несовместимость утилиты с игровыми файлами, использующими не-латинские символы (юникод).
- Добавлена автозамена значения нового ACF-параметра "AutoUpdateBehavior" в "1", что отключает автоматическое обновление игры в Steam.
- Исправлена ошибка в коде, которая приводила к очистке всего листинга manifest-файлов при наличии дубликатов и строк с пробелами.
- Исправлена ошибка в коде, делающая невозможным повторный вывод сводки по версиям игр по команде 'status'.
- Добавлена проверка версии AppInfo.vdf перед операциями, требующими актуальной сводки о контенте (status, 1a, 2a, 2c).
- Если при создании .version включена опция добавления некорректного пользовательского контента, то теперь его список выводится в консоль.
- Исправлен сбой программы, когда, при создании .update-файлов, различия в контенте между разными версиями отсутствовали.
- Удалена зависимость вложения пользовательского контента в .update от параметра "AskForAttachInvalids", вместо этого теперь выдается запрос.
- Добавлен диалог для быстрого удаления .update-файла c жесткого диска после его успешного применения.
- Добавлен вывод диалогового окна, если при применении .update запущен Steam (вам предложат закрыть его, так как он блокирует ACF-файлы).
- Исправлены другие мелкие недочёты.
Ссылка в шапке.

Аватара пользователя
ArsNG
Полковник
Полковник
Сообщения: 3059
Зарегистрирован: 20.12.2007
Благодарил (а): 1069 раз
Поблагодарили: 2893 раза

#51 Сообщение 02.12.2013, 12:22

- Добавлена новая операция ("2e") - скачивание обновлений для игр/приложений с серверов Steam (только для доступных игр).
Можно подробнее?

wim95
Нович0к
Нович0к
Сообщения: 15
Зарегистрирован: 03.12.2009
Поблагодарили: 1 раз
Контактная информация:

#52 Сообщение 02.12.2013, 20:01

Предлагаю архивировать алгоритмом LZMA2 (многопоточный, автоматически).
Результат сжатия на моем железе Jagged Alliance - Back in Action. Размер 2,57 ГБ (2 769 770 302 байт).

LZMA: Время 11:48, размер 1,60 ГБ (1 724 293 519 байт)
LZMA2 Время 04:54, размер 1,60 ГБ (1 721 696 220 байт)

Нужно найти и заменить на

Код: Выделить всё

-m0=lzma2 -mx=9
в нескольких местах.

Из установленного 7zip скопировать в папку ..\Resources\Tools\

Код: Выделить всё

7z.dll
7-zip.dll
7z.exe
Возможно какая-то dll лишняя.
Исправить

Код: Выделить всё

:Tools
set "ArcTool=%~dp0Resources\Tools\7za.exe"
на

Код: Выделить всё

:Tools
set "ArcTool=%~dp0Resources\Tools\7z.exe"
т.е. 7za на 7z

Аватара пользователя
Psycho-A
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 424
Зарегистрирован: 28.09.2009
Благодарил (а): 15 раз
Поблагодарили: 82 раза

#53 Сообщение 02.12.2013, 20:29

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

wim95
Если бы всё было так просто, то было бы давно реализовано ;) Проблема в том, что при большом количестве файлов (более 5-10 тыс на игру), LZMA2 весьма неадекватно работает с памятью, вызывая переполнение даже на мощных машинах. А представь, если у человека всего 1 или 2 ГБ? LZMA контролирует её в заданных пределах, поэтому и был выбран.

Ко всем скачавшим версию 1.0-beta2 просьба перекачать файл - исправлена одна непростительная оплошность :).

wim95
Нович0к
Нович0к
Сообщения: 15
Зарегистрирован: 03.12.2009
Поблагодарили: 1 раз
Контактная информация:

#54 Сообщение 02.12.2013, 22:10

Psycho-A писал(а): Если бы всё было так просто, то было бы давно реализовано ;)
Ну да из 16 гигов, как минимум 8 съедает, но и все ядра грузит (отсюда уменьшение времени).
Желающие могут рискнуть. Когда измерял время упаковки параллельно смотрел сериал и играл в ВОТ (в окошках) ;)

Аватара пользователя
Psycho-A
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 424
Зарегистрирован: 28.09.2009
Благодарил (а): 15 раз
Поблагодарили: 82 раза

#55 Сообщение 03.12.2013, 00:29

wim95
7za.exe, входящий в набор инструментов программы, итак поддерживает lzma2, - ни к чему производить замены. Возможно, в следующей бете я выведу возможность смены алгоритма сжатия в ini-файл настроек.
Скрытый текст
аккаунт бесплатный. подводит память, но проблему решил почти сразу %)

Аватара пользователя
bugme666
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 1168
Зарегистрирован: 29.01.2009
Откуда: MOSCOШ
Благодарил (а): 882 раза
Поблагодарили: 358 раз
Контактная информация:

#56 Сообщение 03.12.2013, 02:21

Psycho-A
Почему сама программа-то распространяется в Rar? Rar sucks же. Давай в 7z. За обнову спасибо.

Аватара пользователя
Psycho-A
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 424
Зарегистрирован: 28.09.2009
Благодарил (а): 15 раз
Поблагодарили: 82 раза

#57 Сообщение 03.12.2013, 03:06

bugme666
Как-то не интересуюсь особо этими "специальными олимпиадами", поэтому архивировал тем, чем пользуюсь чаще ;)
Ну 7z, так 7z, в следующем релизе учту...

Renaissance
Полковник
Полковник
Сообщения: 6942
Зарегистрирован: 03.06.2009
Благодарил (а): 2390 раз
Поблагодарили: 2807 раз
Контактная информация:

#58 Сообщение 03.12.2013, 08:31

bugme666 писал(а):Почему сама программа-то распространяется в Rar? Rar sucks же. Давай в 7z. За обнову спасибо.
если пошла такая пляска, то почему не zip? Вдруг у меня архиватора вообще нет.

Аватара пользователя
Psycho-A
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 424
Зарегистрирован: 28.09.2009
Благодарил (а): 15 раз
Поблагодарили: 82 раза

#59 Сообщение 03.12.2013, 12:25

В использовании 7z, в принципе, есть рациональное звено - ведь все игровые архивы и обновления создаются именно в нем, так что пользователь должен иметь его уже заведомо.

С другой стороны, я мог бы и вовсе паковать программу в какой-нибудь tar.gz, и возразить против этого было бы трудно, так как это автоматом отсеивало бы нубов, неспособных скачать себе нормальный архиватор, который бы это распаковал ;)

wim95
Нович0к
Нович0к
Сообщения: 15
Зарегистрирован: 03.12.2009
Поблагодарили: 1 раз
Контактная информация:

#60 Сообщение 03.12.2013, 18:22

Psycho-A писал(а):wim95
7za.exe, входящий в набор инструментов программы, итак поддерживает lzma2
У меня при использовании lzma2 и 7za выдает вот это
Скрытый текст
Making archive copy...
Deleting unused stuff...
Correcting Acf structure...
Archiving Acf "appmanifest_9200.acf"...
Archiving depots content (this may take a long time!)...
Compressing "[209460] RAGE DLC3 Content (Nov 03 2012)"...
The system cannot find the file specified.
Compressing "[9201] RAGEDepot (May 26 2012)"...
The system cannot find the file specified.
Compressing "[9208] RAGE Russian (May 28 2012)"...
The system cannot find the file specified.
Compressing "[9238] RagePatch1Depot (May 26 2012)"...
The system cannot find the file specified.
Compressing "[9239] RAGE_EXEDepot (Jan 30 2013)"...
The system cannot find the file specified.
Compressing "[9241] Rage Sewers DLC (May 26 2012)"...
The system cannot find the file specified.

_________________________________

All backuping operations finished!
Goto 'CookedApps\RAGE (Jan 30 2013)' to view files.
Может ключи у 7za и 7z разные?
Я себе lzma2 еще в SteamAppsPreparer поставил и тогда оно с 7za тоже не работало.

Ответить Вложения 4