VdmSetInt21Handler.

Тема в разделе "WASM.WIN32", создана пользователем klzlk, 9 июл 2011.

  1. klzlk

    klzlk New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2011
    Сообщения:
    449
    Небольшой пруфкод, установка 0x21 шлюза прерывания(DPL = 3) без поднятия привилегий(!SE_TCB_PRIVILEGE).

    На XP робит.
     
  2. steelfactor

    steelfactor New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    501
    Супер, аплодирую стоя
     
  3. Satsura

    Satsura S4(uR4 __r00tw0rm__

    Публикаций:
    0
    Регистрация:
    22 апр 2010
    Сообщения:
    374
    Адрес:
    Узбекистон, бляать!!11 :D
    мда, крут, тут не поспоришь. отлично. спасибо за шэринг (=
     
  4. klzlk

    klzlk New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2011
    Сообщения:
    449
    Следует сказать как ISR отлаживать(по дефолту отладчиком это не пройти):

    Код (Text):
    1. FIXED_NTVDMSTATE_LINEAR equ 714H    ; Ki386VdmReflectException -> VdmFetchULONG().
    2.  
    3. VDM_BREAK_EXCEPTIONS    equ 8H
    4. VDM_BREAK_DEBUGGER  equ 10H
    5. VDM_USE_DBG_VDMEVENT    equ 4000H
    6.  
    7.     and dword ptr ds:[FIXED_NTVDMSTATE_LINEAR],NOT(VDM_BREAK_EXCEPTIONS or VDM_BREAK_DEBUGGER or VDM_USE_DBG_VDMEVENT)  ; #STATUS_SEGMENT_NOTIFICATION etc.
     
  5. bugaga

    bugaga New Member

    Публикаций:
    0
    Регистрация:
    1 июл 2007
    Сообщения:
    361
    хм.. и што надо сделать чтоб оно заработало под win2k?
     
  6. klzlk

    klzlk New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2011
    Сообщения:
    449
    bugaga
    Вроде как под 2к тоже должно работать. Но я не держу у себя таких костылей, как 2к и 98. Посему сами разбирайтесь.
     
  7. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    Indy
    Понимаю, что это "бантики", но можно сократить сам код на сотню байт и уменьшить твой ехе с 3072 до 1124 байт
     
  8. phoukait

    phoukait New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2011
    Сообщения:
    43
    Mikl___
    Вы бы лучше оптимизировали, удалив фиксированные смещения(хардкод) - ThVdm & VDM_TIB_SIZE, заюзав ntvdm!host_CreateThread()/cpu_createthread().
     
  9. TrashGen

    TrashGen ТрещГен

    Публикаций:
    0
    Регистрация:
    15 мар 2011
    Сообщения:
    1.186
    Адрес:
    подполье
    Ну, казалось бы, вот инде - проверенный оптимизатор не юзающий хардкор, а что на деле? Как всегда..
     
  10. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    klzlk
    Спасибо.
     
  11. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Ребята, а где такие *.inc- и брать чтобы
    все эти -
    ULONG, PVOID, PCHAR, CHAR - понимались?
    Поделитесь пожалуйста.
     
  12. Ezrah

    Ezrah Member

    Публикаций:
    0
    Регистрация:
    22 мар 2011
    Сообщения:
    411
    Что здесь непонятного, ULONG, PVOID, PCHAR это всё DWORD'ы, CHAR - байт.
    Зачем Вам этот код, если Вы не знаете основных типов?
     
  13. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    _sheva740
    Посмотри мой вариант -- он самодостаточен и из *.inc использует только windows.inc стандартного комплекта masm32
     
  14. phoukait

    phoukait New Member

    Публикаций:
    0
    Регистрация:
    22 июл 2011
    Сообщения:
    43
    Нужно потрейсить ntvdm до ExitProcess(), чтобы инициализировался хип, после этого заюзать host_CreateThread(прототип как у CreateThread(), тока без последнего параметра). Проще наверно уже никак.
     
  15. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Mikl___
    Ezrah
    Спасибо.
     
  16. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Mikl___
    Нет ну у меня что-то не то явно
    Может что-то с линкером? ((
    Вот такой код
    Код (Text):
    1. .686
    2. .model flat,stdcall
    3. option casemap:none
    4. includelib \masm32\lib\ntdll.lib
    5. include \masm32\include\windows.inc
    6. includelib \masm32\lib\kernel32.lib
    7.  
    8. extern _imp__DbgPrint@8:dword
    9.  
    10. .data
    11.     $IsVdm  db "IsVdmProcess: %X", 13, 10, 0
    12.     _outnumb    dd -1  
    13. .code
    14. main proc
    15.     lea edi,_outnumb
    16.     push    dword ptr [edi]
    17.     push    offset $IsVdm
    18.     call    _imp__DbgPrint@8   
    19.     ret
    20. main endp
    21. end main
    Вываливает такое
    Код (Text):
    1. Microsoft (R) Macro Assembler Version 6.14.8444
    2. Copyright (C) Microsoft Corp 1981-1997.  All rights reserved.
    3.  
    4.  Assembling: C:\_temp\vm2.asm
    5. Microsoft (R) Incremental Linker Version 5.12.8078
    6. Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
    7.  
    8. vm2.obj : error LNK2001: unresolved external symbol __imp__DbgPrint@8
    9. vm2.exe : fatal error LNK1120: 1 unresolved externals
    10. _
    11. Link error
    12. Для продолжения нажмите любую клавишу . . .
    Может я где-то торможу ?
     
  17. newbie

    newbie New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    1.246
    Виста\7 - лесом. Непохек ;(
     
  18. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.792
    скорее причина в ntdll.lib лови мою!
     
  19. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    newbie
    У меня XPSP3.
     
  20. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.539
    Адрес:
    Poland
    Mikl___
    Ты знаешь не помогло (((
    Может с link.exe что-то ?
    А можешь у себя попробовать собрать vm2.asm с моими инками и либами ml и link?
    Если не напряжет конечно.

    http://webfile.ru/5459938