вторник, 20 декабря 2011 г.

win32k!aatomSysLoaded 64bit

а вот например механизм поиска subj под 32битными windows давно известен
Под 64бита же на первый взгляд все выглядит намного грустнее - на aatomSysLoaded всего три ссылки вида lea и они крайне неудобны для поиска.
Однако если запустить мой замечательный IDA plugin, то ссылок на aatomSysLoaded становится уже целых пять штук ! И среди них есть например вот такой кусок кода в ф-ции xxxLoadHmodIndex:

                   lea     r14, cs:0FFFFF97FFF000000h
                   lea     rdx, [rsp+498h+SourceString]
41 B8 04 01 00 00  mov     r8d, 104h
41 0F B7 8C 76 40  movzx   ecx, word ptr [r14+rsi*2+2DA440h] ; 0FFFFF97FFF2DA440h
                   call    UserGetAtomName


FFFFF97FFF2DA440 - это например и есть нужный адрес. В rd8 загружается 3ий аргумент для вызова UserGetAtomName, а в rcx - атом из нужной нам таблички. Соотв-но поиск упрощается до сигнатуры
41 B8 04 01 00 00 41 0F B7 YY ZZ XX XX XX XX
Здесь байты XX дадут нам смещение на aatomSysLoaded от начала модуля win32k.sys. Легко можно убедиться что такая сигнатура является уникальной для всего модуля как под windows 7, так и под все версии vista

Точно так же можно найти subj под 64битными w2k3/xp - только сигнатура будет другой. Какой именно - оставляю вам в качестве домашнего задания, бгг

Комментариев нет:

Отправить комментарий