![]() |
|
|
![]()
|
|
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
В интернете я нашел статью z0mbie - он рассказывает как попасть в ring0 из под guest (кому интересна и кто занимается этой темой не ради взлома, а ради того, чтобы более углубленно понять работу винды обращайтесь на e-mail: [email protected] - только объединившись, мы достигним задуманной цели). Суть заключается в вызове всего одной функции: SetThreadContext (хочу вас обрадовать у меня есть ещё один алгоритм, так что пишите)
Эта функция устанавливает контекст, то есть все регистры для заданной нити. Ситуация усложняется тем, что сохраненный контекст применяется (т.е. установка регистров происходит) при переходе из нуля в третье кольцо при переключении задач и при возврате в кернел из вызванных им процедур нулевого кольца. Таким образом мы подлавливаем момент, когда в контексте текущей нити управление находится в нулевом кольце, а затем правим CS и EIP возврата на 28h и адрес-процедуры-нулевого-кольца. В результате вместо того, чтобы вернуться из нуля обратно в кернел, управление возвращается к нам. Вот код на asm'e, но что - то я переписал его на Delphi и нечего не вышло (мож, что я чего не так сделал): push esp 0 0 push offset thread_ring3_code push 0 0 callW CreateThread ; создаем новую нить xchg ebx, eax ; EBX=хендл нити push offset context push ebx callW GetThreadContext; получаем контекст нити mov context._segcs, 28h ; меняем CS:EIP mov context._eip, offset ring0_code push offset context push ebx callW SetThreadContext; устанавливаем контекст jmp $ ; чего-то ждем thread_ring3_code: push 1 call Sleep ; пауза jmp thread_ring3_code ring0_code: push ss ss ; мы в нуле! pop ds es ... -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
| p0s0l |
|
||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 2 Всего: 112 |
Что-то тут не то, либо ты не привел часть, где описан context, либо не привел весь код...
По-смыслу, должно быть так:
Т.е. одной строчки не хватает... Потом, зачем мудрить и отлавливать переход ? Создай поток c CREATE_SUSPENDED, подмени контекст потока, и делай ResumeThread... Хотя, конечно, z0mbie виднее, но результат получается одинаков... В Delphi это было бы так:
-------------------- С уважением, г-н Посол. |
||||
|
|||||
| Delphist |
|
||||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: нет Всего: 3 |
p0s0l - ты привел код на Delphi, спасибо - у меня только два вопроса к тебе: 1) код этот работает ли ?! 2)Ты знаком с трудами Z0mbie!? -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
||||
|
|||||
| Chingachguk |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Кажется, Z0mbie писал для 98-ой и достаточно давно...
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
| oleg1973 |
|
|||
![]() asm fanat ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3283 Регистрация: 16.7.2003 Где: Italy Репутация: 7 Всего: 34 |
ой не работает
-------------------- SST 465555 icq 200-512-712 |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
Этот трюк проходит только под 9x. Одно могу сказать точно -- когда я на 98 сидел и увлекался асмом этот метод прекрасно работал ;)
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |