sysenter/sysexit

Тема в разделе "WASM.WIN32", создана пользователем pustota, 12 янв 2005.

  1. pustota

    pustota New Member

    Публикаций:
    0
    Регистрация:
    8 ноя 2004
    Сообщения:
    2
    Поделитесь опытом использования этой функции под WinXP и Win2k, пожалуйста. Может есть доки по ее использованию? Кроме интеловских мануалов на их сайте - их я уже читал.

    Спасибо.
     
  2. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine




    В eax - номер сервиса ядра

    В edx - указатель на стек с параметрами

    Потом вызов int 2e или sysenter



    Но это мало кто использует, т.к. номера сервисов отличаются от оси к оси, от билда к билду



    Вот кое-какая информация, остальное нужно вылавливать в сайсе

    http://gl00my.chat.ru/nt/int2e.txt

    http://z0mbie.host.sk/ntoskrnl.html
     
  3. LocTb

    LocTb New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2004
    Сообщения:
    54
    Мля не успел.

    1. В 2k - используется прерывание.

    2. Номера функций меняются от версии к версии, так что ...



    Например так:
    Код (Text):
    1.  
    2.   push arg1 arg2 arg3 ...
    3.   mov eax,PROC_NUM
    4.   call .SysCall
    5.   add esp,argCount*4
    6.  
    7.   ; bla-bla-bla
    8.  
    9. .SysCall:
    10.   mov edx,esp
    11.   sysenter
    12.  


    вроде так- не помню точно. Фишка в том, что адрес возврата после sysenter'a - фиксированный, указывает на ret. И еще,толком не помню, но то ли до, то ли после argX, надо скорректировать стэк, то бишь push eax.
     
  4. pustota

    pustota New Member

    Публикаций:
    0
    Регистрация:
    8 ноя 2004
    Сообщения:
    2
    Спасибо =)

    А кто-нибудь знает номер функции чтения памяти для WinXP Sp1? Или просто список номеров сервисов для этой оси?
     
  5. Arvensis

    Arvensis New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2004
    Сообщения:
    72
    Адрес:
    Russia
    pustota

    Это что еще за функция такая? :)
     
  6. je_

    je_ New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    143
    если из собстивенного кода делается вызов,

    лучше использовать INT2E а не SYSENTER,

    чтобы возвратился на последующий код.



    "номер функции" следует считывать из NTDLL;