Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
Нужно изменить цвет шрифта и сам шрифт в DLL
Привет Гуру C++, очень нужна помощь, сам не разобрался что и как по сути. Проблема в том что есть один плагин, и унего есть ресурсы внутри такие как PNG, файлов таблиц и шрифтов нет. Очень нужно изменить цвет шрифта, или помочь создать патч быстрой замены цвета.. Размер кода 900Кб и написан он на C++. Пару дней возился с этим пустяком, и ничего не решил..

Пример.
https://thumb.ibb.co/fD6drw/nice.png

Нашел что за текст в файле отвечает: 
GetSysColorBrush
SetTextColor
CreateFontIndirectA - Если изменить на: DeleteObject (шрифт стает без формата, большим но уже другим, только вот цвет остается зеленым, #476E08)

Нужные параметры:
Цвет мне нужен #FFC09F и для варианта #383529 чтобы выбрать.. 
Если возможно заменить Шрифт на: Arial Narrow, жирный, размер: 10px для lcd 12

Само устройство))) скрин
https://ibb.co/kJxJrw

Все файлы:
1. Dll для патчинга
2. HOST для запуска VST (Portable)
3. Видео как запускать VST на хосте

Прямая ссылка: 
https://fex.net/get/875713546464/237252862




Буду благодарный за любую помощь.
1 | Автор: power2009 | 2018-02-04, 13:26   |  Репутация: [ + 0 ]
Хорошая помощь, должна оплачиваться, пиши в ЛС. =)
2 | Автор: 1head | 2020-06-04, 12:58   |  Репутация: [ + 0 ]
Не плохо.
3 | Автор: ProgerCC | 2020-06-28, 17:36   |  Репутация: [ + 0 ]
можете и мне помочь пожалукйста
4 | Автор: lerchkk | 2021-06-18, 12:20   |  Репутация: [ + 0 ]
4 | Автор: lerchkk | 2021-06-18, 12:20   |  Репутация: [ + 0 ]
сейчас создам тред поомгите пж
5 | Автор: lerchkk | 2021-06-18, 12:20   |  Репутация: [ + 0 ]
секунду
6 | Автор: lerchkk | 2021-06-18, 12:20   |  Репутация: [ + 0 ]
Здравствуйте!
Мне нужно изменить цвет шрифта и сам шрифт в файле DLL. Кто-нибудь может подсказать, как это сделать? Я пробовал редактировать файл с помощью ресурсов, но не добился желаемого результата. Буду благодарен за любые советы или примеры кода.
Заранее спасибо!


Автор финансового портала https://tradernew.pro/
7 | Автор: Viktor_1509 | 2024-06-06, 12:30   |  Репутация: [ + 0 ]
Привіт! Розумію твою задачу — потрібно змінити колір шрифта та шрифт на конкретний у плагіні, який написаний на C++. Давай розглянемо основні кроки та можливі підходи до вирішення цього питання.
1. Розбір коду та ресурсуТи вже знайшов функції, які відповідають за кольори та шрифти:
GetSysColorBrush — отримує кисть для системного кольору.SetTextColor — встановлює колір для тексту.CreateFontIndirectA — створює шрифт з вказаними параметрами.Якщо хочеш змінити колір шрифта, найпростіший спосіб — це замінити параметр кольору, що передається в SetTextColor.
2. Заміна кольору шрифтаДля того, щоб змінити колір на #FFC09F або #383529, тобі потрібно:
Знайти місце в коді або в ресурсах, де викликається SetTextColor.Заміни параметр кольору на потрібний в форматі RGB, наприклад:Для #FFC09F: RGB(255, 192, 159)Для #383529: RGB(56, 53, 41)3. Заміна шрифтаЩоб встановити шрифт Arial Narrow, жирний, розмір 10px для LCD дисплеїв (12px), ти можеш використати CreateFontIndirectA з відповідними параметрами шрифта:
LOGFONT logFont;ZeroMemory(&logFont, sizeof(LOGFONT));
logFont.lfHeight = 10; // або 12 для LCD
logFont.lfWeight = FW_BOLD;
strcpy_s(logFont.lfFaceName, "Arial Narrow");

