Помогите обломать отладчик

Тема в разделе "WASM.BEGINNERS", создана пользователем Boby, 8 июл 2005.

  1. Boby

    Boby New Member

    Публикаций:
    0
    Регистрация:
    24 янв 2005
    Сообщения:
    30
    Адрес:
    Мурманск
    есть идея обнулить отладочные регистры "DR0 DR1 .... и т.д." но как это сделать из ring 3, или подскажите кто нибуть универсальный способ перехода в RING 0 реально работающий на платформе WIN32.





    _______________________________________

    Заранее спасибо

    Сергей г.Мурманск. Hpmadoctor@mail.ru
     
  2. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    А через SEH обнулить слабо?



    Насчет перехода в ринг0 - читай статьи из раздела "Секреты Win32" и выбирай что твоей душе угодно, но учти, что тогда твоей программе для работы будут нужны права администратора, что может не понравиться конечным пользователям.
     
  3. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Ms Rem

    Я думаю такая программа и так конечным пользователям не понравится, иначе вопрос был бы в другом разделе :)))
     
  4. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    Ms Rem

    а точно можно ?

    я когда - то пробовал , но отладочные регистры не изменялись , только общего назначения ...
     
  5. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Поиск по форуму, плюс статьи "Об упаковщиках". Из user-mode DR устанавливаются не полностью.
     
  6. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    Код (Text):
    1.  
    2. struc CONTEXT
    3. .ContextFlags:  resd      1
    4. .iDr0:          resd      1
    5. .iDr1:          resd      1
    6. .iDr2:          resd      1
    7. .iDr3:          resd      1
    8. .iDr6:          resd      1
    9. .iDr7:          resd      1
    10. .FloatSave:     resd      01Ch ;FLOATING_SAVE_AREA <>
    11. .regGs:         resd      1
    12. .regFs:         resd      1
    13. .regEs:         resd      1
    14. .regDs:         resd      1
    15. .regEdi:        resd      1
    16. .regEsi:        resd      1
    17. .regEbx:        resd      1
    18. .regEdx:        resd      1
    19. .regEcx:        resd      1
    20. .regEax:        resd      1
    21. .regEbp:        resd      1
    22. .regEip:        resd      1
    23. .regCs:         resd      1
    24. .regFlag:       resd      1
    25. .regEsp:        resd      1
    26. .regSs:         resd      1
    27. ; Other unneeded shit...
    28. endstruc
    29.  
    30. clear_dr:
    31.          push   eax
    32.          call   delta1                           ; PIC prolog No.1
    33.  delta1: add    dword [esp], xHandler - delta1
    34.          push   dword [fs:eax]
    35.          mov    dword [fs:eax], esp
    36. mem_av:
    37.          mov    eax, [eax]                       ; AV
    38. xHandler:                                       ; Exception handler
    39.          push   ecx
    40.          push   edi
    41.          xor    eax, eax
    42.          mov    edi, [esp + 0Ch + 08]            ; Clear DRx registers
    43.          add    dword [edi + CONTEXT.regEip],(xExit-mem_av) ; ptr to xExit label
    44.          add    edi, CONTEXT.iDr0
    45.          push   byte 04
    46.          pop    ecx
    47.          rep    stosd
    48.          mov    dword [edi + 04], 0155h
    49.          pop    edi
    50.          pop    ecx
    51.          ret
    52. xExit:
    53.          pop    dword [fs:eax]
    54.          pop    eax
    55.          pop    eax
    56.  
     
  7. Kola

    Kola New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2004
    Сообщения:
    69
    Boby

    лучше даже не обнулять их, а использовать для хранения данных, которые используются в программе



    ...хотя все это конечно не спасет вашу прогу от головорезов типа Доктора :)
     
  8. Boby

    Boby New Member

    Публикаций:
    0
    Регистрация:
    24 янв 2005
    Сообщения:
    30
    Адрес:
    Мурманск
    Всем огромное Спасибо я обезательно использую эту информацию.
     
  9. alpet

    alpet Александр

    Публикаций:
    0
    Регистрация:
    21 сен 2004
    Сообщения:
    1.221
    Адрес:
    Russia
    Есть возможность и через SetThreadContext (GetCurrentThread...) сделать тоже самое, но к сожалению на функцию можно установить и бряк.
     
  10. Boby

    Boby New Member

    Публикаций:
    0
    Регистрация:
    24 янв 2005
    Сообщения:
    30
    Адрес:
    Мурманск
    Есть возможность проверить не стоит ли бряк на искомую функцию при полочении импорта , я сам юзаю эту тему

    и SoftIce не выскакивает, вот так я это делаю:



    push eax ;base K32

    call dword ptr [ebp + offset GetP]

    ;{Проверим не стоит ли BreackPoint на искомую функцию}



    cmp byte ptr [eax],0cch

    je Found_BreackPoint ;В случае обнаружения таковово сгенерируем ошибку



    ;{----------------------------------------------------}



    и так далее в цикле поиска API адресов :))
     
  11. Boby

    Boby New Member

    Публикаций:
    0
    Регистрация:
    24 янв 2005
    Сообщения:
    30
    Адрес:
    Мурманск
    может у кого нибуть есть идея по орегенальней,

    буду очень признателен.
     
  12. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    Boby

    например ставить бряки на ret в функциях :)
     
  13. Boby

    Boby New Member

    Публикаций:
    0
    Регистрация:
    24 янв 2005
    Сообщения:
    30
    Адрес:
    Мурманск
    infern0

    разреши добавить меня в твой список контактов в ICQ

    -=DrackMan=-
     
  14. Boby

    Boby New Member

    Публикаций:
    0
    Регистрация:
    24 янв 2005
    Сообщения:
    30
    Адрес:
    Мурманск
    infern0

    Пожалуйста не моглили бы вы быть так добры привести пример РЕАЛЬНО РАБОЧЕГО SEH .



    Пожалуйса, а то у меня ничего не получается.
     
  15. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine