Последние сообщения

Страницы: [1] 2 3 4 5 6 ... 10
1
доброго времени суток, помогите пожалуйста русифицировать программу и кад плагины к программе  Leica DISTO transfer software for PC, очень нужно для работы, предлагайте цены за ваши труды
2
Место, где можно отдохнуть от локализации... / 20 лет проекту!
« Последний ответ от ZeroChaos 30 Марта 2021, 14:37:53 »
Сегодня нашему сайту исполнилось 20 лет. Поздравляю всех! Спасибо всем, Друзья, оставайтесь с нами!
3
RusMe - РусМи! / Re: Опять про удлинение строк
« Последний ответ от миха04 23 Февраля 2021, 16:54:15 »
Проблема разрешилась достаточно просто - нужно в Restorator извлекать ресурсы в формате .bin и редактировать в NotePad++. Остался малюсенький затык - при попытке поменять строку выбора языка, например Ger на Rus, немецкая локаль пропадает. Самое интересное, что в Hex перед строкой с языками Eng,...Ger,Ita код D0BF, то есть D0BFEng,...Ger,Ita
4
RusMe - РусМи! / Re: Опять про удлинение строк
« Последний ответ от миха04 20 Февраля 2021, 09:45:10 »
Ещё вот что, между строк вставлены коды типа начала текста, конца текста и так далее. Это хорошо видно, если файл открыть в NotePad ++. Это как-то влияет на длину строки и как с этим бороться? Я заметил, что строки надо переводить строго соблюдая количество символов и лишние, от оригинала, заменять пробелами. Забивать нулями нельзя, появляются проблемы.
5
RusMe - РусМи! / Опять про удлинение строк
« Последний ответ от миха04 17 Февраля 2021, 12:12:00 »
Всем доброго дня. Снова столкнулся с проблемой удлинения строк и вероятнее всего по переносу на новый адрес, так как строки получается писать в UTF-8, а это слишком много места занимает, что совершенно не вариант из-за смещения адресов. На этот раз плагин ArchiFrame к ARCHICAD 22. Файл имеет имя ArchiFrame22_64.apx, многоязычный. Строки в бинарных ресурсах. В CFF Explorer, по смещению, можно определить VA, но в отладчике x64dbg виртуальный адрес найти не удалось, вероятно что-то делаю не так. Если возможность справиться с проблемой?
Файл https://disk.yandex.ru/d/XO7ISTNRgRlE1g
6
RusMe - РусМи! / Re: Удлинение "неудлиняемых" строк
« Последний ответ от Flyer Dell 09 Августа 2020, 17:43:47 »
Что-то у вас совсем все плохо. Вам нужно только определить, откуда программа читаем прямые ссылки и изменять только их.  Вы нашли код цикла, где алгоритм вычисляет местоположение прямой ссылки для каждой конкретной строки. Он считывает этот прямой адрес и передает дальше по назначению. Вы проходите на место записи этой прямой ссылки и меняете только её.  :smoke:

Я не буду расписывать поиск нужных строк. С этим у вас проблем нет. Далее опишу действия без использования отладчика.

Искомая строка "De-ess" находится в файле по смещению: 15CA3C0
screen1.png

Определяем виртуальный адрес для этого смещения, используя инструмент CFF Explorer
screen2.png

Виртуальный адрес: 00000001415CC1C0
Переворачиваем байты виртуального адреса строки обратным порядком:
00 00 00 01 41 5C C1 C0 >> C0 C1 5C 41 01 00 00 00

Ищем полученную последовательность байт C0C15C4101000000 в файле и находим её по смещению 2129478.
screen3.png

Чтобы перенести строку на новое место, нужно изменить этот виртуальный адрес (00000001415CC1C0) на новый, по месту размещения переведенной строки.

Для примера я добавлю перевод строки в конце секции ресурсов.
screen4.png

Смещение новой строки: 2C55B80

Виртуальный адрес для этого смещения (используя CFF Explorer): 0000000142CA6180

Переворачиваем байты виртуального адреса строки обратным порядком:
00 00 00 01 42 CA 61 80 >> 80 61 CA 42 01 00 00 00

Идем на место записи исходного виртуального адреса и вместо него записываем новый
screen5.png

Сохраняем изменения и проверяем в работе.
screen6.png

Аналогично для остальных строк. Лучше добавить в файл новую секцию и все строки сносить туда. В итоге вы корректируете только прямые ссылки на строки. А в коде ничего не меняете.

Я вам показал, как это можно сделать без отладчика. Тоже самое можно сделать и в нем. Главное сначала нужно правильно определить формирование ссылок на строки, если они не прямые. После этого выбрать оптимальную стратегию по переносу необходимых строк. Разработчики ничего не мутят, они просто пишут код, где все прозрачно и структурировано. Я уже говорил, что в зависимости от многих факторов уже сам компилятор на этапе сборки приложения выбирает нужный алгоритм размещения данных и обращения к ним в коде. А еще берите во внимание, что каждый инструмент дизассемблер-отладчик интерпретирует данные, исходя из заложенных в него алгоритмов, и на самом деле все совсем не так, как он показывает.  :)

