Доброго времени суток. Для вполне легальных (не млвр) целей исследую способы внедрения в удаленный процесс своего кода. Вопрос в чем: антивирусы адово орут на цепочку api: createprocess->....->ntsetcontextthread (здесь процесс принудительно обравыется авером) Сабж - как заставить ав верить в легитимность этих вызовов? Можно ли разбавить цепочку чтобы эмуль не понимал что к чему и если как я понимаю все ав просто сидят в кернел моде и хукают нужные api то есть ли смысл писать свою реализацию той же setcontextthread? Точнее так - реализуемо ли это из юзермода без написания драйверов? Заранее благодарен за ответы
Это для каких, интересно? 1) Внедрение в чужой процесс - это уже не легальная тема. 2) Если твоя цель вполне легальная, то в чем проблема добавить инжектор в исключения АВ? Цифровая подпись от майкрософт. Нет Свою реализацию ты вряд ли сделаешь, но можно попробовать захардкодить данную функцию.
Захардкодить = жестко вшить параметры в код? А какой от этого профит в плане ора антивируса? Эмулятору разве не все равно каким образом используются значения? P.s. за советы спасибо
Под захардкодить я имел в виду рипнуть в свою прогу NtSetContextThread, если авер ставит хуки на него, но скорее всего авер хукает все сисколы. А вообще тема однозначно VX и с таким лучше на васм
Можно валить эмуль после вызова не палящихся функций чтобы прервать порочную цепочку. А потом поди-разберись что за данные ты передал и откуда они взялись. Но вот NtSetContextThread очень уж палевная... Надо прочекать не агрится ли он на нее одну с рандомными (но корректными) данными ибо если проверяется syscall - то с некорректными данными до него дело может не дойти а похериться в обертке. Тогда уже вопрос не в цепочке будет вроде. ==== Тем более может просто срабатывать логика. Если ты таким нехитрым способом меняешь eip - то я думаю ему будет все-равно на цепочку, он будет орать все-равно. Хотя х/з. Надо тестить.