детект сканирования памяти процесса

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by sn0w, 25 Mar 2020.

  1. sn0w

    sn0w Статус пользователя:

    Joined:
    26 Jul 2005
    Messages:
    1,023
    Likes Received:
    1,310
    Reputations:
    327
    я мыслю - значит я существую (с) кто-там в древности. а теперь (с) Снег
     
  2. Pirotexnik

    Pirotexnik Member

    Joined:
    13 Oct 2010
    Messages:
    376
    Likes Received:
    73
    Reputations:
    38
    Как на счет хардварных вотчпоинтов?
    Как на счет софтварных вотчпоинтов? На линуксе можно свой процесс окутать в ptrace - программируемый отладочный инструмент
     
    K800 likes this.
  3. Pirotexnik

    Pirotexnik Member

    Joined:
    13 Oct 2010
    Messages:
    376
    Likes Received:
    73
    Reputations:
    38
    Имхо, компилиться нужно вообще через самый обычный `cc`.
    [​IMG]

    А всякие там struct_module и прочие выставляются ручками, прямо в коде.
     
    K800 likes this.
  4. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,491
    Reputations:
    25
    И те и другие можно заранее задетектить и снять при надобности (а потом поставить как было). В частности авер осведомлен о них.
     
  5. Pirotexnik

    Pirotexnik Member

    Joined:
    13 Oct 2010
    Messages:
    376
    Likes Received:
    73
    Reputations:
    38
    Это про винду, верно?

    На пингвине трейсить один процесс может только один другой процеес. Ну на сколько я знаю во всяком случае. Хотя, по идее, можно трейсить процесс, который трейсит другой процесс.

    А вот на счет памяти - в ядерном контексте есть ftrace и kprobes. С их помощью можно обойти гипервизор, который чекает хешсуммы R-X сегментов, куда замапленно ядро. Ну, разумеется, и доступ к памяти тоже можно отловить.

    Вообще, я не уверен, но мне кажется, что можно через PTE попробовать такой доступ захендлить. Или через мьютекс, если память замапленна в файловое представление.
     
    DartPhoenix likes this.
  6. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,491
    Reputations:
    25
    Ага. На Линухе даже не знаю такой задачи, зачем бы это могло понадобиться. И... Инде не любит Линух :)
    (Ну я бы сказал что это потому что он его не умеет юзать, но Инде будет это категорически отрицать :) )

    Можно и через PTE. Но там есть другая проблема: если кто-то к тебе забрался и получил рутовые права - там открывается столько возможностей что... я просто даже не догадываюсь чем помочь юзеру.
    Авер внезапно становится бесполезен, какой ушь тут доступ к памяти, когда можно взять да и перекомпилить ядро если захочешь... там сразу вешайся :)
     
  7. Pirotexnik

    Pirotexnik Member

    Joined:
    13 Oct 2010
    Messages:
    376
    Likes Received:
    73
    Reputations:
    38
    Да как сказать-то.

    Гипервизор с касперычем верхом на гипервизоре - вмваре.

    Подписанное ядро.

    Safe-boot.

    Хешсуммы.


    LKRG воткнутый в ядро до того, как кто-то туда пробрался.

    Это так чисто первое, чтт пришло в голову)
     
  8. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,491
    Reputations:
    25
    Звучит красиво сие подписанное ведро, но если на него можно ставить таки какие-то дрова - то через них уже можно начать крестовый поход против касперыча.
    Х/з. Сложный вопрос ибо сильно теоретический.
     
  9. Pirotexnik

    Pirotexnik Member

    Joined:
    13 Oct 2010
    Messages:
    376
    Likes Received:
    73
    Reputations:
    38
    Хм. Хорошая идея. Кстати.
    Я еще поглядывал на алгоритм апдейта микрокодов