ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Низкоуровневое шифрование самописных вирей
  #1  
Старый 18.08.2006, 06:45
Аватар для hidden
hidden
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме:
5887054

Репутация: 1292


По умолчанию Низкоуровневое шифрование самописных вирей

Низкоуровневое шифрование самописных вирей.

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

Теория:
Антивирусы, проверяя большие объемы файлов, ищут в файлах заранее подготовленные программистами последовательности байт. Значит для обхода этой процедуры, нужно сделать тело вируса уникальным, а всё остальное наиболее похожим на остальные программы, именно этим я и предлагаю заняться в этой теме.

Чтоб не начинать с пустого места, я приготовил несколько “программок”, скомпилированных с одного и того же исходника (без внесения в него каких либо изменений), с интервалом времени примерно в 10 сек. И выполняющего следственно одну и туже функцию, вывод “MessageBox”.

Файлы были автоматически сгенерированы, и зашифрованы ассемблером(с использованием макросом), причём тело программы было зашифровано методом xor(“исключающее или”), а потом тело расшифровывателя, было превращено в код, который при запуске восстановит его на своё же место и передаст ему управление, что без проблем просматривается в любом отладчике.

При всём этом, пароль к xor шифровальщику и последовательность команд востанавливателя кода, зависят от текущего времени компиляции.

В восстановителе кода участвуют несколько команд:
Код:
xor byte[pos], sume byte
,
add byte[pos], sume byte
или
sub byte[pos], sume byte
,
mov byte[pos], sume byte
,
xor byte[pos], not sume byte
not byte[pos]
,
add byte[pos], not sume byte
not byte[pos]
или
sub byte[pos], not sume byte
not byte[pos]
,
mov byte[pos], not sume byte
not byte[pos]
Результат обсуждения и коррекции, планируется разместить в закрытом разделе, а также отправить в пм всем активно принимавшим участие в нахождении недостатков этого программного кода, и методов их устранения.

Чего я жру:
Предложения способов автоматического выделения данной программы среди остальных программ, не требующих много ресурсов, и отладки программы, а также способов обхода этих способов. И ещё, недолжно использоваться прямых адресов, для возможности применения его в DLL модулях без таблицы исправления адресов.
ИМХО будущее за DLL вирусами.

Все файлы сжаты раром, сумма размеров 6 файлов 9,2 Кб, в архиве 4 Кб <скачать>

P.S. Думаю тема будет долгая.
[offtop]
В результате мы разработаем основу для самых опастных не находимых автоматическисаморегенери руемых вирусов, которые в будущем захватят мир, ктулху и феникгс отдыхают. Хотя помоему я немножко приувеличил :-)
[/offtop]
 
Ответить с цитированием

  #2  
Старый 18.08.2006, 15:26
Аватар для ProTeuS
ProTeuS
HARDstasy
Регистрация: 26.11.2004
Сообщений: 1,367
Провел на форуме:
4226592

Репутация: 2175


Отправить сообщение для ProTeuS с помощью ICQ
По умолчанию

ну дык это ведь неново - банальный СамоМодифицирующийсяКод, при4ем практи4ески все авери давно палят декриптор, расшифровующий код вируса таким методом

Последний раз редактировалось ProTeuS; 18.08.2006 в 15:34..
 
Ответить с цитированием

  #3  
Старый 18.08.2006, 16:52
Аватар для hidden
hidden
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме:
5887054

Репутация: 1292


По умолчанию

Цитата:
Сообщение от ProTeuS  
ну дык это ведь неново - банальный СамоМодифицирующийсяКод, при4ем практи4ески все авери давно палят декриптор, расшифровующий код вируса таким методом
Ну так я для этого и создал тему, чтоб обсудить и сделать его не таким банальным, одна голова хороше, а форум голов очень хорошо .
Лично я не пойму как они его палят(ведь там только пара байт остаёться одинакова), может посветишь?
 
Ответить с цитированием

  #4  
Старый 18.08.2006, 18:17
Аватар для ProTeuS
ProTeuS
HARDstasy
Регистрация: 26.11.2004
Сообщений: 1,367
Провел на форуме:
4226592

