Перед закрытием проиложения

Тема в разделе "WASM.WIN32", создана пользователем Lord_De_Seis, 28 мар 2007.

  1. Lord_De_Seis

    Lord_De_Seis New Member

    Публикаций:
    0
    Регистрация:
    18 авг 2005
    Сообщения:
    55
    Есть ли метод из приложения выполнить код перед самым его закрытием (TerminateProcess и всякимим такими методами), желательно не делая злодеяний вроде перехвата апи, длл инжекта и загруки драйверов.
     
  2. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Если приложение оконное, то обрабатывай соответствующее сообщение. Если нет, особенно рассматривая вариант с "внешним" закрытием, то наверное нет
     
  3. Lord_De_Seis

    Lord_De_Seis New Member

    Публикаций:
    0
    Регистрация:
    18 авг 2005
    Сообщения:
    55
    2MSoft ты не понял, TerminateProcess не отправляет никаких там сообщений твоему окну, а просто убивает процесс.
    Была идея поймать момент когда хэндл открывается с такими правами, только я не знаю как реализовать.
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    кроме перехвата ZwTerminateProcess скорее всего никак
    Ну еще можно перехватить OpenProcess с типов доступа PROCESS_TERMINATE, но не факт, что нас будут закрывать потом.
    ZwTerminateProcess лучше перехвати
     
  5. Lord_De_Seis

    Lord_De_Seis New Member

    Публикаций:
    0
    Регистрация:
    18 авг 2005
    Сообщения:
    55
    2Great ну зачем сразу Zw... юзермодные хуки ещё никто не отменял. Но хотелось бы без этого.
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Надежнее в ядре перехватить
    Прямой вызов функций через INT 2E / SYSENTER тоже никто не отменял
     
  7. Lord_De_Seis

    Lord_De_Seis New Member

    Публикаций:
    0
    Регистрация:
    18 авг 2005
    Сообщения:
    55
    Надёжнее то оно надёжнее... только одна проблема, что хочется сделать без такого Ахтунга. И что бы для этого не пришлось грузить драйвера и назначать всякие apc. То есть как бы так сделать не проблема. Но хочется по человечески, и что бы это не требовало прав. Я ведь пишу вполне мирное приложение, просто хочу, кое что успеть прежде чем меня закроет какой нить лапух.
     
  8. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    В юзермоде противодействия терминатепроцесс нету.. да и по логике быть не может. специально сделано чтобы можно было в случае чего без проблем грохнуть процесс... можешь попробовать перехватить функу из нтдлл... меньше прав надо, в отличие от дрова. но и качество соотв.)