HFONT hFont = CreateFontIndirectA(&logFont);
Після цього треба передати цей шрифт в SetFont або іншу функцію, яка застосовує шрифт до тексту.
4. Створення патчаДля патчінгу можна зробити наступне:
Використати дизасемблер або дебаггер, щоб знайти місця виклику SetTextColor, CreateFontIndirectA та змінити параметри.Або, якщо це DLL, замінити ці функції в коді на потрібні тобі з новими значеннями кольору й шрифта.5. Технічні засобиДля патчінгу можна використовувати інструменти як x64dbg, IDA Pro, або OllyDbg, щоб знайти і змінити параметри функцій.Для автоматичного патчінга можна використовувати Hex Editor або написати свій патч на Python або C++, який замінить байти в DLL-файлі.
8 | Автор: DenH13855 | 2025-01-09, 17:37   |  Репутация: [ + 0 ]
Здравствуйте!
Изменение цвета шрифта и самого шрифта в DLL-файле — это задача, которая требует манипуляции с кодом или ресурсами DLL. Если вы хотите изменить текстовые параметры в DLL, вам нужно будет выполнить несколько шагов. Давайте разберемся, как это можно сделать.
1. Работа с ресурсами DLLЕсли вы пробовали редактировать ресурсы, возможно, вы пытались изменить именно строки, содержащие шрифты или цвета. Однако, в DLL часто используются функции, которые на самом деле рисуют текст с помощью API Windows (например, CreateFont, SetTextColor и так далее). Вот как это может выглядеть:
Изменение шрифтаПоиск функций, которые создают шрифт:Чаще всего для создания шрифта используется функция CreateFont или CreateFontIndirect.Вам нужно найти место в коде, где задаются параметры шрифта (например, размер, стиль и шрифт).Пример:cppКопіювати кодLOGFONT logFont;ZeroMemory(&logFont, sizeof(LOGFONT));logFont.lfHeight = 12; // Высота шрифтаlogFont.lfWeight = FW_BOLD; // Жирный шрифтstrcpy_s(logFont.lfFaceName, "Arial Narrow"); // Шрифт Arial NarrowHFONT hFont = CreateFontIndirectA(&logFont);Замена на нужный шрифт: Если ваш DLL использует какой-то другой шрифт, вы можете просто заменить его на Arial Narrow, жирный, и задать нужный размер.Изменение цвета текстаПоиск функции, которая изменяет цвет текста: Обычно это функция SetTextColor, которая применяется в контексте рисования текста.Пример:cppКопіювати кодSetTextColor(hdc, RGB(255, 192, 159)); // Устанавливает цвет шрифтаИзменение цвета: Вам нужно найти место, где используется SetTextColor, и заменить цвет на желаемый (например, RGB(255, 192, 159) для цвета #FFC09F).2. Использование инструментов для патчингаЕсли вы хотите патчить DLL-файл, вам нужно воспользоваться инструментами для работы с исполняемыми файлами:
Дизассемблеры и дебаггеры:x64dbg — мощный отладчик, который позволяет вам анализировать исполняемые файлы и менять их код.IDA Pro — более сложный инструмент для дизассемблирования, который позволяет анализировать и изменять двоичный код.OllyDbg — еще один популярный дебаггер, который также позволяет вам изменить байты в DLL.Патчинг DLL:Откройте DLL в одном из вышеупомянутых инструментов.Найдите инструкции, которые отвечают за создание шрифта или установку цвета текста.Измените параметры для шрифта и цвета, затем сохраните файл.3. Пример кода для замены шрифта и цветаЕсли вы хотите вручную изменить шрифт и цвет в программе, вы можете использовать следующий код:
cppКопіювати кодLOGFONT logFont;ZeroMemory(&logFont, sizeof(LOGFONT));logFont.lfHeight = 12; // Устанавливаем размер шрифтаlogFont.lfWeight = FW_BOLD; // Устанавливаем жирный шрифтstrcpy_s(logFont.lfFaceName, "Arial Narrow"); // Устанавливаем шрифт Arial NarrowHFONT hFont = CreateFontIndirectA(&logFont); // Создаем новый шрифт// Получаем контекст устройства для рисованияHDC hdc = GetDC(hwnd);SetTextColor(hdc, RGB(255, 192, 159)); // Устанавливаем цвет шрифтаSelectObject(hdc, hFont); // Выбираем шрифт// Рисуем текстTextOut(hdc, 10, 10, "Hello, World!", 13);// ОчисткаDeleteObject(hFont);ReleaseDC(hwnd, hdc);4. Использование Hex-редактораЕсли вам нужно патчить DLL-файл напрямую, вы можете использовать Hex-редактор для замены байт. Например:
Откройте DLL-файл в Hex-редакторе.Найдите строку или байты, которые отвечают за цвет или шрифт.Замените соответствующие байты на нужные значения цвета или шрифта.ЗаключениеДля изменения шрифта и цвета текста в DLL вам нужно либо изменить исходный код, либо патчить DLL с помощью инструментов, таких как дизассемблеры или Hex-редакторы. Возможно, вам придется внимательно искать места в коде, которые отвечают за рисование текста, и заменять параметры шрифта и цвета на нужные.
Если у вас есть доступ к исходному коду DLL, это значительно упростит задачу. Если нет — придется использовать методы дизассемблирования и патчинга.
9 | Автор: DenH13855 | 2025-01-09, 17:38   |  Репутация: [ + 0 ]
9 | Автор: DenH13855 | 2025-01-09, 17:38   |  Репутация: [ + 0 ]
  • Страница 1 из 1
  • 1
Поиск: