проактивка и CreateRemoteThread

Тема в разделе "WASM.WIN32", создана пользователем jtysrtj, 19 сен 2009.

  1. PavPS

    PavPS New Member

    Публикаций:
    0
    Регистрация:
    24 фев 2004
    Сообщения:
    109
    Адрес:
    Russia
    :lol: я им лично месяцев 8 назад об этом писал. до сих пор тишина.
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    PavPS
    У каспа паршивый эмулятор, эсенциалс и веб этот код легко раскрутят.
     
  3. sideX

    sideX New Member

    Публикаций:
    0
    Регистрация:
    9 июн 2009
    Сообщения:
    57
    интересно. пытаюсь реализовать на MASM. делаю так:
    Код (Text):
    1.                 mov esi, lpModule
    2.         invoke  OpenProcess, ...
    3.         test    eax, eax
    4.         jz  _thr_resume
    5.         mov hProcess, eax
    6.  
    7.  
    8.         assume  fs : nothing
    9.         push    ebp
    10.         push    esp
    11.         push    offset _next_code
    12.         push    offset InThreadSEH
    13.         push    fs : [0]
    14.         mov fs : [0], esp
    15.  
    16.  
    17.         in  al, 2
    18.  
    19.    
    20. _next_code:
    21.                 ....
    обработчик:
    Код (Text):
    1. InThreadSEH proc uses edx pExcept, pFrame, pContext, pDispatch : DWORD
    2.         mov     edx, pFrame
    3.         assume  edx : ptr SEH
    4.         mov     eax, pContext
    5.         assume  eax : ptr CONTEXT
    6.         push    [edx].SafeOffset
    7.         pop     [eax].regEip
    8.         push    [edx].PrevEsp
    9.         pop     [eax].regEsp
    10.         push    [edx].PrevEbp
    11.         pop     [eax].regEbp
    12.  
    13. ; GetExceptionCode
    14.         mov eax, dword ptr [ebp - 14]
    15.         mov eax, dword ptr [eax]
    16.         mov eax, dword ptr [eax]
    17.  
    18.         sub eax, STATUS_PRIVILEGED_INSTRUCTION
    19.         add hProcess, eax
    20.        
    21.         mov eax, ExceptionContinueExecution
    22.         ret
    23. InThreadSEH endp
    но результата нет. что я делаю не правильно? благодарю за внимание
     
  4. sideX

    sideX New Member

    Публикаций:
    0
    Регистрация:
    9 июн 2009
    Сообщения:
    57
    ошибка происходит здесь
    Код (Text):
    1. ; GetExceptionCode
    2.         mov eax, dword ptr [ebp - 14]
    3.         mov eax, dword ptr [eax]              ; <----!!!!!!!!!
    4.         mov eax, dword ptr [eax]
     
  5. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    sideX
    Код (Text):
    1. GET_CURRENT_GRAPH_ENTRY macro
    2.     Call _$_GetCallbackReference
    3. endm
    4.  
    5. SEH_Prolog proc C
    6.     pop ecx
    7.     push ebp
    8.     push eax
    9.     Call SEH_GetRef
    10.     push eax
    11.     assume fs:nothing
    12.     push dword ptr fs:[TEB.Tib.ExceptionList]
    13.     mov dword ptr fs:[TEB.Tib.ExceptionList],esp
    14.     jmp ecx
    15. SEH_Prolog endp
    16.  
    17. SEH_Epilog proc C
    18.     pop ecx
    19.     pop dword ptr fs:[TEB.Tib.ExceptionList]
    20.     lea esp,[esp + 3*4]
    21.     jmp ecx
    22. SEH_Epilog endp
    23.  
    24. SEH_GetRef proc C
    25.     GET_CURRENT_GRAPH_ENTRY
    26.     mov eax,dword ptr [esp + 4]
    27.     mov esp,dword ptr [esp + 2*4]   ; (esp) -> ExceptionList
    28.     mov eax,EXCEPTION_RECORD.ExceptionCode[eax]
    29.     mov ebp,dword ptr [esp + 3*4]
    30.     jmp dword ptr [esp + 2*4]
    31. SEH_GetRef endp
    32.  
    33. _$_GetCallbackReference::
    34.     pop eax
    35.     ret
    Юзаем таким образом:
    Код (Text):
    1.     Call SEH_Epilog_Reference
    2.     Call SEH_Prolog
    3.     ...
    4.     jmp Exit
    5. SEH_Epilog_Reference:
    6.     GET_CURRENT_GRAPH_ENTRY
    7. Exit:
    8.     Call SEH_Epilog
    При сепшене поимеем в регистре Eax код его, в вашем случае STATUS_PRIVILEGED_INSTRUCTION. Хотя ваше решение выглядит бредовым.