VdmSetInt21Handler.

Discussion in 'WASM.WIN32' started by klzlk, Jul 9, 2011.

  1. klzlk

    klzlk New Member

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

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

    steelfactor New Member

    Blog Posts:
    0
    Joined:
    Apr 26, 2007
    Messages:
    501
    Супер, аплодирую стоя
     
  3. Satsura

    Satsura S4(uR4 __r00tw0rm__

    Blog Posts:
    0
    Joined:
    Apr 22, 2010
    Messages:
    374
    Location:
    Узбекистон, бляать!!11 :D
    мда, крут, тут не поспоришь. отлично. спасибо за шэринг (=
     
  4. klzlk

    klzlk New Member

    Blog Posts:
    0
    Joined:
    Jun 2, 2011
    Messages:
    449
    Следует сказать как ISR отлаживать(по дефолту отладчиком это не пройти):

    Code (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

    Blog Posts:
    0
    Joined:
    Jul 1, 2007
    Messages:
    361
    хм.. и што надо сделать чтоб оно заработало под win2k?
     
  6. klzlk

    klzlk New Member

    Blog Posts:
    0
    Joined:
    Jun 2, 2011
    Messages:
    449
    bugaga
    Вроде как под 2к тоже должно работать. Но я не держу у себя таких костылей, как 2к и 98. Посему сами разбирайтесь.
     
  7. Mikl___

    Mikl___ Супермодератор Staff Member

    Blog Posts:
    14
    Joined:
    Jun 25, 2008
    Messages:
    3,914
    Indy
    Понимаю, что это "бантики", но можно сократить сам код на сотню байт и уменьшить твой ехе с 3072 до 1124 байт
     
  8. phoukait

    phoukait New Member

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

    TrashGen ТрещГен

    Blog Posts:
    0
    Joined:
    Mar 15, 2011
    Messages:
    1,201
    Location:
    подполье
    Ну, казалось бы, вот инде - проверенный оптимизатор не юзающий хардкор, а что на деле? Как всегда..
     
  10. _sheva740

    _sheva740 New Member

    Blog Posts:
    0
    Joined:
    Aug 31, 2005
    Messages:
    1,539
    Location:
    Poland
    klzlk
    Спасибо.
     
  11. _sheva740

    _sheva740 New Member

    Blog Posts:
    0
    Joined:
    Aug 31, 2005
    Messages:
    1,539
    Location:
    Poland
    Ребята, а где такие *.inc- и брать чтобы
    все эти -
    ULONG, PVOID, PCHAR, CHAR - понимались?
    Поделитесь пожалуйста.
     
  12. Ezrah

    Ezrah Member

    Blog Posts:
    0
    Joined:
    Mar 22, 2011
    Messages:
    411
    Что здесь непонятного, ULONG, PVOID, PCHAR это всё DWORD'ы, CHAR - байт.
    Зачем Вам этот код, если Вы не знаете основных типов?
     
  13. Mikl___

    Mikl___ Супермодератор Staff Member

    Blog Posts:
    14
    Joined:
    Jun 25, 2008
    Messages:
    3,914
    _sheva740
    Посмотри мой вариант -- он самодостаточен и из *.inc использует только windows.inc стандартного комплекта masm32
     
  14. phoukait

    phoukait New Member

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

    _sheva740 New Member

    Blog Posts:
    0
    Joined:
    Aug 31, 2005
    Messages:
    1,539
    Location:
    Poland
    Mikl___
    Ezrah
    Спасибо.
     
  16. _sheva740

    _sheva740 New Member

    Blog Posts:
    0
    Joined:
    Aug 31, 2005
    Messages:
    1,539
    Location:
    Poland
    Mikl___
    Нет ну у меня что-то не то явно
    Может что-то с линкером? ((
    Вот такой код
    Code (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
    Вываливает такое
    Code (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

    Blog Posts:
    0
    Joined:
    Dec 2, 2008
    Messages:
    1,246
    Виста\7 - лесом. Непохек ;(
     
  18. Mikl___

    Mikl___ Супермодератор Staff Member

    Blog Posts:
    14
    Joined:
    Jun 25, 2008
    Messages:
    3,914
    скорее причина в ntdll.lib лови мою!
     
  19. _sheva740

    _sheva740 New Member

    Blog Posts:
    0
    Joined:
    Aug 31, 2005
    Messages:
    1,539
    Location:
    Poland
    newbie
    У меня XPSP3.
     
  20. _sheva740

    _sheva740 New Member

    Blog Posts:
    0
    Joined:
    Aug 31, 2005
    Messages:
    1,539
    Location:
    Poland
    Mikl___
    Ты знаешь не помогло (((
    Может с link.exe что-то ?
    А можешь у себя попробовать собрать vm2.asm с моими инками и либами ml и link?
    Если не напряжет конечно.

    http://webfile.ru/5459938