DebugObject пропал...

Тема в разделе "WASM.WIN32", создана пользователем Twister, 14 июл 2006.

  1. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Доброго всем времени суток!

    Вот с какой проблемой я сегодня столкнулся:
    Беру процесс под отладку (с помощью DbgUiConnectToDbg и DbgUiDebugActiveProcess). Все хорошо. Пытаюсь найти у себя в таблице хэндлов DebugObject - его там нету. Открываю ProcessExplorer Руссиновича - тоже самое. Запускаю Windows Object Explorer от Four-F, захожу в директорию "ObjectTypes", два раза щелкаю по DebugObject, вижу надпись ObjectCount: 1; HandleCount: 1. Ищу все Debug-объекты - результат нулевой. Завершаю работу своей программы - отлаживаемый процесс тоже закрывается.

    Подскажите, куда делся DebugObject?

    ps WinXP SP1
     
  2. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Вижу просмотров топика много, а ответов нет. Ни чего удивительного - я и сам в шоке со всего этого. Все что я сейчас скажу, скорее всего чистая бредятина, но все же: а не может ли это случиться из-за того, что программа на VB? Ведь тот же самый код на Delphi прекрасно работает и DebugObject прекрасно создается?...
     
  3. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Вообще ерунда получается. Вот, накатал прогу на MASMе, но DebugObject-а все нет и WinObjEx ни чего не находит (поиск объектов типа DebugObject по критерию *), хотя говорит, что в системе есть один DebugObject и один хэндл к нему:
    Код (Text):
    1. .386
    2. .model flat,stdcall
    3.  
    4. include    kernel32.inc
    5. includelib kernel32.lib
    6. include    windows.inc
    7.  
    8. .data
    9.     @ntdll              db  "ntdll.dll",0
    10.     @DbgUiConnectToDbg      db  "DbgUiConnectToDbg",0
    11.     @DbgUiDebugActiveProcess                 db "DbgUiDebugActiveProcess",0
    12.    
    13.     _DbgUiConnectToDbg      dd  00000000h
    14.     _DbgUiDebugActiveProcess                 dd 00000000h
    15.  
    16. .code      
    17.   Start:      
    18.    
    19.     invoke  GetModuleHandle,addr @ntdll
    20.     push    eax
    21.     invoke  GetProcAddress,eax,addr @DbgUiConnectToDbg
    22.     mov _DbgUiConnectToDbg,eax
    23.     pop eax
    24.     invoke  GetProcAddress,eax,addr @DbgUiDebugActiveProcess
    25.     mov _DbgUiDebugActiveProcess,eax
    26.     call    _DbgUiConnectToDbg ;Подключаемся к отладке, все ок.
    27.     invoke  OpenProcess,PROCESS_ALL_ACCESS,0,2036 ;Сюда ставим любой валидный PID.
    28.     push    eax
    29.     call    _DbgUiDebugActiveProcess ;Аттачимся к процессу - тоже все ок.
    30.     jmp $ ;Зацикливаемся, чтобы было время поискать DebugObject.
    31.     xor eax,eax
    32.     invoke  ExitProcess,eax
    33.     ;После насильственного завершения программы завершается и отлаживаемый процесс!  
    34.  
    35.   End Start
    В системе я под правами админа. Тогда становится вообще непонятно...
     
  4. Bill_Prisoner

    Bill_Prisoner New Member

    Публикаций:
    0
    Регистрация:
    4 май 2005
    Сообщения:
    238
    Twister
    Попробуй поискать руткиты на своей тачке.
     
  5. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    ЗЫ:
    Барабашку на полставки не устраивал?
     
  6. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Гм... Попробовал на другой тачке, открыл OllyDbg, взял первый попавшийся процесс под отладку, но в "недрах" Оли нет хэндла Debug-объекта. История повторяется.
     
  7. Twister

    Twister New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    720
    Адрес:
    Алматы
    Вообщем, оказывается Руссинович нагло врет! Точнее врет его ProcessExplorer. Не верьте ему! Он просто не показывает хэндлы Debug-объектов. Я и подумать не мог что так обстоят дела. Сегодня воспользовался своей же собственной программойи увидел - DebugObject преспокойно "висит в недрах" процесса. Так что тему можно считать закрытой...