· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Хитрый опкод

<< . 1 . 2 .

Посл.отвђт Сообщенiе


Дата: Сен 5, 2004 17:57:22

Прочел ссылочку. Н-да, оригинальный подход...


Дата: Сен 7, 2004 15:28:33

Почитал private, узнал много интересных вещей по сабжу.

1. Все самое интересное живет не в private\ntos, а в private\mvdm.
2. Самое интересное - это файлы bop.h, bios.c, bop_nt.c
3. C4 C4 58 00 - это ни много, ни мало, а "всего лишь" загрузка 32-битной DLL-библиотеки, на имя которой указывает DS:SI, и не просто загрузка, а еще и выполнение оттуда функции, на имя которой указывает ES:DI. Кроме того еще и DS:BX зачем-то используется.
4. В наших опытах не только AX становился равным 1, а еще и CF тоже устанавливался, и это должно было означать, что библиотека не была загружена.
5. Есть отладчик, который понимает такой опкод, и это WinDbg - он дизассемблирует это как BOP 58.

И это при том, что я еще не дочитал до конца :)


Дата: Сен 7, 2004 17:16:20 · Поправил: RobinFood

В качестве подтверждения пункта 3 из предыдущего поста привожу аттач. Работает, естественно, только на NT+.

Ну и, "чтоб два раза не вставать", мои благодарности:
leo, за разъяснения о том, как нужно читать интеловские талмуды,
skif, за подсказанное направление, в котором нужно копать,
всем остальным за моральную поддержку,
microsoft, за любезно предоставленные буквы :)

P.S. В аттаче есть "глючок" (leak), который я исправить пока не могу, так как пока не дочитал эти самые буквы - вызов BOP(58,0) выделяет запись в какой-то из своих внутренних таблиц, а для освобождения этой записи потом нужно вызывать то ли BOP(58,1), то ли BOP(58,2), то ли еще что-то в этом роде - но это уже, IMHO, мелочи :)


Дата: Сен 7, 2004 17:17:55

после правки аттач пропал :(
исправляю:

_2071854405__lock.com


Дата: Сен 7, 2004 21:20:35

2 RobinFood
Если не затруднит, нельзя ли где-нибудь разместить (например, в этой ветке в виде аттача) файлы {bios.c, bop_nt.c} - в моей копии /private/... их, к сожалению, нет :-(
Заранее благодарю.


Дата: Сен 8, 2004 10:21:41

Skif, приношу извинения за то, что я писал по-памяти и ошибся: не bop_nt.c, а nt_bop.c - они в той части private, которая относится к nt4 (из 2k их, похоже, вырезали).

Разместить меня не затруднит (только уже завтра), вот только что думают по этому поводу Володя, Аквила, да и все остальные?
Есть три варианта: разместить целиком (вроде бы это наказуемо :( ), процитировать самые интересные кусочки (трудно будет их выбирать, там все интересное :) ), отправить их тебе по почте (скажи свой адрес).


Дата: Сен 8, 2004 20:39:25

Ага, а у меня именно то, что относится к 2k. Так что, дабы избежать гнева модераторов, terl0g{собачка}tut.by. Спасибо!


Дата: Сен 9, 2004 15:16:28

Skif
RobinFood
Плиз, зашлите мне. Очень интересный момент ;)
K_O_T[dog]tut.by

Заранее спасибо.


Дата: Окт 14, 2004 14:51:52

Вот, господа, в некотором смысле продолжение темы:
http://www.eeye.com/html/research/advisories/AD20041012.html

Кратко говоря, сей хитрый опкод создает (создавал, до выхода WinXP SP2 RC1 и фикса MS04-032) возможность локального повышения привилегий до уровня ядра. В статье (линк выше) все достаточно подробно описано.

PS. RobinFood, спасибо за исх. тексты ;-)

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.105