Репутация: 2175


Отправить сообщение для ProTeuS с помощью ICQ
По умолчанию

ну раз так - давай обсуждать =)

нас4ет как палят:

1. поскольку в слу4ае СМК код сохраняется в бинарнике пошифрованым (неважно каким алгоритмом), то сигнатурный анализатор (базы) аверя сразу не дадут никакого результата

2. стало быть, палит вирус эвристи4еский анализатор с заданым уровнем достоверности.

например: если есть пошифрованое тело, то эвристик заметит неладное если на старте проги идут не стандартные GetModuleHandle и т.д. апи, а сам декриптор, который в цикле долго и нудно 4то-то будет расшифровывать - это первое. второе: 4аще всего тот же декриптор выносят в другую секцию файла, либо осуществляю EPO-инфекцию (вызов вредоносного кода подменой, например, вызова какой-либо апи функции, подменив ее в импорте).

вообще вариантов ку4а и по4итать о подобных вещах монжо в любой книге по вирусописанию, форумам по vx\rat, васме (рукомендую), архивах зомбы (суперрекомендую
 
Ответить с цитированием

  #5  
Старый 18.08.2006, 22:13
Аватар для hidden
hidden
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме:
5887054

Репутация: 1292


По умолчанию

Цитата:
Сообщение от ProTeuS  
стало быть, палит вирус эвристи4еский анализатор с заданым уровнем достоверности.

например: если есть пошифрованое тело, то эвристик заметит неладное если на старте проги идут не стандартные GetModuleHandle и т.д. апи
Ну, если зайти в папку system32 и посмотреть, в начале модулей DLL , очень редко встречается вызов API
А вообще его можно обнаружить, таким регулярным выражением
Код:
/\xE8.\0{3}.{16,32}\x5D(\x80[\x75\x4D\x45\x65\x4D\x6D]..|\xC6\x45..|\xF6\x55.){8,}/
, поэтому я и ищу что-нибудь, чем можно лучше защитить этот код.
Цитата:
Сообщение от ProTeuS  
сам декриптор, который в цикле долго и нудно 4то-то будет расшифровывать
Шифрование используют не только в вирусах, но и при защите прог, требующих регистрацию, от крякеров .
Цитата:
Сообщение от ProTeuS  
4аще всего тот же декриптор выносят в другую секцию файла, либо осуществляю EPO-инфекцию (вызов вредоносного кода подменой, например, вызова какой-либо апи функции, подменив ее в импорте).
Вот это кокраз и легче всего обнаружить, нарушение таблицы импорта.
Цитата:
Сообщение от ProTeuS  
архивах зомбы (суперрекомендую
А где эти архивы найти можно?
 
Ответить с цитированием

  #6  
Старый 18.08.2006, 22:25
Аватар для ProTeuS
ProTeuS
HARDstasy
Регистрация: 26.11.2004
Сообщений: 1,367
Провел на форуме:
4226592

Репутация: 2175


Отправить сообщение для ProTeuS с помощью ICQ
По умолчанию

>>Ну, если зайти в папку system32 и посмотреть, в >>начале модулей DLL , очень редко встречается >>вызов API
дык на дллмейн смотрят, либо трейсером на у4астки выполняемые в самой либе

>>А вообще его можно обнаружить, таким >>регулярным выражением

какие РВ? 4ет первый раз слышу. и за4ем они, если всеравно будет код их обрабатывающий?
 
Ответить с цитированием

  #7  
Старый 18.08.2006, 22:43
Аватар для hidden
hidden
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме:
5887054

Репутация: 1292


По умолчанию

Цитата:
Сообщение от ProTeuS  
какие РВ? 4ет первый раз слышу.
Перл, хотя похожее можно легко перенести и на с++
Код:
sub findvir(){
  local($fn)=@_;
  open(IN,$fn)||next;binmode(IN);read(IN,$buf,-s$fn);close(IN);
  return ($buf=~/\xE8.\0{3}.{16,32}\x5D(\x80[\x75\x4D\x45\x65\x4D\x6D]..|\xC6\x45..|\xF6\x55.){8,}/);
}

while(<*.exe>){ print "Found in $_\n\n" if(&findvir($_)); }

while(<C:\\windows\\system32\\*.*>){ print "Found in $_\n" if(&findvir($_)); }
Цитата:
Сообщение от ProTeuS  
за4ем они, если всеравно будет код их обрабатывающий?
Ну например: Если в шифровщик будет включено половина ассемблерских комманд, то этот код, будет не отличить от осталькых программ.
Но это конечно слишком, поетому стоит подумать, что именно надо, и какким способом это реализовать, придумать своё!

Кстати, ссылочку не подкинешь?
Цитата:
Сообщение от ProTeuS  
архивах зомбы (суперрекомендую
 
Ответить с цитированием

  #8  
Старый 18.08.2006, 23:58
Аватар для ProTeuS
ProTeuS
HARDstasy
Регистрация: 26.11.2004
Сообщений: 1,367
Провел на форуме:
4226592

Репутация: 2175


Отправить сообщение для ProTeuS с помощью ICQ
По умолчанию

>>поэтому я и ищу что-нибудь, чем можно лучше защитить этот код.
имено защитить? и какой именно код?

>>Шифрование используют не только в вирусах, но и при защите прог, требующих регистрацию, от крякеров .
эт понятно, на то она и криптограйия 4тобы защищать все на основе теории сложности


>>А где эти архивы найти можно?
где-то на форуме кряклаба линк на этой недели на некоторые статьи пробегал, а вообще по4итай A29, фряк

Последний раз редактировалось ProTeuS; 19.08.2006 в 00:01..
 
Ответить с цитированием

  #9  
Старый 19.08.2006, 00:09
Аватар для ProTeuS
ProTeuS
HARDstasy
Регистрация: 26.11.2004
Сообщений: 1,367
Провел на форуме:
4226592

Репутация: 2175


Отправить сообщение для ProTeuS с помощью ICQ
По умолчанию

Цитата:
Сообщение от hidden  
Перл, хотя похожее можно легко перенести и на с++
Код:
sub findvir(){
  local($fn)=@_;
  open(IN,$fn)||next;binmode(IN);read(IN,$buf,-s$fn);close(IN);
  return ($buf=~/\xE8.\0{3}.{16,32}\x5D(\x80[\x75\x4D\x45\x65\x4D\x6D]..|\xC6\x45..|\xF6\x55.){8,}/);
}

while(<*.exe>){ print "Found in $_\n\n" if(&findvir($_)); }

while(<C:\\windows\\system32\\*.*>){ print "Found in $_\n" if(&findvir($_)); }

Ну например: Если в шифровщик будет включено половина ассемблерских комманд, то этот код, будет не отличить от осталькых программ.
Но это конечно слишком, поетому стоит подумать, что именно нтатадо, и какким способом это реализовать, придумать своё!

Кстати, ссылочку не подкинешь?
а за4ем это все, если трейсер в складе аверя будет палить ЛЮБОЙ код динами4ески в время выполнения?
 
Ответить с цитированием

  #10  
Старый 19.08.2006, 01:07
Аватар для DisturbeR
DisturbeR
Участник форума
Регистрация: 11.03.2006
Сообщений: 119
Провел на форуме:
1166355

Репутация: 177
По умолчанию

Цитата:
за4ем это все, если трейсер в складе аверя будет палить ЛЮБОЙ код динами4ески в время выполнения?
Это как раз и есть основной недостаток всех крипторов, как не защищай, не прячь, код будет выполнятся и анализироваться, думать надо не о том как спрятать, а как скрыть вредоносное действие.
Как то нужно было срочно криптануть файл, ничего подходящего под рукой не было, в итоге поступил так: запаковал файл каким-то стандартным упаковщиком с защитой паролем + написал простой скриптик который водил пароль в форму и жал ОК. Заняло это 3 минуты, а защита практически неуязвимая. Естественно, только в том случае, если антивирус не запущен на постоянную проверку.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