Этот сайт создан как клуб русификаторщиков. Для нас существуют три основных правила.
1. Мы никому и ничего не должны!
2.Один пришедший на сайт толковый русификаторщик дороже всех пользователей.
3. Мы делаем русификаторы для своего сайта, но в оригинале ими могут пользоваться все в интернете.
Вы создали инструмент применительно к 32-бит версии FontLab. Ваш алгоритм поиска и коррекции счётчиков (описан в справке к StrToCode+) основан на двухбайтовой инструкции PUSH XX (6A XX), где ХХ - значение счётчика. Причем эта инструкция находится непосредственно перед вызовом строки.
Теперь смотрим 64-бит версию FontLab. А здесь уже используется инструкция MOV со значением счётчика ХХХХХХХХ.
Как вы собираетесь автоматизировать поиск таких счётчиков? Причем работу некоторых из них можно определить только под отладчиком. -------
Ну что, испугались?
Мне на первый взгляд, с наскока, задача показалась нереальной, особенно если глянуть на примеры выше.
И потом, мне ни разу не попадались программы, в которых требовалось изменить счётчики у более чем 10-20 строк. Для десятка это легко и быстро исправлялось в отладчике, а в последующих версиях программ обычным сценарием замен для нех-редактора. Как говорится: "5 сек., и готово!".
Так вот, пересмотрел на досуге свои старые проекты, где нужно было корректировать счётчики, и обнаружил интересный факт - в большинстве случаев передача счётчика строки выполняется по уже известной вам схеме:
применительно к приложениям 32-бит PUSH (счётчик) PUSH (ссылка на строку)
применительно к приложениям 64-бит MOV (регистр) (счётчик) PUSH (ссылка на строку)
Ссылки на строки также могут передаваться посредством инструкций MOV или LEA. Но не в этом суть, главное что инструкция счётчика находится непосредственно перед вызовом строки. Возьмите эту схему за основу, а то что в неё не вписывается сообщайте пользователю о необходимости исследовании вопроса в отладчике.
О чём это говорит? Ваш инструмент имеет право на жизнь и может быть вполне рабочим помощником для других программ (РЕ-файлов). Так что не отчаивайтесь и не опускайте руки.
А вот показанные "ужасные" случаи всё равно придется разгребать вручную, но уверяю вас, их не так много.
P.S.
Цитата: NNK_RTR
Мне важно Ваше мнение
Не стоит акцентировать внимание всего лишь на одном мнении, тем более, что оно может быть ошибочным.
Здравствуйте Leserg С Вами очень интересно жить! Неплохо бы свести все Ваши наработки в единую книгу, а для разбора "ужастиков" создать отдельную главу и так и назвать ее "Ужастики" -------------------------------------- Ужастик № 1 (вероятно ужастиков больше десятка, поэтому "Ужастик № 001" (а вдруг и больше сотни) WonderFox DVD Video Converter Методом индексации строк я пользуюсь, но индексами заменяю первые буквы строки, то есть, "01ительность". Такая индексация не удлиняет строку, даже если она в кодировке UTF-8, не заставляет Radialix напрягаться и упрощает поиск ее в отладчике.
Что для меня абсолютно новое, и даже, откровение, это установка точки останова по идентификатору строку (ID #9306252.008DF26C ). Как я понимаю, такой идентификатор появляется после подключению к проекту плагина `IDA , но, разве IDA загружает программу? Я был уверен, что это адрес строки в файле, но отладчик работает с образом файла в памяти... (А, наверно нужно изменить адресацию в отладчике относительно начала файла)
Понятно, что с таким ужастиком мой инструмент не справится, разве только в качестве искусственного интеллекта подключить Ваши мозги... (но это слишком шикарно)
------------------------------------ Ужастик № 3 WinSpy++ Нужно вникать, то есть, выполнять последовательно указанные Вами действия. Но вот беда: У меня две версии WinSpy - 1.2 и 1.7, но не в одной из них при наведении курсора на "целеуказатель" подсказка не отображается. Какая версия использовалась в примере? --------------------------- Ужастик № 4 Skype Call Recorder Это от WYLEK Смотрел раньше.
Прежде всего, в команде push 7 используется push с оптокодом 6А, то есть, длина строки не может превышать 127 байт. Во втором случае вклинилась команда mov byte... Ничего страшного, просто в процессе проверки "показаний счетчика" будем проверять оба варианта (or). То есть, проблем с использованием этой программы в качестве варианта не вижу (судя по разбору)
Скачал приложение, но для его работы требуется скайп. Я почему-то сразу отверг это приложение еще на заре его популярности. Можно, конечно, купить камеру и установить, но нужно еще и получать почту (от кого). Вероятно, если не найду ничего подходящего, установлю скайп на планшет и компьютер. -----------------------------
При дальнейшей модернизации инструмента я научу его разбираться в разрядности приложения и Ваш скриншот по 64-разрядной версии FontLab очень даже пригодится.
Если можно, еще ужастиков. Пусть инструмент не сможет их осилить, просто "Для развлеченья и веселья"
Leserg, Не стоит акцентировать внимание всего лишь на одном мнении, тем более, что оно может быть ошибочным
Если можно, еще ужастиков. Пусть инструмент не сможет их осилить, просто "Для развлеченья и веселья"
Что понравилось?
iZotope RX7 64-бит (пояснение здесь, правда картинки там не сохранились) В одном файле несколько вариантов счётчиков.
1)
2)
3) А здесь один счётчик на две строки. В английском варианте нет проблем, а вот для перевода (нормального, без жаргонизмов и сокращений) нужно немного подумать.