Подскажите по winapi и системщине

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by shwwartawa, 24 May 2018.

  1. shwwartawa

    shwwartawa New Member

    Joined:
    16 Dec 2017
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Доброго времени суток. Для вполне легальных (не млвр) целей исследую способы внедрения в удаленный процесс своего кода. Вопрос в чем: антивирусы адово орут на цепочку api: createprocess->....->ntsetcontextthread (здесь процесс принудительно обравыется авером)
    Сабж - как заставить ав верить в легитимность этих вызовов? Можно ли разбавить цепочку чтобы эмуль не понимал что к чему и если как я понимаю все ав просто сидят в кернел моде и хукают нужные api то есть ли смысл писать свою реализацию той же setcontextthread?
    Точнее так - реализуемо ли это из юзермода без написания драйверов?
    Заранее благодарен за ответы
     
  2. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    637
    Likes Received:
    246
    Reputations:
    42
    Это для каких, интересно?
    1) Внедрение в чужой процесс - это уже не легальная тема.
    2) Если твоя цель вполне легальная, то в чем проблема добавить инжектор в исключения АВ?

    Цифровая подпись от майкрософт.
    Нет
    Свою реализацию ты вряд ли сделаешь, но можно попробовать захардкодить данную функцию.
     
  3. shwwartawa

    shwwartawa New Member

    Joined:
    16 Dec 2017
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Захардкодить = жестко вшить параметры в код? А какой от этого профит в плане ора антивируса? Эмулятору разве не все равно каким образом используются значения?
    P.s. за советы спасибо :)
     
  4. #colorblind

    #colorblind Moderator

    Joined:
    31 Jan 2014
    Messages:
    637
    Likes Received:
    246
    Reputations:
    42
    Под захардкодить я имел в виду рипнуть в свою прогу NtSetContextThread, если авер ставит хуки на него, но скорее всего авер хукает все сисколы. А вообще тема однозначно VX и с таким лучше на васм
     
  5. DartPhoenix

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

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,491
    Reputations:
    25
    Можно валить эмуль после вызова не палящихся функций чтобы прервать порочную цепочку. А потом поди-разберись что за данные ты передал и откуда они взялись. Но вот NtSetContextThread очень уж палевная... Надо прочекать не агрится ли он на нее одну с рандомными (но корректными) данными ибо если проверяется syscall - то с некорректными данными до него дело может не дойти а похериться в обертке. Тогда уже вопрос не в цепочке будет вроде.
    ====
    Тем более может просто срабатывать логика. Если ты таким нехитрым способом меняешь eip - то я думаю ему будет все-равно на цепочку, он будет орать все-равно. Хотя х/з. Надо тестить.