Войти
  1. ВКонтакте
  2. Facebook
  1. »
  2. »
  3. »
  4. Neat Video plug-ins for VirtualDub
Скрыть панель справаПоказать панель справа

Neat Video plug-ins for VirtualDub

Мастер
  1. Офлайн
  2. Команда сайта.
  3. 901 сообщений
  4. Репутация: 9
  5. Сообщение
  6. Личные данные
Полезность: 0 | сообщение № 1 отправлено 23:18, 04.02.2013
Neat Video plug-ins for VirtualDub

версия 3.0 для систем Windows 32-бит




NeatVideo это мощный и гибкий шумоподавитель для различных видеоматериалов.
Позволяет:
  • строить профили под данное конкретное устройство, чтобы максимально эффективно удалять шум;
  • настраивать уровни реакции подавления шума на различных частотах;
  • раздельно настраивать уровни подавления шума в Y, Cr, Cb каналах (или RGB, на выбор).
  • применять фильтр детализации совместно с профилем шума.

    Что имеем:
    1) Жестко-закодированные строки;
    2) Разную кодировку строк (ANSI, UTF-8).

    Инструменты:
    1) Radialix совместно с дизассемблером IDA для перевода ЖЗС;
    2) НЕХ-редактор (WinHEX) для исправления файла и модификации кода.

    Для перевода используется вылеченный от жадности файл плагина NeatVideo.vdf.


  • ------------------------------------------
    Кто ищет, тот всегда найдет!
    Мастер
    1. Офлайн
    2. Команда сайта.
    3. 901 сообщений
    4. Репутация: 9
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 2 отправлено 23:23, 04.02.2013
    После создания локализованного файла плагина в Radialix'e, необходимо в НЕХ-редакторе сделать небольшое исправление, иначе плагин не работает. В оригинальном файле в самом конце стоит байт С3:


    А после перевода в Radialix'e этого байтика нет.


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


    ------------------------------------------
    Кто ищет, тот всегда найдет!
    Мастер
    1. Офлайн
    2. Команда сайта.
    3. 901 сообщений
    4. Репутация: 9
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 3 отправлено 23:58, 04.02.2013
    Врагу не сдается наш гордый "Варяг" (плагин)!
    Продолжаем воевать с плагином. После недавней эпопеи на параллельной ветке форума, где товарищем Nexus было найдено решение по отображению кириллицы в меню плагина:
    Цитата (Nexus)
    Что нужно сделать? Для нормального отображения букв в МЕНЮ нужно файл открыть в HEX редакторе и по смещению 0FCBCF вместо 00 вбить 01. Это команда ассемблера PUSH 01 (6A 01). Для нормального отображения слова %n frame(s) (Конфигурация фильтра - вначале) нужно по смещению FCC07 заменить 0 на 1. Ну то же самое и такая же самая команда. Может где-то еще какая гадость выскочит, незнаю, не тестировал - если что, то пишите. Слегка запарился с делами, поэтому пока не до переводов.

    данная проблема не ушла совсем. В некоторых строках и сообщениях плагина кириллица так и не отображается. Причем, в одном случае все нормально (кодировка windows-1251), а в другом кракозябры.
    Вот, например, надпись "радиус" (radius):

    А вот сообщение

    Английский вариант сообщения выше

    Другое переведенное сообщение отображается нормально (кодировка windows-1251)

    Nexus, снова требуется твоя помощь. Какие теперь байты искать надо? Если бы ты рассказал принцип, то может быть я и сам бы справился. А так не совсем понятно, что искать надо.

    Я глянул ассемблерный код по указанным тобой смещениям, где команду PUSH 0 меняем на PUSH 1, но пока у меня никаких мыслей по этому поводу.


    ------------------------------------------
    Кто ищет, тот всегда найдет!
    Мастер
    1. Офлайн
    2. Команда сайта.
    3. 901 сообщений
    4. Репутация: 9
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 4 отправлено 00:11, 05.02.2013
    Скопировал сообщение в эту ветку
    Цитата (Nexus)
    Привет! Sorry за долгое отсутствие - понедельник же... Что до плагина и описания его взлома - ох... Я и сам толком не разобрался в механизме подмены кодировки (или что там это было). Механизм такой - прога считывает, к примеру, &File, потом вызывает подпрограмму, где идет туева хуча математически-логических операций (в которых я так и не разобрался), где нет ни одно API функции и не за что зацепиться, пока все не доходит до API функции KERNEL32 HeapAlloc, которая размещает в памяти уже переведенное в Юникод слово. Причем эта подпрограмма общая и для переводимых, и для непереводимых (крякозябнутых) слов. Но вот между местом, где берется непереводимое слово и подпрогой МатЛог операций есть маааленькая промежуточная подрограммулечка, байт на сорок, где и находится эта PUSH 0. Видимо это какой-то флаг, который устанавливает "использовать или не использовать символы кодовой страницы по умолчанию". Между нормально переводимыми словами такой подпроги нет. Там просто считывается слово (то есть на стек ложится адрес слова), название окна, куда это слово лепить, потом 4 байта какого-то мусора (для каждого слова разное) и, наконец, нужные нам 4 байта. Это флаги, для нормального перевода там будет 00000001, а для кряков 00000000.
    Короче, я проследил все это дело в трассировке и нашел где обнуляется стек. Это все нужно показывать на скринах, на словах это трудно подять, да и не все поймут. Вон, даже на cracklab не смогли хотябы чем помочь, в ступор загнал своим вопросом. И похоже это или невнимательность программеров, или такой компилятор. В моих же проблемных проектах немного по другому, но принцип тот же, поэтому думаю что плагин - единичный случай.


    ------------------------------------------
    Кто ищет, тот всегда найдет!
    Старожил
    1. Офлайн
    2. Администраторы
    3. 622 сообщений
    4. Репутация: 1
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 5 отправлено 00:15, 05.02.2013
    Только я через Ольку... Видишь чуть ниже переход на подпрограмму CALL 101083B0? То подпрограмма размещения слов в памяти. Так вот, смотришь откуда приходят вызовы на  101083B0, их та вроде штук 20, и все идут с вот таких маленьких подпрограмм, где находится PUSH 0 (несколько идут без них).
    Мастер
    1. Офлайн
    2. Команда сайта.
    3. 901 сообщений
    4. Репутация: 9
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 6 отправлено 00:21, 05.02.2013
    Ого wacko IDA выдала 333 обращения к этой подпрограмме. Попробую посмотреть...


    ------------------------------------------
    Кто ищет, тот всегда найдет!
    Старожил
    1. Офлайн
    2. Администраторы
    3. 622 сообщений
    4. Репутация: 1
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 7 отправлено 18:30, 05.02.2013
    Мда.. Может адресация у нас разная? Ща посмотрю...
    О Боже! Да там переходов туча! surprised Давай так, Моска не сразу строилась, я завтра еще гляну и отпишусь.

    Добавлено (05.02.2013, 16:30:40)
    ---------------------------------------------
    Пока дело в тупике... Даже не знаю что и искать. Пока известно одно - все непереводящиися предложения обрабатываются одной подпрограммой. Буду ковыряться там.


    Последний раз редактировал Nexus 00:42, 05.02.2013
    Мастер
    1. Офлайн
    2. Команда сайта.
    3. 901 сообщений
    4. Репутация: 9
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 8 отправлено 19:55, 05.02.2013
    Обратил внимание на то, что если сообщение имеет не изменяемый формат строки, то оно отображается верно. А если текст сообщения набирается из отдельных строк (т.е. 1 строка + 2 строка + ... = строка сообщения), тот такая строка отображается кракозябрами. Пока это не подтвержденный факт, т. к. мало работал с плагином и получаю от него только два сообщения (я их указал выше, в посте 3) - одно нормально (1 строка), а другое кракозябрами (из 3 строк).


    ------------------------------------------
    Кто ищет, тот всегда найдет!
    Старожил
    1. Офлайн
    2. Администраторы
    3. 622 сообщений
    4. Репутация: 1
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 9 отправлено 21:17, 05.02.2013
    Трехстрочное сообщение, как и слово ", radius:", и как предложение на начальном зеленом фоне "This is a craced NeadVideo" обрабатывается подпрогой, которая не допускает русские символы. Находится она по адресу 100EB900. И тоже туда куча переходов дет.
    Мастер
    1. Офлайн
    2. Команда сайта.
    3. 901 сообщений
    4. Репутация: 9
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 10 отправлено 21:39, 05.02.2013
    Цитата (Nexus)
    обрабатывается подпрогой, которая не допускает русские символы.

    Вот зараза какая! Тогда других вариантов нет как оставить на английском. Nexus, большое спасибо за помощь.


    ------------------------------------------
    Кто ищет, тот всегда найдет!
    Старожил
    1. Офлайн
    2. Администраторы
    3. 622 сообщений
    4. Репутация: 1
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 11 отправлено 18:48, 07.02.2013
    Подожди еще... Там еще байда со шрифтами - MS Shell Dll 2, что то сильно подозрительно кое-что напоминает. Еще поковыряюсь и отпишусь...

    Добавлено (07.02.2013, 16:48:52)
    ---------------------------------------------
    Leserg, можешь назвать какие строки переводятся именно в 1251 кодировке, а не в UTF-8? Там видимо нужно дописывать кусок своего кода. Почти у цели, но еще поковыряюсь...

    Мастер
    1. Офлайн
    2. Команда сайта.
    3. 901 сообщений
    4. Репутация: 9
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 12 отправлено 00:43, 12.02.2013
    Цитата (Nexus)
    Leserg, можешь назвать какие строки переводятся именно в 1251 кодировке, а не в UTF-8?

    Что ты имеешь в виду? Пока в проекте переведено 457 строк. Из них 65 в кодировке windows-1251, остальные - UTF-8. Те строки, что в кодировке windows-1251, часть отображается корректно, часть нет (кракозябры). В основном это строки, которые формируют сообщения различного характера (некоторые я указывал выше). Многие из этих сообщений я не могу получить при работе с плагином, поэтому не могу точно знать, какая там должна быть кодировка и верно ли отображается перевод.



    Вот еще раз пример сообщения (корректный вид сообщения нарисован в графическом редакторе):



    ------------------------------------------
    Кто ищет, тот всегда найдет!
    Старожил
    1. Офлайн
    2. Администраторы
    3. 622 сообщений
    4. Репутация: 1
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 13 отправлено 13:33, 12.02.2013
    Цитата
    Из них 65 в кодировке windows-1251, остальные - UTF-8
    Судя по коду, прога делит сообщения на UNICODE и UTF-8. Причем, UTF-8 она переводит все равно в Юникод. Она даже не задействует ни одной кодовой таблицы! Даже кодовую талицу по умолчанию не использует. Как ты можешь переводить в 1251 и отображается нормально?! Это просто невозможно! Или Радиаликс пишет на экране одно, а все переганяет в другое, я ведь шаблонником не пользуюсь, поэтому и не знаю... В любом случае я уже близко у цели, PUSH 0 - это просто флаг разветвления подпрограмм. Стоит 0 - сообщение уходит на обработку подпрограммы, которая игнорирует UTF-8 символы. Например, File по-русски Файл в UTF-8 HEX пишется как D0A4D0B0D0B9D0BB, подпрога же тупо вставляет в памяти между ними нули - D000A400D000B000D000B900D000BB и получается белиберда. Стоит PUSH 1 - уходит сообщение на подпрограмму трансформации UTF-8 в UNICODE. Сейчас и занимаюсь переносом этого куска кода куда нужно.
    Мастер
    1. Офлайн
    2. Команда сайта.
    3. 901 сообщений
    4. Репутация: 9
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 14 отправлено 14:06, 12.02.2013
    Цитата (Nexus)
    Как ты можешь переводить в 1251 и отображается нормально?!

    Но так и есть! Radialix работает верно (как показывает так и делает). Вот смотри в НЕХ-редакторе, часть секции с переведенными строками, которые добавил Radialix. Согласно выбранным установкам кодировок для строк, они так и записаны.



    ------------------------------------------
    Кто ищет, тот всегда найдет!
    Старожил
    1. Офлайн
    2. Администраторы
    3. 622 сообщений
    4. Репутация: 1
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 15 отправлено 02:57, 13.02.2013
    Ха! Значит я ошибся! Просто этот кусок кода не увидел. Я то думал что нужно строки переводить с UTF-8 в Юникод. А тут, оказывается, еще берется кодстраница по умолчанию. Ну так это совсем другое дело! Вбивай некорректные строки не в UTF-8, а в 1251 кодировке. А в самом файле нужны вот такие очередные изменения :
    По смещению 00 0E AD 46 поменять E8 B5 52 FF FF на E8 05 74 FF FF
    Это CALL 100E0C00 меняется на CALL 100E2D50.
    CALL 100E0C00 просто встраивает между символами нули, например, A1 A2 A3 - будет A1 00 A2 00 A3 00. Ну а в Юникоде такое содержание знаете как будет отображаться...
    CALL 100E2D50 уже использует API функцию MultiByteToWideChar, где перед ним устанавливается флаг "Использовать кодовую страницу по умолчанию CP_ACP". Вот она и нужна была.
    Нужно еще плагин тестить, может где бока вылезут.
    Veikko
    1. Гости
    Полезность: 0 | сообщение № 16 отправлено 03:50, 13.02.2013
    Буквально до сегодня бился с такой проблемой. При переводе файла qm основной перевод отображается верно, часть - кракозябры. Манипуляции с кодовыми страницами ничего не дали. Читал на каком-то форуме - некоторые программы подгружают свой определенный шрифт. Короче говоря, проблему победил - но пока сам не понял как. Смех и грех - просидел часов 16, перепробовал все возможное. Случайно получилось. Возможно, плагин использует свой встроенный фонт, а Винда его неправильно интерпретирует. Получается так - прога обращается при работе к своему фонту, стандартному для Винды, но не поддерживающему кириллицу. Винда подменяет на стандартный, например, Ариал. А в настройках фонта 0. Типа пустая страница и менять не из чего. Не знаю, насколько понятно написал - для меня это тоже первый случай.
    Мастер
    1. Офлайн
    2. Команда сайта.
    3. 901 сообщений
    4. Репутация: 9
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 17 отправлено 04:31, 13.02.2013
    Цитата (Nexus)
    По смещению 00 0E AD 46 поменять E8 B5 52 FF FF на E8 05 74 FF FF
    Это CALL 100E0C00 меняется на CALL 100E2D50.

    Попробую! agree

    Цитата (Veikko)
    Короче говоря, проблему победил

    Ты напиши последовательность действий, где и что менял и на какие данные менял. Со временем может станет ясно. Лично у меня это первый опыт работы с приложениями на QT. И как я вижу, способы использования этой библиотеки может быть разный, но проблем от неё с кодировками выше крыши. Мне вот интересно, Radialix для "чистых" приложений QT позволяет установить кодек, небольшой файл QTPatch32.1251.dll. Так вот, что он делает и каков механизм работы с ним локализованного файла. upset

    Добавлено:
    Проверил на скорую руку - РАБОТАЕТ!



    Но по правде не понял, это только для одного сообщения будет работать или для всех строк в кодировке windows-1251? А ладно, утро вечера мудренее.


    ------------------------------------------
    Кто ищет, тот всегда найдет!
    Veikko
    1. Гости
    Полезность: 0 | сообщение № 18 отправлено 05:41, 13.02.2013
    Последовательность такова. Подменил файл c_1252.nls физически, а не в реестре. Перезагрузка. Установил в языковой панели все выходы на русский. В Радиаликсе сменил шрифт  перевода на Ариал. Х...знает как получилось. Но работает. Да - екзешник пропатчил с установкой кодека. Поставил заплатку (кодек) на QT. Екзешник тоже в проект загнал. Там так нахомутали - все равно часть строк в коде переводить. Не пойми как это работает. Но кракозябры исчезли!!! Перевел пять строк в коде - аналогичные в файле qm поставил - только для чтения. Запускаю оригинальный екзешник - показывает траблы. Запускаю патченый - все на русском корректно. Ты, Сергей, извини, что так пишу - сделать иногда могу, рассказать - язык заплетаецца... Что делает QTPatch32.1251.dll - точно не знаю, вероятно поправляет кодовые таблицы или фонты. Возможно, лучше написать Головину - он всегда оперативно поддерживает.
    Не по теме: UPX Радиаликс корректно распаковывает автоматом. Полагаю, Головин мог бы Радиаликсу прикрутить возможность распаковывать многие защиты... Только авторские права и прочая бла-бла-бла... Возможно, если попросить в привате за толику малую... То-же касается ресурсов, которые Радиаликс не ест.
    Мастер
    1. Офлайн
    2. Команда сайта.
    3. 901 сообщений
    4. Репутация: 9
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 19 отправлено 18:48, 14.02.2013
    Кому интересно или очень надо, тестируем переведенный плагин: Доступно только для пользователейСКАЧАТЬ

    Если ошибок и замечаний не будет, то считайте это окончательным вариантом.
    Особая благодарность Nexus. Без его помощи перевод был бы невозможен.

    Цитата (Veikko)
    лучше написать Головину - он всегда оперативно поддерживает.

    Веришь, нет. Но я уже второй месяц пишу и отправляю баг-репорты - ни привета, ни ответа. Да и посмотри на форум поддержки, впечатление, что проект умер.


    ------------------------------------------
    Кто ищет, тот всегда найдет!
    Мастер
    1. Офлайн
    2. Команда сайта.
    3. 901 сообщений
    4. Репутация: 9
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 20 отправлено 18:38, 17.02.2013
    На текущий момент (17.02.2013 16:37) файл плагина скачали 36 раз. Раз замечаний нет, значит всех все устраивает. Посему...

    ПРОЕКТ ЗАКРЫТ!


    ------------------------------------------
    Кто ищет, тот всегда найдет!
    Veikko
    1. Гости
    Полезность: 0 | сообщение № 21 отправлено 21:31, 17.02.2013
    Цитата (Leserg)
    Раз замечаний нет, значит всех все устраивает.
    Мы - Рабинович и Абрамович, с одной стороны, вы - Одесское пароходство с другой стороны...
    А с Радиаликсом будем жить надеждой, что это временно.
    Старожил
    1. Офлайн
    2. Администраторы
    3. 622 сообщений
    4. Репутация: 1
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 22 отправлено 23:22, 17.02.2013
    Цитата (Leserg)
    Раз замечаний нет, значит всех все устраивает
    На такой перевод и грех жаловаться. Ну а раз все молчат... Молчание - знак согласия happy
    Новичок
    1. Офлайн
    2. Проверенные
    3. 32 сообщений
    4. Репутация: 0
    5. Сообщение
    6. Личные данные
    Полезность: 0 | сообщение № 23 отправлено 21:12, 21.02.2013
    Цитата (Leserg)
    ПРОЕКТ ЗАКРЫТ!

    Успешно выполненный проект понравился многим и ошибок не обнаружено!!!
    Сбои, глюки при работе отсутствуют.


    Ссылки были размещены мной в четырёх местах, сегодня опять запросили на ru-board, затерялись прошлые во множестве постов.

    Авторам русификации почёт, уважение и благодарность от принявших данный вариант на вооружение!

    Последний раз редактировал UncleGenja 21:27, 21.02.2013
     
    Перейти
    Найти

    Доступ закрыт.

    1. Вам запрещено отвечать в темах данного форума.

    Последние темы

    1. Radialix 3
      Автор: pangasiys Сегодня, 13:27
    2. PartitionGuru 4.9.3.409_х86_х64_RUS
      Автор: Lupik2 Вчера, 11:30
    3. Задавайте вопросы по русификации и мы...
      Автор: Xabib2302 23:24, 18.11.2017
    4. Поговорим?
      Автор: kurkoff1965 11:15, 18.11.2017
    5. QTranslate 5.4.1 + Portable
      Автор: gazon01 07:21, 15.11.2017
    6. Promt Professional 9.0 Giant &...
      Автор: WYLEK 15:04, 14.11.2017

    Изменения статуса

    1. Никто не менял личный статус.