![]() |
Добро пожаловать, гость ( Вход | Регистрация )
![]() |
Siberian GRemlin |
![]() ![]()
Сообщение
#1
|
![]() Advanced Member ![]() ![]() ![]() Группа: CTPAX-X Сообщений: 537 Регистрация: 4-February 08 Пользователь №: 2 Спасибо сказали: 222 раз(а) ![]() |
Уважаемые.
Добрался я до той ситуации, когда необходимо изменить длину строк в EXE, в частности под DOS. Как я понимаю, в бинарнике есть таблица с адресами и если мне нужно изменить длину первой строки (считаем от начала бинарника) на один символ (байт), то необходимо в таблице увеличить все значения адресов на единицу, кроме самого первого адреса (в смысле, адреса первой строки). Единственное, что мне пока неизвестно, где находится эта таблица в бинарнике и как там идёт индексация, а также адресация и есть ли где-то значение размера этой таблицы? Ещё в интернете ища информацию, натыкался на информацию о том, что существует прога для автоматического изменения текста с его длинной, ремаппингом и т.п., а также что люди сами писали подобные программы. Гипотетически это возможно, но как бы это выяснить... Может кто-от посоветует какие-нибудь статьи по данному вопросу (локализации текстовых констант в ЕХЕ) P.S.: Опытного человека, моё сообщение может показаться ламерским бредом... но хочется расти в творческом плане и в одиночку без глупых вопросов не обойтись. P.P.S.: Я доделываю русскую локализацию одной игры. |
![]() ![]() |
Siberian GRemlin |
![]()
Сообщение
#2
|
![]() Advanced Member ![]() ![]() ![]() Группа: CTPAX-X Сообщений: 537 Регистрация: 4-February 08 Пользователь №: 2 Спасибо сказали: 222 раз(а) ![]() |
Да. Её родимую. =)
Сокращать строки не приемлимо - я лучше заплачу человеку, который в этом разбирается больше меня, чтобы он сделал. Если есть такие люди - пишите мне личное сообщение или на эл. почту, о цене договоримся. Есть её, кажется, более спортивный способ, который пришёл мне в голову: Сесть самому, но лучше с кем-нибудь и, открыв EXE в IDA, выписать все смещения до байт, которые нужно изменять при удлинении строк (смещения отностительно начала оригинального не исправленного ни кем ЕХЕ), потом написать программу, которая изменяет корректно строки в ЕХЕ по файлу инструкции, который мы создадим специально для неё (т.е. все адреса для изменения о которых я писал выше) и на выходе получаем новый ЕХЕ. Думаю будет проще сделать импорт строк из TXT, чем полноценный редактор, которому придётся ещё сохранять в какой-то отдельный файл на сколько в прошлый раз увеличили его размер и по каким адресам всякие условные и безусловные переходы и пр., иначе он корректно не откроет/изменит уже исправленный нами когда-то ЕХЕ. Ещё как вариант у меня есть исправленная версия ЕХЕ под итальянскую локализацию, сделанную моим знакомым - строки на итальянском длиннее чем на английском, но не факт что все и + он там добавил какую-то фигню, что запускать приходится с параметром: MAIN.EXE -L, но тогда я обломаюсь с другими частями этой игры. |
![]() ![]() |
Упрощённая версия | Сейчас: 9th May 2025 - 22:55 |