• VLMI - форум по обмену информацией. На форуме можете найти способы заработка, разнообразную информацию по интернет-безопасности, обмен знаниями, курсы/сливы.

    После регистрации будут доступны основные разделы.

    Контент форума создают пользователи, администрация за действия пользователей не несёт ответственности, отказ от ответственности. Так же перед использованием форума необходимо ознакомиться с правилами ресурса. Продолжая использовать ресурс вы соглашаетесь с правилами.
  • Подпишись на наш канал в Telegram для информации о актуальных зеркалах форума: https://t.me/vlmiclub

Пишем нерезидентный RunPE лоадер на C++

ims0rry

Omae wa mou shindeiru

ims0rry

Omae wa mou shindeiru
Местный
Сообщения
119
Реакции
679
0 руб.
Jabber
Please note, if you want to make a deal with this user, that it is blocked.
А прежде чем приступить к прочтению - загляни в мой бложик, там я публикую свои авторские статьи по программированию, вирусологии и прочим интересным вещам
Для просмотра содержимого вам необходимо авторизоваться.


Оригинал статьи -
Для просмотра содержимого вам необходимо авторизоваться.


Вся информация предоставлена исключительно в ознакомительных целях. Ни администрация, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
Вступление
Начнем с того, что такое лоадер.
Существует 2 версии лоадеров: резидентная и нерезидентная.


Резидентная
Эта версия в 100% случаев имеет какую-либо ПУ/Админку, после запуска -закрепляется в системе и удаленно получает команды на выполнение.
Для просмотра содержимого вам необходимо авторизоваться.


Нерезидентная
Данная версия чаще всего не имеет панели управления, но есть продукты, которые ее предоставляют. После запуска - выполняет все задания, которые предустановлены в лоадере, либо получены из админ-панели, затирает все свои файлы и самоудаляется.
Для просмотра содержимого вам необходимо авторизоваться.


В этой статье я хочу рассмотреть пример одной из функций нерезидентного лоадера: загрузка и запуск файла в памяти (средствами RunPe).


Архитектура
Для начала, нужно продумать алгоритм работы лоадера. В идеале, с сервера должен подгружаться не файл в чистом виде (иначе его сразу задетектит антивирус), а зашифрованный бинарник, который, впоследствии, будет расшифрован лоадером. Т.е. нужен отдельный энкодер.
Далее, необходим какой-нибудь RunPe, функция скачивания файла и его дешифровка.

Алгоритм получится, примерно, такой:
Скачивание файла -> Дешифровка -> Запуск в памяти


Encoder
Особо сильно заморачиваться с энкодером не нужно, можно написать обычное вычитание байт из оригинального значения:
l7iUCt1VR6aViT0OPVb4hg.png

Открываем файл, считываем его в unsigned char *, далее, вычитаем 0x56 из каждого значения массива, получившееся записываем в файл out.exe, пробуем таким же методом дешифровать и записываем дешифрованный файл в decrypted.exe.

Loader
Начнем по порядку алгоритма:
wogFJ-CEQYOQWbQsic1HKA.png

Скачивание файла реализуем средствами URLMON, важный момент, преобразование char * в LPCWSTR, без этого файл будет качаться рядом с лоадером с непонятным названием (проблемы кодировки).
grFTyEeNSLixO4_pN_xyag.png

Далее пишем метод дешифровки и запуска файла. Открываем файл, считываем его и отнимаем ключ от изначального значения массива в цикле, после чего запускаем полученный массив байт в памяти (метод RunPe можно найти в интернете, для особо ленивых выложу в сорцах).

Метод Main будет выглядеть следующим образом:
383UoeCSTeaNWC5zwbBHbA.png

Качаем файл в %temp%\pld.exe. Передаем в параметры DecryptAndRun полный путь до файла и значение, которое мы использовали в энкодере (0x56).
Также, сюда можно прикрутить паунс всех файлов в корзину, но оставлю это на вас.


Ссылки
Scantime - http://viruscheckmate.com/id/BW8mQjZE15mx
Исходники - https://github.com/ims0rry/Non-resident-RunPE-Loader
 

isys

Новичок
Сообщения
2
Реакции
0
0 руб.
А прежде чем приступить к прочтению - загляни в мой бложик, там я публикую свои авторские статьи по программированию, вирусологии и прочим интересным вещам

Оригинал статьи -

Вся информация предоставлена исключительно в ознакомительных целях. Ни администрация, ни автор не несут ответственности за любой возможный вред, причиненный материалами данной статьи.
Вступление
Начнем с того, что такое лоадер.
Существует 2 версии лоадеров: резидентная и нерезидентная.


Резидентная
Эта версия в 100% случаев имеет какую-либо ПУ/Админку, после запуска -закрепляется в системе и удаленно получает команды на выполнение.

Нерезидентная
Данная версия чаще всего не имеет панели управления, но есть продукты, которые ее предоставляют. После запуска - выполняет все задания, которые предустановлены в лоадере, либо получены из админ-панели, затирает все свои файлы и самоудаляется.

В этой статье я хочу рассмотреть пример одной из функций нерезидентного лоадера: загрузка и запуск файла в памяти (средствами RunPe).


Архитектура
Для начала, нужно продумать алгоритм работы лоадера. В идеале, с сервера должен подгружаться не файл в чистом виде (иначе его сразу задетектит антивирус), а зашифрованный бинарник, который, впоследствии, будет расшифрован лоадером. Т.е. нужен отдельный энкодер.
Далее, необходим какой-нибудь RunPe, функция скачивания файла и его дешифровка.

Алгоритм получится, примерно, такой:
Скачивание файла -> Дешифровка -> Запуск в памяти


Encoder
Особо сильно заморачиваться с энкодером не нужно, можно написать обычное вычитание байт из оригинального значения:
l7iUCt1VR6aViT0OPVb4hg.png

Открываем файл, считываем его в unsigned char *, далее, вычитаем 0x56 из каждого значения массива, получившееся записываем в файл out.exe, пробуем таким же методом дешифровать и записываем дешифрованный файл в decrypted.exe.

Loader
Начнем по порядку алгоритма:
wogFJ-CEQYOQWbQsic1HKA.png

Скачивание файла реализуем средствами URLMON, важный момент, преобразование char * в LPCWSTR, без этого файл будет качаться рядом с лоадером с непонятным названием (проблемы кодировки).
grFTyEeNSLixO4_pN_xyag.png

Далее пишем метод дешифровки и запуска файла. Открываем файл, считываем его и отнимаем ключ от изначального значения массива в цикле, после чего запускаем полученный массив байт в памяти (метод RunPe можно найти в интернете, для особо ленивых выложу в сорцах).

Метод Main будет выглядеть следующим образом:
383UoeCSTeaNWC5zwbBHbA.png

Качаем файл в %temp%\pld.exe. Передаем в параметры DecryptAndRun полный путь до файла и значение, которое мы использовали в энкодере (0x56).
Также, сюда можно прикрутить паунс всех файлов в корзину, но оставлю это на вас.


Ссылки
Scantime - http://viruscheckmate.com/id/BW8mQjZE15mx
Исходники - https://github.com/ims0rry/Non-resident-RunPE-Loader
а что с панелью как подключить
 
Сверху Снизу