• Уменьшение отступа

    Обратная связь

    (info@ru-sfera.pw)

Малварь как искусство Модификация кода. Часть три. Дополнение.


X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 068
Репутация
8 176
Последняя наверное часть.

Просто немного сказать, о чём не сказал.

Предыдущие части тут:

Малварь как искусство - Самомодификация и генерация кода на лету в си. Часть 1. Вкуриваем суть.

Малварь как искусство - Генерация кода на си. Часть вторая. Исполняем код на лету

Вообще этим можно таких дел наворотить. Dmeh-Smeh-Smeh!!!big010101sm3888

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

Да-что там антивирус, даже реверсер в ахересе будет. :)

Правда у способа есть минусы:

1. Очень-уж сложная реализация, нужно-будет посидеть покодить если программа большая.

2. Также размер ваших программ тоже может разрастись.

Ну и последнее, вот ещё старый и рабочий способ поменять несколько байт в вашем процессе, при помощи WriteProcessMemory (если не установлены флаги защиты).

Первое, что нужно сделать для этого – получить доступ к загруженному в память процессу, при помощи функции OpenProcess с атрибутами доступа PROCESS_VM_OPERATION и PROCESS_VM_WRITE.

Вот пример, рабочий:
Код:
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "windows.h"

int WriteMe(void *addr, int wb)
{
   HANDLE
       h = OpenProcess(PROCESS_VM_OPERATION |
       PROCESS_VM_WRITE,
       true, GetCurrentProcessId());
   return WriteProcessMemory(h, addr, &wb, 1, NULL);
}
int main(int argc, char* argv[])
{
   _asm {
       push 0x74; JMP >> JZ
           push offset Here
           call WriteMe
           add esp, 8
       Here: JMP short Here
   }

   printf("Hello i am virus ! :)");
 
   while (1);
   return 0;
}

Получаем:

upload_2017-11-12_12-22-41.png


Как видите, программа заменяет бесконечный цикл простым переходом JZ. Это позволяет программе перейти к следующей инструкции, и мы видим сообщение, которое подтверждает факт замены.

Здорово, да?

В общем способы интересные. :)
 

Indy

Уважаемый пользователь
Форумчанин
Регистрация
21.01.2015
Сообщения
277
Репутация
105
X-Shar,

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

Идея отличная, это анклав. Реалация упирается во многие проблемы, которые очень сложно решаются. Из всех этих проблем главная - передача указателя в иной мод(км). Так как такие имплементации основаны на выборке данных из текущего мода, а выборка из более привилегед мода не доступна, то декрипт памяти этим обычным путём невозможен.
Всякая передача указателя в км приведёт к крэшу. К примеру передаётся указатель в ядерный сервис на строку для вывода хеловорда, а эта память криптована или вообще не существует - результатом будет ошибка.
Есть два пути решения: анклав для кода, так как к нему нет обращений из км, но для этого необходима особая структура модуля, где секция кода содержит только код и не имеет констант. Либо очень сложный путь решения, создание сервисных прототипов и подмена указателей. Во втором случае реализация становится слишком сложной.
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 068
Репутация
8 176
Либо очень сложный путь решения, создание сервисных прототипов и подмена указателей. Во втором случае реализация становится слишком сложной.
Всё упирается в ресурсы, в т.ч. и людские. Если это какая-то серьёзная малварь или направленная атака, то способ более-чем актуален, т.к. если работать в команде, относительно быстро это можно реализовать.

Я уже не говорю, что вон последние исследования вирусов показали, что есть вирусы, которые вообще точат под определённое оборудование. Тот-же сименс например, а это даже ещё и сложнее. :)

Если говорить про малварь, аля спамерное письмо бухгалтеру и шифрование с требованием выкупа. А таких сейчас наверное около 90%.

То им нахрен не нужны такие технологии, им проще использовать какой-нить скрипт или легальный софт для атак (Типо RMS, WinRar и т.д. ).

Ну а действительно, сейчас нужно минимальными знаниями обладать, что-бы закодить тот-же стилер например на С#. Про RMS, так-вообще, делают эти сборки кому не лень.

Я это к тому-что, к сожалению обсуждать тематику перестали, причём давно.

Я ведь незря эти темы тут создал, темы на самом деле не новые и простецкие, ну какая проблема скопировать функцию на си ? Да и сама идея давно обсуждалась, да например в старых статьях у того-же Криса.

Мне было интересно, ответить-ли кто по этим темам. Но так практически никто и не ответил. :(

Я это к тому, что развитие системного программирования вижу в небольших-то и отраслях. Это либо в разработке операционок реального времени, отрасль сейчас так-сказать в топе. Либо в создании конкретного софта для оборудования.

Всё остальное к сожалению ведёт к постепенному ограничению программиста. Вот например та-же новая студия не даёт копирование памяти и т.д. Тот-же трушный memcpy, вы не сделаете, студия даже не соберёт проект.

Всё скоро дойдёт, что программист будет делать только примитив, в виде условных операторов, циклов и т.д.

На самом-деле на западе уже давно такая тенденция идёт, есть "кодировщики", которые просто переводят в код, то-что им сказали, не вникая в суть.

Хоть всё-сказанное мало относится к VX. Но всё-же как-то мало приятного, раньше считалось что программист/разработчик всё-же творческая профессия, сейчас-же это постепенно всё сводится к обезьяней рутине, не более того. :(
 
Автор темы Похожие темы Форум Ответы Дата
X-Shar Технологии создания невидимой малвари 7
X-Shar Технологии создания невидимой малвари 34
X-Shar Технологии создания невидимой малвари 17
X-Shar Технологии создания невидимой малвари 1
X-Shar Технологии создания невидимой малвари 0
X-Shar Технологии создания невидимой малвари 1
X-Shar Технологии создания невидимой малвари 0
X-Shar Технологии создания невидимой малвари 0
X-Shar Технологии создания невидимой малвари 3
Верх Низ