![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Открытие процесса через 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Последний раз редактировалось M.A.D.M.A.N., 14.08.2012 в 11:17. |
|
#2
|
||||
|
||||
|
Sysenter - это, конечно, здорово. Только МС имеет полное право менять эту самую константу даже между обновлениями одной винды, если ему это понадобится. Так что практического смысла не очень много. На то АПИ и созданы.
|
|
#3
|
||||
|
||||
|
Эта константа при сборке ядра автоматом генерится.
|
|
#4
|
||||
|
||||
|
Цитата:
|
|
#5
|
||||
|
||||
|
Нет. Эта константа - номер ядерной функции. Она в теории может меняться постоянно при пересборке винды. Документация архитектуры проца не определяет их (да и не может; sysenter просто прыгает в фиксированную точку в нулевом кольце, а как использовать это - личное дело каждого). Адрес для sysenter берется из MSR'ок.
Цитата:
Последний раз редактировалось Bargest, 03.09.2012 в 22:07. |