Не работает плагин HideDebugger

Тема в разделе "WASM.BEGINNERS", создана пользователем Arman, 13 июн 2008.

  1. Arman

    Arman New Member

    Публикаций:
    0
    Регистрация:
    13 май 2008
    Сообщения:
    13
    ОС - Windows XP SP2, компьютер - Notebook Toshiba Satellite L40-14B. Проблема в следующем: вне зависимости от того, установлен ли флаг "IsDebuggerPresent" в настройках плагина HideDebugger, байт по адресу 7ffdd002 всегда остается 01. Кто-нибудь сталкивался? В принципе, я уже написал скрипт, устанавливающий этот байт в 0, но все-таки интересно узнать, это баг, или проблемы совместимости?
    Кстати, HideDebugger.dll удаляется и переносится во время работы отладчика. Это показывает, что она вообще не загружается?
     
  2. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    какая версия?
     
  3. Arman

    Arman New Member

    Публикаций:
    0
    Регистрация:
    13 май 2008
    Сообщения:
    13
    Пробовал 1.22., 1.23, 1.24. Везде одно и то же - байт остается нетронутым.
     
  4. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    А в меню Plugins он появляется? Если да то что установлено в настройках плагина?
     
  5. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    в логе Olly должны быть строки
    Hide Debugger v1.2.4
    Copyright (c) 2004-2006 by Asterix


    что говорит об успешной загрузке, если нет сообщений плагина об ошибках

    рекомендую проверить на чистом OllyDbg 1.10 с офсайта при одном установленном
    HideDebugger
     
  6. Arman

    Arman New Member

    Публикаций:
    0
    Регистрация:
    13 май 2008
    Сообщения:
    13
    Да, появляется. В настройках установлен флажок IsDebuggerPresent.
     
  7. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    что дала проверка на чистом OllyDbg 1.10 с офсайта при одном установленном
    HideDebugger
    ?
     
  8. Arman

    Arman New Member

    Публикаций:
    0
    Регистрация:
    13 май 2008
    Сообщения:
    13
    Попробовал, все получилось! Спасибо за помощь!
    P.S. Можно закрывать тему.
     
  9. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Arman
    А с чего вы взяли что именно этот байт должен обнулятся? У меня он другой
     
  10. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    значит ищите в чем был конфликт, может "происки" каких-то других плагинов ;)
     
  11. Arman

    Arman New Member

    Публикаций:
    0
    Регистрация:
    13 май 2008
    Сообщения:
    13
    В туториале Р.Нарвахи №19 написано, как получить адрес этого байта. Я делал, как там.
     
  12. Arman

    Arman New Member

    Публикаций:
    0
    Регистрация:
    13 май 2008
    Сообщения:
    13
    Нет, дело именно в кривой версии отладчика. У меня был ollydbgxp. Там кнопочки в XP стиле ;). Я же тогда не знал, что они так сильно различаются в работе. Я всего только и сделал, что скачал с офсайта отладчик и заменил экзешник. И все заработало :)
     
  13. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    известный баг с этим ollyxp, но разбираться в чем причина с каждым модифицированным олли нет желания
     
  14. Hekeus

    Hekeus New Member

    Публикаций:
    0
    Регистрация:
    28 май 2011
    Сообщения:
    2
    А данный плагин работает под windows7? Пробую уже часа 2, байт для функции IsDebuggerPresent никак не хочет менять. Пересобирал библиотеку, результат тот же. OllyDBG чистая, пробовал версии 1.10 и 1.08 с оффициального сайта. Даже попробовал на скорую руку отладить OllyDBG с помощью той же олли, байт похоже считывает, хотя уверенности нет, адреса не проверял.
     
  15. klzlk

    klzlk New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2011
    Сообщения:
    449
    Код (Text):
    1. ProcessDebugObjectHandle    equ 30
    2. STATUS_PORT_NOT_SET     equ 0C0000353H
    3.  
    4. QueryDebugger proc uses ebx esi edi DebuggerPID:PHANDLE
    5. Local HandleInformation[sizeof(SYSTEM_HANDLE_INFORMATION) + 4]:BYTE
    6. Local SystemInformation:PVOID, SystemInformationLength:ULONG
    7. Local DebugHandle:HANDLE
    8.     invoke ZwQueryInformationProcess, NtCurrentProcess, ProcessDebugObjectHandle, addr DebugHandle, sizeof(HANDLE), NULL
    9.     test eax,eax
    10.     jnz Exit
    11.     mov SystemInformation,eax
    12.     invoke ZwQuerySystemInformation, SystemHandleInformation, addr HandleInformation, sizeof(SYSTEM_HANDLE_INFORMATION) + 4, addr SystemInformationLength
    13.     cmp eax,STATUS_INFO_LENGTH_MISMATCH
    14.     jne Close
    15.     cmp SystemInformationLength,NULL
    16.     je Close
    17.     add SystemInformationLength,50*sizeof(SYSTEM_HANDLE_INFORMATION)
    18.     invoke ZwAllocateVirtualMemory, NtCurrentProcess, addr SystemInformation, 0, addr SystemInformationLength, MEM_COMMIT, PAGE_READWRITE
    19.     test eax,eax
    20.     jnz Close
    21.     invoke ZwQuerySystemInformation, SystemHandleInformation, SystemInformation, SystemInformationLength, Eax
    22.     test eax,eax
    23.     mov edx,SystemInformation
    24.     jnz Error
    25.     mov ebx,fs:[TEB.Cid.UniqueProcess]
    26.     mov ecx,dword ptr [edx]
    27.     mov eax,DebugHandle
    28.     add edx,4
    29.     lea esi,dword ptr [ecx*(sizeof(SYSTEM_HANDLE_INFORMATION)/2)]
    30.     mov edi,edx
    31.     assume edx:PSYSTEM_HANDLE_INFORMATION
    32. Next:
    33.     cmp [edx].ProcessId,ebx
    34.     jne @f
    35.     cmp [edx].Handle,ax
    36.     je Objext
    37. @@:
    38.     add edx,sizeof(SYSTEM_HANDLE_INFORMATION)
    39.     loop Next
    40. NotFound:
    41.     mov eax,STATUS_NOT_FOUND
    42.     jmp Error
    43. Objext:
    44.     cld
    45.     mov eax,[edx].Object
    46.     lea ecx,dword ptr [esi*2]
    47. @@:
    48.     repne scasd
    49.     jecxz NotFound
    50.     test edi,1111B
    51.     jnz @b
    52.     cmp SYSTEM_HANDLE_INFORMATION.ProcessId[edi - sizeof(SYSTEM_HANDLE_INFORMATION) + 4],ebx
    53.     je @b
    54.     mov edx,SYSTEM_HANDLE_INFORMATION.ProcessId[edi - sizeof(SYSTEM_HANDLE_INFORMATION) + 4]
    55.     mov ecx,DebuggerPID
    56.     xor eax,eax
    57.     mov dword ptr [ecx],edx
    58. Error:
    59.     push eax
    60.     invoke ZwFreeVirtualMemory, NtCurrentProcess, addr SystemInformation, addr SystemInformationLength, MEM_RELEASE
    61.     pop eax
    62. Close:
    63.     push eax
    64.     invoke ZwClose, DebugHandle
    65.     pop eax
    66. Exit:
    67.     ret
    68. QueryDebugger endp
     
  16. Hekeus

    Hekeus New Member

    Публикаций:
    0
    Регистрация:
    28 май 2011
    Сообщения:
    2
    Проверил на Windows 7 32-х битной с различной аппаратной конфигурацией, бит не сбрасывается. Тот же самый Ollydbg с той же самой dll на Windows XP отлично работает. Хотелось бы узнать в чем же все-таки причина, функции вроде не менялись с 2000.
    P.S. klzlk спасибо за код, многое из него узнал, хотя еще не все, что мог :)
     
  17. Acort

    Acort New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2011
    Сообщения:
    2
    Windows 7 Prof SP1- тоже бит не сбрасывается. Ставил чистую Ollydbg. HideDebugger v1.2.4

    Олли в логах пишет следующее

     
  18. Acort

    Acort New Member

    Публикаций:
    0
    Регистрация:
    28 дек 2011
    Сообщения:
    2
    Разобрался. пропатчил малость HideDebuger и заработало.