Adoreshare Video Converter Genius
Цитата: 78SergeyЕсли есть время, помоги, пожалуйста, найти растяжкиВ прошлой версии я сам находил, в этой
-
Оффлайн
Автор темы
Звание: Ветеран
Команда сайта
Сообщений: 946
Создано тем: 79
Рейтинг: 8
Репа: (131|131|0)
Баллы: 1681
Был: 2024-12-12 23:16
Лайков: 168
Цитата: 78SergeyЕсли есть время, помоги, пожалуйста, найти растяжки
В прошлой версии я сам находил, в этой автор сменил компилятор QT 4.1.0 на PE32, теперь не могу найти.
В прошлой версии это было:
Просмотр оригинала m_labOriginal
Исх.пропорции m_radOriginalAspect
Исх.размер m_radOriginalSize
Во весь экран m_radScreen
Субтитры m_labSub
Странно, эти строки (как m_radOriginalAspect) по-прежнему есть в radialix, а в отладчике они не находятся.
Открой программу в отладчике x64Dbg (я работал с оригинальным файлом). Перейди на вкладку "Memory Map" и задай поиск паттерна на базе строки, к примеру, "m_labOriginal" (вводи строку в поле "Unicode"). А можно отталкиваться от строк на элементах управления....
Рис. 1
В коде программы будет найден 1 такой паттерн. Перейди по найденному адресу. Ты окажешься в дампе на искомой строке. Сам ресурс строки начинается с сигнатуры FFFFFFFF (это метка начала строки). Установи выделение на первый байт ресурса строки и задай поиск перекрестных ссылок на этот адрес. Так мы найдем в коде место, где вызывается эта строка (1).
Рис. 2
Изучаем код на предмет координат и размеров. Как видим, в данном случае это всего лишь функция чтения строки с именем элемента управления. Поэтому ставим курсор на адрес начала функции и задаем поиск перекрестных ссылок (см. рис. 2 (2)). Будет найдена одна ссылка. Переходим по ней в код программы (1). Ниже по коду обрати внимание на операции с регистром XMM0. Это идет чтение и запись данных с размерами элемента управления "m_labOriginal" (2).
Рис. 3
Ресурс с размерами зашит в коде и указан относительными координатами X1Y1 - X2Y2, которые определяют прямоугольную область, выделяемую под элемент. Высота элемента вычисляется как разница значений координат по оси X, а ширина — разницей значений координат по оси Y.
Перейди в дамп на адрес, из которого читаются данные в регистр XMM0.
Рис. 4
Чтобы удобно было их редактировать, необходимо переключить формат отображения данных на десятичный (контекстное меню "Integer -> Signed long (32-bit)"). Получится вот так:
Рис. 5
Кстати хорошо видно, что здесь указаны размеры и других элементов управления окна программы. Редактировать просто: выделяешь значение, нажимаешь клавишу Пробел (или смотри команду редактирования значения в контекстном меню) и вводишь свое.
Подбирать нужные значения можно в режиме отладки, установив точку останова (ВР) на инструкцию чтения данных в регистр XMM0.
Таким образом корректируем размеры необходимых элементов управления.
Чтобы найти координаты местоположения элемента, нужно подняться по коду на начало текущей функции и найти перекрестные ссылки. Перейти по ссылке и исследовать код. Например, это будет в следующем участке кода:
Рис. 6
Также можно определить примерные координаты по снимку окна программы в графическом редакторе и выполнять поиск похожих или близких значений. Как это делается, уже на раз было рассказано и показано на страницах форума.
В итоге должно получится примерно так (в случае перевода строк подобным образом):
Изображение кнопки (но можешь нарисовать и свою, просто сделай ширину несколько больше, у меня она 100 пикс.):
Удачи!24 июля 2017 - 14:39 / #1 -
Оффлайн
Звание: Эксперт
Мастер
Сообщений: 532
Создано тем: 52
Рейтинг: 6
Репа: (269|269|0)
Баллы: 2551
Страна: не указана!
Был: 2024-11-20 20:43
Лайков: 264
Leserg, огромное спасибо за помощь24 июля 2017 - 15:39 / #2