IPB

Добро пожаловать, гость ( Вход | Регистрация )

> Локализация EXE, Изменение длины строковых констант в EXE
Siberian GRemlin
Jun 29 2007, 16:52
Сообщение #1


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



Уважаемые.
Добрался я до той ситуации, когда необходимо изменить длину строк в EXE, в частности под DOS. Как я понимаю, в бинарнике есть таблица с адресами и если мне нужно изменить длину первой строки (считаем от начала бинарника) на один символ (байт), то необходимо в таблице увеличить все значения адресов на единицу, кроме самого первого адреса (в смысле, адреса первой строки). Единственное, что мне пока неизвестно, где находится эта таблица в бинарнике и как там идёт индексация, а также адресация и есть ли где-то значение размера этой таблицы?
Ещё в интернете ища информацию, натыкался на информацию о том, что существует прога для автоматического изменения текста с его длинной, ремаппингом и т.п., а также что люди сами писали подобные программы. Гипотетически это возможно, но как бы это выяснить...
Может кто-от посоветует какие-нибудь статьи по данному вопросу (локализации текстовых констант в ЕХЕ)

P.S.: Опытного человека, моё сообщение может показаться ламерским бредом... но хочется расти в творческом плане и в одиночку без глупых вопросов не обойтись.

P.P.S.: Я доделываю русскую локализацию одной игры.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Ответов
Siberian GRemlin
Jul 2 2007, 09:43
Сообщение #2


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)





Вот смотри, возьмём строчку "The poison..." её легко найти. Справа есть стрелочка, как я понял, ведущая туда где ?первый? раз обращаемся к ней. Как видно в подсказке, там как раз изврат, но думаю ты сам туда перейдёшь и посмотришь. Вот как там менять адрес, указывающий на начало строки?

В большинстве же случаев всё гораздо проще, как чуть ниже на снимке, например строчки как "The flask is now filled.....", там смотрим и видим просто указатель на эту строку, который и меняем на новый, после изменения длин строк.

P.S.: Ещё меня очень сильно угнетает, что в Hex View-A (16ричный режим просмотра) слева вместо стандартного смещения, какая-то хрень, типа dseg:####, ovr###:#### и т.п.
Можно сделать отображение смещений привычное глазу моему? =)

P.P.S.: Я завершил изменение размеров менюшек - всё вообще красиво теперь смотрится! 8 ) Никогда не думал, что я до такого дойду, но очень мечтал! Ура! =)

P.P.P.S: Есть ещё одна задачка - выставить показ текста в CD версии по умолчанию как в Floppy версии, а то получается, что вступление без вывода текста... Придётся пинать одного хакера знакомого, который всегда занятой.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Jul 2 2007, 15:18
Сообщение #3


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,355
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



Так, у тебя какая версия IDA? У меня IDA Pro Adv 4.8.0.847 и у меня эти строчки вообще как данные - т.е. там даже ссылок на их начало нет. Юзал на .EXE файле, который ты мне когда-то присылал, от оригинальной, английской версии. Сейчас ещё попробую IDA новую достать...
А "DATA HREF" - это тебе IDA подсказывает с какого места на эту константу ссылаются.
Наведи курсор или щёлкни мышкой по "aThePoison___" и нажми X - появится список мест кода, где идёт ссылка на эту строку. Щёлкаешь два раза по любому - и тут же туда переходишь. Вот там тебе адрес и нужно менять.

Насчёт смещений - не знаю. Никогда не требовалось, а если и требовалось, то по коду искал. (*улыбается*)
BTW, dseg:#### - это данные (сегмент данных), ovr### - это оверлей (если заметил - странный кусок в хвосте .EXE).
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Сообщения в этой теме
Siberian GRemlin   Локализация EXE   Jun 29 2007, 16:52
-=CHE@TER=-   P.P.S.: Я доделываю русскую локализацию одной игры...   Jun 29 2007, 18:54
Siberian GRemlin   Да. Её родимую. =) Сокращать строки не приемлимо -...   Jun 30 2007, 04:15
-=CHE@TER=-   Siberian GRemlin! А чем тебе не нравится SCUMM...   Jun 30 2007, 12:20
Siberian GRemlin   'Если хочешь, чтобы что-то было сделано хорошо...   Jul 2 2007, 05:04
-=CHE@TER=-   Пока есть только 1 проблемка, когда адрес на начал...   Jul 2 2007, 07:11
Siberian GRemlin   http://img213.imageshack.us/img213/6595/kyrandiast...   Jul 2 2007, 09:43
-=CHE@TER=-   Так, у тебя какая версия IDA? У меня IDA Pro Adv 4...   Jul 2 2007, 15:18
Siberian GRemlin   У меня такая же IDA, хотя вчера нашёл в локальной ...   Jul 2 2007, 23:03
-=CHE@TER=-   У меня такая же IDA, хотя вчера нашёл в локальной ...   Jul 3 2007, 08:21
Siberian GRemlin   Прошлый был от Floppy версии, я перевожу полную CD...   Jul 3 2007, 12:06
-=CHE@TER=-   Понятно. Хотя этот .EXE файл тоже не лучше - на ст...   Jul 3 2007, 16:40
Siberian GRemlin   Понятно. Хотя этот .EXE файл тоже не лучше - на ст...   Jul 4 2007, 04:50
Siberian GRemlin   Я тут колупался. В итоге удалось изменить длины ст...   Jul 4 2007, 08:11
-=CHE@TER=-   А можно определение Overlay'я? :rolleyes:Если ...   Jul 4 2007, 09:26
Siberian GRemlin   Не забывай, что ты изменяешь адрес начала строки....   Jul 4 2007, 15:10
-=CHE@TER=-   Это как бы не ответ на мой вопрос.Тогда ставь вопр...   Jul 4 2007, 16:15
Bourn   Все просто - находим пустой адрес(можно и конец ех...   Sep 2 2008, 18:22


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0 -

 



Упрощённая версия Сейчас: 12th May 2024 - 10:37