Изменение системного цвета

Статус
В этой теме нельзя размещать новые ответы.

p1cador

cerf
Автор темы
Проверенный
221
359
Есть WinAPI приложение. В нем - листбокс с дефолтным скроллбаром. Нужно изменить цвет скроллбара (фона и каретки).
Как я понял, дефолтный цвет получается из анусаконфигурации ОС при помощи функции GetSysColor библиотеки user32.dll.
Долго не думая, решил хукнуть эту функцию и менять в ней нужные значения на свои
35390
после чего запустил приложение и обосрался: хук ведь устанавливается в начале функции main, а GetSysColor вызывается раньше нее. В итоге функция-то хукнута, но профита в этом нет.
Посмотрел на вызовы этой функции:
35392
Выглядит законно. Как я понимаю, в ds кладется адрес поля какой-то структуры внутри либы comctl32.dll. Вернемся в тело функи GetSysColor:
35393
Остановился непосредственно на чтении значения цвета из [eax+ecx*4+0x11d8], где:
eax == USER32.gSharedInfo+238 == *(user32.dll+A4BA0) == указатель на что-то,
ecx == аргумент функции (константа с msdn)
0x11d8 == неведомая хуйняконстанта
Отлично, значит по адресу *(user32.dll+0xA4BA0) + 0x11d8 начинается структура, хранящая цвета различных элементов. Проверил пару значений с мсдн:
35397

35398
Рассчитал оффсет COLOR_BTNTEXT: *(user32.dll+A4BA0) + 11d8 + 4*0x12 = 0x392260. По этому адресу лежит 0x00000000 - код черного цвета. Справедливо для BTNTEXT.
Аналогично рассчитал для COLOR_GRAYTEXT - по рассчитанному адресу оказалось значение 0x006d6d6d, что также справедливо, похоже на серый. Да и в целом эта область памяти выглядит похожей на правду, много повторяющихся байт(монохром):
35399
Указатель на этот блок с цветами лежит тут: comctl32.dll+0x76c00 (да-да, уже не user32.dll)
Окей. Заговнокодил:
35400
и даже защиту на ридонли поставил. (скрин с начала функции winMain, до создания интересующего меня листбокса со скроллбаром.
Профита ноль. Может, я вообще не в ту сторону шагаю? В чем ошибка?
ПС нужно сделать без драйверов
 

Вложения

  • 1563917733833.png
    1563917733833.png
    1.9 KB · Просмотры: 138
  • 1563917744989.png
    1563917744989.png
    1.9 KB · Просмотры: 136
  • 1563917752663.png
    1563917752663.png
    1.9 KB · Просмотры: 134
Последнее редактирование:
  • Нравится
Реакции: LaRossa
Статус
В этой теме нельзя размещать новые ответы.