ОГРОМНОЕ ВАМ СПАСИБО!!!
У меня возникла аналогичная проблема, как в данной теме. Я очень долго искал её решение, перелопатив весь интернет. Но всё было безрезультатно! Всю голову себе уже переломал в борьбе с неудлинняемыми строками. И тут мне подвернулся форум ruslab. Моему счастью не было придела, когда я нашёл эту тему на нём. Я до сих пор очень рад этой находке!
ВЫ ЛУЧШИЕ!!! Сейчас большая редкость, когда грамотный, знающий человек, подробно всё расскажет, да ещё и покажет! БОЛЬШОЕ СПАСИБО вам ещё раз!!! Я бы хотел отблагодарить вас материально. Свяжитесь со мной, чтобы мы договорились как это сделать.
7
RusMe - РусМи! / Re: Удлинение "неудлиняемых" строк
« Последний ответ от миха04 14 Июня 2020, 17:28:40 »
Вот теперь понятно  :super: Большое спасибо за разъяснение  :dance:
8
RusMe - РусМи! / Re: Удлинение "неудлиняемых" строк
« Последний ответ от Krig 14 Июня 2020, 13:37:21 »
Что-то у вас совсем все плохо. Вам нужно только определить, откуда программа читаем прямые ссылки и изменять только их.  Вы нашли код цикла, где алгоритм вычисляет местоположение прямой ссылки для каждой конкретной строки. Он считывает этот прямой адрес и передает дальше по назначению. Вы проходите на место записи этой прямой ссылки и меняете только её.  :smoke:

Я не буду расписывать поиск нужных строк. С этим у вас проблем нет. Далее опишу действия без использования отладчика.

Искомая строка "De-ess" находится в файле по смещению: 15CA3C0
screen1.png

Определяем виртуальный адрес для этого смещения, используя инструмент CFF Explorer
screen2.png

Виртуальный адрес: 00000001415CC1C0
Переворачиваем байты виртуального адреса строки обратным порядком:
00 00 00 01 41 5C C1 C0 >> C0 C1 5C 41 01 00 00 00

Ищем полученную последовательность байт C0C15C4101000000 в файле и находим её по смещению 2129478.
screen3.png

Чтобы перенести строку на новое место, нужно изменить этот виртуальный адрес (00000001415CC1C0) на новый, по месту размещения переведенной строки.

Для примера я добавлю перевод строки в конце секции ресурсов.
screen4.png

Смещение новой строки: 2C55B80

Виртуальный адрес для этого смещения (используя CFF Explorer): 0000000142CA6180

Переворачиваем байты виртуального адреса строки обратным порядком:
00 00 00 01 42 CA 61 80 >> 80 61 CA 42 01 00 00 00

Идем на место записи исходного виртуального адреса и вместо него записываем новый
screen5.png

Сохраняем изменения и проверяем в работе.
screen6.png

Аналогично для остальных строк. Лучше добавить в файл новую секцию и все строки сносить туда. В итоге вы корректируете только прямые ссылки на строки. А в коде ничего не меняете.

Я вам показал, как это можно сделать без отладчика. Тоже самое можно сделать и в нем. Главное сначала нужно правильно определить формирование ссылок на строки, если они не прямые. После этого выбрать оптимальную стратегию по переносу необходимых строк. Разработчики ничего не мутят, они просто пишут код, где все прозрачно и структурировано. Я уже говорил, что в зависимости от многих факторов уже сам компилятор на этапе сборки приложения выбирает нужный алгоритм размещения данных и обращения к ним в коде. А еще берите во внимание, что каждый инструмент дизассемблер-отладчик интерпретирует данные, исходя из заложенных в него алгоритмов, и на самом деле все совсем не так, как он показывает.  :)
9
RusMe - РусМи! / Re: Удлинение "неудлиняемых" строк
« Последний ответ от миха04 12 Июня 2020, 17:41:23 »
Вот, что ещё заметил, если в регистре RDX заменить значение оригинальной строки на новую, то при запуске программы через отладчик x64dbg, видна изменённая строка. В сохранённом файле просто пустое место. При трассировке изменённой программы в отладчике, не находится точка останова на новой строке, идёт бесконечный поиск. В то время как бряк на старом адресе нормально срабатывает.
10
RusMe - РусМи! / Re: Удлинение "неудлиняемых" строк
« Последний ответ от миха04 11 Июня 2020, 22:20:19 »
Что-то я совсем запутался с этими регистрами. Для примера: строки в коде идут подряд - De-clip, Declick, De-click. При переводе De-clip остальные строки смещаются. Declick тут не переводится. В интерфейсе появляется только De-clip(Срез пика) . Вместо переведённого De-click пустое место. В команде, обращающейся к адресу строки, есть [rdx+r8], где rdx это 0х141CBE508 - адрес предыдущей строки плюс смещение r8 (0х8) = 0х141CBE510, адрес оригинальной строки. Новый адрес 0х141CBE51A. Вычитаю из нового адреса RDX и меняю в модуле регистров данные R8. Сохранить изменения в файл можно, если что-то заменялось в самом коде. В итоге убил кучу времени, но результат нулевой. Смотрел ролик Tekton, однако там несколько иначе да и отладчик другой. OllyDbg не поддерживает х64. Что не так делаю?
Страницы: [1] 2 3 4 5 6 ... 10