Строки зашитые в код

На примере программы Registry Winner я покажу, как это делается. Например, нужно перевести BHO Manager,
  1. Оффлайн

    Автор темы

    WYLEK

    Звание: Легенда

    Админ

    Сообщений: 2179

    Создано тем: 315

    Рейтинг: 10

    Репа: (245|245|0)

    Баллы: 3405

    Был: 2024-04-28 20:29

    Лайков: 196

    На примере программы Registry Winner я покажу, как это делается. Например, нужно перевести BHO Manager, на русском это BHO менеджер.



    Плакаю…

    Смешно порой смотреть на гордые заявления русификаторщика о 90% или 95% переводе программы. На поверку выходит 40% или 70%. Графику перерисовывать, как черт ладана боятся, ну а если, например, как в Registry Winner она занимает большой объём, и если не переделать, то будет прикольный вид. Ну да Бог с графикой, строки, зашитые в код, переводят с пень на колоду, и если удлинить не получается, то идёт сплошной гоблин…

    Ближе к телу…

    Как убить гоблина.

    Инструменты для этого дела:
    1. Hex-редактор (FlexHEX Editor);
    2. Hiew (HEX-редактор и дизассемблер);
    3. OgreGUI
    4. Подопытный кролик Registry Winner

    Действия-злодействия такие: Кинуть в папку с программой Hiew ехе-шник Registry Winner , запустить Hiew и выберите – RegistryWinner.exe



    Нажмите F4 и выберите HEX



    Дальше, запускаем в FlexHEX и ищем слово по UNICODE



    Вот и нашли, но русский вариант на одну букву больше.
    Смотрите, место есть для буквы впереди слова.



    Нажимаем F5 и вбиваем адрес.



    Нажимаем F6, вот и виртуальный адрес



    Создайте текстовый документ и запишите адреса. Для дальнейшего переноса слов Hiew больше пока не нужен, вы видите, что адрес в FlexHEX и виртуальный адрес на 400000 больше, просто удлиняя следующее слово, добавьте 400000 к адресу из FlexHEX. Например, адрес в FlexHEX - 00115BBB – виртуальный адрес – 000515BBB, первый 0 не берите во внимание, он нам не нужен.



    Теперь копируйте как на рисунке выше и дайте поиск в FlexHEX как на рисунке ниже



    Заходим по найденному адресу и меняем на новый адрес, (сколько нашли адресов все и меняйте) в нашем случае поменять нужно одно значение, и заметьте, адрес идёт задом наперёд, зачем это так? Открою тайну – это писал левша.



    Теперь пишем русский перевод



    Сохраняем, выходим из редактора, и смотрим, что вышло



    Но если это вам покажется длинной песней, и вы скажете, сейчас вооружусь OgreGUI, и за пять минут всё будет ладушки, пожалуйста, рассмотрим и этот вариант.



    И-и-и,
    На горе как … приблудный
    Стоит город Днепрорудный…


    Ссылок на строку то нет, но вы настырный, и делаете действия-злодействия дальше



    И-и-и
    Стою на асфальте я в лыжи обутый
    Толи лыжи не едут, толи я …….!




    Но из этого и польза будет, цмыкаем дальше, вбейте поиск слова BHO менеджер. Плюсик получается в том, что добавилась секция ресурса, и сюда можно закидывать длинные слова. Вообще то свободного места в любой программе хватает, обычно есть длинные предложения, их нужно корректно скомпоновать, и свободное место обеспечено.



    Находим в Hiew расположение слова



    Вбиваем в поиск виртуальный адрес 005156B8, измените значение на новое 00A3E000



    Сохраняем, выходим из редактора, и смотрим, что вышло.



    Я надеюсь, что гоблинов теперь будет гораздо меньше.

    16 марта 2011 - 18:39 / #1
  2. Оффлайн

    Veikko

    Забанен

    Сообщений: 127

    Создано тем: 6

    Репа: 0

    Баллы: 0

    Был: 2015-02-18 11:15

    Лайков: 1

    Я делал так. В Радиаликсе уже показывает виртуальный адрес раздвигаемого слова. В Flexe ищу это слово - смотрю сначала , есть ли рядом нули. Если нет - в пустом месте в хексе вбиваю перевод , запоминаю адрес. Перехожу в виртуальный и меняю значение.Получается - HIEW вовсе не нужен...А матерьял здоровски помог. Раньше читал твои уроки по раздвиганию - ну как горохом об стену...А тут как озарение наступило...Может слово гоблин магическое?biggrin
    Сообщение отредактировал Veikko 30 марта 2011 - 16:43
    22 марта 2011 - 05:20 / #2
  3. Оффлайн

    Автор темы

    WYLEK

    Звание: Легенда

    Админ

    Сообщений: 2179

    Создано тем: 315

    Рейтинг: 10

    Репа: (245|245|0)

    Баллы: 3405

    Был: 2024-04-28 20:29

    Лайков: 196

    В Радиаликсе уже показывает виртуальный адрес раздвигаемого слова.

    Первое, я писал эту статью, когда Radialix еще не работал с зашитыми строками в кодbiggrin
    Второе, когда Radialix показывает виртуальный адрес, то никаких инструментов не нужно - он сам перенесет слово в нужное место.
    Но IDA советую запускать в паре с Radialix всегда.
    Получается - HIEW вовсе не нужен..

    Со временем попадется программа, когда и ссылки есть и Radialix раздвигает слово,
    а все равно в программе оно смотрится обрезанным.surprised
    Например слово Add три буквы, и чтобы вы не делали в программе выводится только Доб
    Значит стоит счетчик букв (изучаем команды ассемблера), его лучше всего искать в HIEW.

    30 марта 2011 - 08:22 / #3
  4. Оффлайн

    Veikko

    Забанен

    Сообщений: 127

    Создано тем: 6

    Репа: 0

    Баллы: 0

    Был: 2015-02-18 11:15

    Лайков: 1

    Со временем попадется программа, когда и ссылки есть и Radialix раздвигает слово,
    а все равно в программе оно смотрится обрезанным.

    У меня как раз в PhotoBrush така фигня. Попробовал открыть ФлексХексом. Переводил , например , Panes. Панели не канали - последняя "и" обрезалась. А вот после Флекса все отражается путем. Просто добавил эту "и" в конце , благо место было. Поначалу , конечно , с виртуальными адресами приплясывать по твоим урокам пробовал.
    30 марта 2011 - 16:41 / #4
  5. Оффлайн

    Автор темы

    WYLEK

    Звание: Легенда

    Админ

    Сообщений: 2179

    Создано тем: 315

    Рейтинг: 10

    Репа: (245|245|0)

    Баллы: 3405

    Был: 2024-04-28 20:29

    Лайков: 196

    Просто добавил эту "и" в конце , благо место было. Поначалу , конечно , с виртуальными адресами приплясывать по твоим урокам пробовал.

    Я не об этом писалwacko
    Добавлю для ясности - и место есть, чтобы продлить слово в хексе, и Radialix видит ссылку и продлевает слово, а при запуске программы слово все равно обрезано. Счетчик букв стоит не на FF а на каждое слово отдельно. Но таких программ мало, и встретилось мне за все время пару штук.biggrin
    Переводя в Radialix, сразу просмотрите видео уроки с офсайта. Если место есть, можно добавлять не прибегая к хексу.

    30 марта 2011 - 18:05 / #5

Статистика форума, пользователей онлайн: 0 (за последние 20 минут)

---
Создано тем
1177
Всего сообщений
15352
Пользователей
17856
Новый участник
Daniel7375ysk