|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Пример открытия процесса через sysenter
Открытие процесса через sysenter:
Код:
LEA EAX, ClientID PUSH EAX LEA EAX, ObjectArrt PUSH EAX PUSH PROCESS_ALL_ACCESS LEA EAX, hProc PUSH EAX CALL @SYSCALL MOV rezult, EAX JMP @EXIT @SYSCALL: MOV EAX, 000000BEh ; эта константа зависит от системы CALL @SYSENTER RET $10 @SYSENTER: MOV EDX, ESP SYSENTER @EXIT: NOP — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 14.08.2012 в 11:17. |
#2
|
||||
|
||||
Sysenter - это, конечно, здорово. Только МС имеет полное право менять эту самую константу даже между обновлениями одной винды, если ему это понадобится. Так что практического смысла не очень много. На то АПИ и созданы.
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
||||
|
||||
Эта константа при сборке ядра автоматом генерится.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#4
|
||||
|
||||
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
||||
|
||||
Нет. Эта константа - номер ядерной функции. Она в теории может меняться постоянно при пересборке винды. Документация архитектуры проца не определяет их (да и не может; sysenter просто прыгает в фиксированную точку в нулевом кольце, а как использовать это - личное дело каждого). Адрес для sysenter берется из MSR'ок.
Цитата:
jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 03.09.2012 в 22:07. |