Чем можно распаковать и запаковать обратно DLL?

Доброго времени суток, заранее извиняюсь что задаю вопрос здесь, но надеюсь кто нибудь подскажет как это сделать.
Собстно есть игра под названием Re:Legend, захотел сделать перевод интерфейса, попробовал такую штуку как UnityEX посмотрев все assets и resource пришел к выводу что текста ни там, ни там, нету, но в программе есть функция благодаря которой я понял что весь текст к моему удивлению лежит не в ресурсах, а в dll, а конкретно - Assembly-CSharp.dll и Assembly-CSharp-firstpass, задавшись вопросом как это дело открыть, я нашел примерно ничего, а точнее вообще никакой информации о том как это сделать, единственное мне повезло наткнутся на 2 программы ildasm и ilasm (Была просто ссылка на архив с ними без описания того как они работают, разбирался методом тыка), никогда ранее о них не слышал, беглый поиск дал понять что и гугл об этом особо ничего не знает, нашел разве что какие то статьи от Microsoft по этим программам, и за одно параметры для батника.
Что в итоге получилось?
Я смог распаковать dll в формат il, и рядом с ним еще появился файл с расширением res весом 1кб, с помощью программы ScanIL я смог открыть файл il, нашел там нужные мне строки, и изменил их, кстати о самой программе ScanIL гугл вообще ничего не знает, выдавал вообще левые сайты, далее когда пришло время запаковать это все обратно, я столкнулся с непонятной мне проблемой, я перетаскивал 2 файла в батник который должен был запаковать, он около 20-30с что-то делал, в конце писал что закончил работу и.. ничего не появлялось и не происходило, и собранного обратно Assembly-CSharp.dll тоже не было, найти новую версию программы ildasm&ilasm у меня получилось, но вот к положительному результату это не привело, она тоже не запихивает файлы обратно.
Прошу у знающих пользователей DTF помощи в этом вопросе, или подсказок, сам в этом не разберусь т.к никогда ранее не трогал dll файлы и не представляю как они устроены, если необходимо то могу прикрепить те 2 файла и программы которые использовал.

3.4K3.4K открытий
39 комментариев

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

Ну и ilasm валится с ошибкой
 .\ttt.il(152168) : error : syntax error at token 'inf' in: IL_001b: ldc.r4 inf

скорей всего ildasm где-то косячит, и ручками такое править это такое себе удовольствие.

Предлагаю расслабится и ждать официальной локализации

Ответить

ах, это ildasm из net 4.8 ерунду порет, если взять из 4.7 то должно быть нормально. Но мне лень ставить 4.7, чтобы проверить

Ответить

Вообще длл это те же экзешники, если хочешь их курочить на предмет текстов, то используй какой-нибудь Resource Hacker(привет первый икском с зашитыми туда эксмелеями), не думаю что с тех пор что-то изменилось, удачи )

Ответить

Попробовал, не помогло к сожалению.
Но спасибо за рекомендацию

Ответить

Длл - это бинарь в формате PE, как тут и отмечали у exe такой же формат, но работают они чутка по другому конечно. Касаемо задачи - объективно это сложно. Надо отреверсить код, все восстановить а потом заребилдить. Ну это в идеале. Если эта дллка ничем не накрыта (протекторы пакеры), то используй декомпилятор
https://www.jetbrains.com/ru-ru/decompiler/

В голом асме дотнета ты просто утонешь)

Ответить

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

Ответить

Такая, вроде, уже есть: https://github.com/bbepis/XUnity.AutoTranslator

Ответить