убить отладчик

Тема в разделе "WASM.RESEARCH", создана пользователем HuXTUS, 8 янв 2007.

  1. HuXTUS

    HuXTUS New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2007
    Сообщения:
    240
    поиск по классу окна это самое слабое звено, да и не про это вовсе код.
    я ж писал:
    идея всего топика: "как убить отладчик". Прога выше убивает отладчик!
    А уж каким образом вы этот отладчик обнаружите я не знаю пока
    (но ведь можно же как-то!)
    Может быть таким способом?
    Или честно поросить у пользователя PID процесса-отладчика. шутка.
    2Asterix: Я не спрашивал как найти отладчик, я спросил как его закрыть.
    У меня тоже не всегда винда падает. А виснут да, всегда.
     
  2. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    намедни читая Криса "точки останова на win32 API и противодействие им", заметил что олька после функции входа (или может после последнкй функции в секции я не проверял) только при пошаговой (!! если сходу нажать f9, то не сработает) трассировке ставит бряк, зачем она это делает мне не ясно, может кто-то пояснит?)
    ниже код который палит ольку, код рабочий (в смысле прямо с операционной) так не придерайтесь:
    Код (Text):
    1. .386
    2. .model flat,stdcall
    3. option casemap:none
    4.  
    5. include windows.inc
    6. include kernel32.inc
    7. include user32.inc
    8.  
    9. includelib kernel32.lib
    10. includelib user32.lib
    11.  
    12. include d:\masm32\macros\macros.asm
    13.  
    14. .data?
    15.     buf db 256 dup(?)
    16. .code
    17. start:
    18.     mov esi,start-10
    19.     lea edi,buf
    20.     mov ecx,20h
    21.     cld
    22.     rep movsb
    23.    
    24.     lea esi,buf
    25.     mov al,[esi+01dh]
    26.     .if al==0cch
    27.         invoke MessageBox,0,chr$("Debug"),0,MB_OK
    28.     .endif
    29.        
    30.     ret
    31.    
    32. end start
    [add]
    похоже бряк появляется после пошагового выполнения комманды rep movsb
    может олька ещё где-то оставляет свои следы, по которым её можно разоблачить?
     
  3. Hellspawn

    Hellspawn New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    310
    Адрес:
    Москва
    rain если мне не изменяет память, то это обходится вкл. опции
    Use hardware breakpoints to step or trace code =)

    а почему она ставит бряк? сам подумай) rep movsb - этож по сути цикл
     
  4. rain

    rain New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2006
    Сообщения:
    976
    почему тогда бряк ставится аж после рет'а?
    мы непонятливые, намёков не понимаем (
     
  5. diamond

    diamond New Member

    Публикаций:
    0
    Регистрация:
    21 май 2004
    Сообщения:
    507
    Адрес:
    Russia
    Трассируем в оле код, доходим до rep movsb, нажимаем F8. Оля вынуждена, чтобы пройти этот код за раз, поставить точку останова. Если упомянутая выше опция выключена, то ставится обычная точка останова - 0xCC (int3) на первый байт после команды. После чего управление передаётся программе. Программа выполняет rep movsb, в ходе которого читает собственный код и, в частности, копирует байт 0xCC. Далее rep movsb заканчивается, следующая инструкция - как раз вставленный 0xCC, то есть int3, который генерирует исключение, перехватываемое отладчиком. Оля вновь получает управление и снимает точку останова, возвращая на место старый байт. Но при этом отладчик понятия не имеет, что перезаписанный байт куда-то скопировали!
     
  6. lord_Phoenix

    lord_Phoenix New Member

    Публикаций:
    0
    Регистрация:
    13 янв 2007
    Сообщения:
    18
    на кейгенах ECLiPSE tElock висит, 1.0приват
    впервые этот трюк я видел в ST_Protector