• XSS.stack #1 – первый литературный журнал от юзеров форума

Помогите разобраться с моим первым криптором | dotNet

DeiTy

(L3) cache
Забанен
Регистрация
23.12.2018
Сообщения
282
Реакции
184
Депозит
0.001
Пожалуйста, обратите внимание, что пользователь заблокирован
Скрытый контент для зарегистрированных пользователей.


Вообщем , решил я попробовать написать криптор dotNet файлов . Это будет мой первый заход так сказать так что надеюсь на всеобщую помощь (просто чтоб понять как это всё устроено) :)
Как это вижу я
Зашифрованные байты файла хранятся в переменной стринг и уже в процессе работы расшифровать и запустить . Думаю это поможет только с детектом на всяких онлайн сканерах так как после расшифровки антивирус сразу даст леща и не позволит запустить .
Напишите примерную логику как этого избежать (детекта после расшифровки) или может я изначально неправильно себе это представляю ?
ps: пишу на шарпе , да да нужно писать на нативных языках и всё такое , я знаю , я не умею
C Sharp = love

 
Сначала нужно понимать, что твой криптор должен поддерживать 2 версии CLR. Как раз то, из-за чего вся пьянка с хейтом дотнета 3.5, 4.0 версий. Тебе надо научиться инжектить и ту и ту версию в память. Для этого тебе нужно bootstrap native приложение, которое позволит смаппить в память bootstrap .net лодырь в зависимости от версии CLR. Таким образом нативное приложение решает проблему версий .NET CLR, которую все хейтят.(мол нельзя сделать ехе, которое сработает и на 7 и на 10. Льзя.)
После этого надо пропатчить ntdll!EtwEventWrite, зачем, сам погугли. После этого с помощью Assembly.Load есть возможность загрузить из блоба основной модуль твоей криптуемой малвари. Ну а сам блоб у тебя не хранится статично, а формируется антиэмуль вычислениями, строишь в рантайме по принципу кручу, верчу, наебать хочу. Базовый криптор готов.
Посложнее - метаморфизм сорцов. Добавляй к тому, что выше то, что ты тулзой декомпилишь .net сборку в сорцы(да, так можно), обфусцируешь, собираешь обратно. Разбавляешь оригинальные сорцы антиэмуль трюками, морфингом api call map и тд.
Еще сложнее, ты пишешь вм, которая может перегнать из AST твоего яп в опкоды твоей вм(либо напрямую из MSIL в опкоды) ну а дальше выполнять код на своей вм.
После этого можешь написать морфер опкодов, то есть заменять опкод связкой опкодов, которые в результате исполнения дадут тот же результат, что и оригинальный опкод.
Теперь можешь сначала прогнать сорцы обфускатором -> вм опкоды -> обфускация опкодов.
Остается узкое место - это bootstrap native wrapper. Чтобы он не был одинаковым его тоже надо криптовать или преврати его в шеллкод представление и инвокай из белого софта аналогично доставая из блоба на рантайме.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Скрытое содержимое
хм, добавь перед дешифровкой данных антиэмуль, чтоб ав не дошел до места дешифровки данных. Сурсы вируса должны каждый раз морфиться. Добавляться трешген, левые импорты, левые функции, строки при каждом билде должны по разному шифроваться, меняться логика проги без потери функции, а после вообще обфуцировать код, добавь памп файла, иконки, сертификат + закомпилить. Иначе в стаб будет помещаться один и тот же код и при анализе авер сразу узнает, что вирус. В стабе тоже должно быть также т.е. каждый стаб должен быть уникальным, или хотя бы на 50% отличаться от предыдущего. Тогда и аверы не спалят.
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
хм, добавь перед дешифровкой данных антиэмуль, чтоб ав не дошел до места дешифровки данных. Сурсы вируса должны каждый раз морфиться. Добавляться трешген, левые импорты, левые функции, строки при каждом билде должны по разному шифроваться, меняться логика проги без потери функции, а после вообще обфуцировать код, добавь памп файла, иконки, сертификат + закомпилить. Иначе в стаб будет помещаться один и тот же код и при анализе авер сразу узнает, что вирус. В стабе тоже должно быть также т.е. каждый стаб должен быть уникальным, или хотя бы на 50% отличаться от предыдущего. Тогда и аверы не спалят.
Переменные не забудьте переименовать
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Переменные не забудьте переименовать
ахахха, ты и так будешь меня тролить) А вообще да, Жефс прав! Переименуй перменные, функции и у тя будет фуд рантайм и скантайм. Доказано при помощи асм сурсов кода)
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх