При переводе программ некоторые ее ресурсы зашиты в теле самой программы, и часто приходиться переводить либо через WinHEX или OgreGUI. Но на днях столкнулся такой проблемой, что эти программы не помогли, потомучто строка имеет фиксированную длину. Но можно ее увеличить при декомпиляции exe-файла, редактируя код. Но я новичок в этом деле, поэтому не знаю .что надо изменять. Знаю, что нужно искать строковые референсы с требуемым словом, ставить безусловный переход на свободный адрес. Там далее прописывать код, который включает в себя признаки начала строки и ее конец, потом искать референс на строку и менять. Как это все сделать я не знаю. Подскажите, пожалуйста.
Приступим к телепатии... Ты хочеш перевести к примеру 'About', а ' О программе' у тебя не влезает? Или что?
Сорри, я хочу перевести Abee CHM Maker Pro 1.9.5 и одно слово не помещается в WinHEX. Слово это Caption хочу перевести как название или заголовок.
Ищите в файле свободное место. Такие "дырки" обычно присутствуют в конце секций или между процедурами. Нужна полная уверенность в том, что это действительно неиспользуемое пространство. Помещаете туда локализованную строку. Находите в коде ссылки на оригинальную строчку (для этого нужен дизассемблер: HIEW, IDA Pro, ...) и исправляете адрес, чтобы он указывал на новую строчку. Мне лично проще искать ссылки в IDA (и "дырки" тоже), а править их потом в HIEW.
Аналогичная проблема была при локализации игр неоднократно. Была для этого сделана тулза, которая сканировала файл на строки, выводила их, потом отредактированные и возможно увеличенные строки клались с специально созданную новую секцию, куда и перенастраивались ссылки. При этом, длина новой строки могла быть любой.
Сделал! Мне в этом помог форум http://blackstar.clanbb.ru/ Тему можно закрывать Она не находит строки, зашитые в теле программы!