Дата: 20/10/17 - 20:56 pm   9448 Тем и 92517 Сообщений

Автор Тема: Пример морфинга опкод на примере замены mov и push  (Прочитано 104583 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Октября 28, 2016, 12:11:31 pm
Ответ #10

TrueMind

  • Модератор

  • Оффлайн
  • ***

  • 162
    06.10.13
  • Reputation:
    57
    • Просмотр профиля
Цитировать
ШИфровать или МОрфить ?  ;D
В каком ключе был задан вопрос, в таком ключе был преподнесен ответ для бОльшей доходчивости для интересующегося.

des, aes в случае шк избыточны, достаточно сделать что-то серъезней порстого ксора и будет норм. например свап ближайших байт с последующим ксором по плавающему ключу.
Главная польза капитала не в том, чтобы сделать больше денег, но в том, чтобы делать деньги ради улучшения жизни. © Генри Форд
[email protected] - велком :)

Октября 30, 2016, 12:08:36 am
Ответ #11

knopkin


  • Оффлайн
  • *

  • 7
    19.10.16
  • Reputation:
    0
    • Просмотр профиля
TrueMind, пока что остановился на перестановке и ксоре байт, тем более что нашел подобное в дикой среде. В целом моя ситуация сводится к созданию потока из доверенного процесса и записью в него шеллкода, хвост которого будет расшифровывать тело. Задача в том, чтобы нельзя было вынести мой софт со всех машин одновременно (причем я в юзермоде). Шифрование в данном случае рассматриваю как способ морфинга с целью защиты от детекта при записи байт в поток, т.е. чтобы шк был уникальным для каждой машине (или на небольшом количестве). А когда управление будет передано на шк, детект может произойти только в случае, если аверам не понравится стек вызовов, правильно? Или стоит в том числе морфить исходный (незакриптованный) шк заменой опкодов?
Ушел из темы. Все контакты не актуальны.

Октября 30, 2016, 09:10:41 pm
Ответ #12

TrueMind

  • Модератор

  • Оффлайн
  • ***

  • 162
    06.10.13
  • Reputation:
    57
    • Просмотр профиля
ESET, MSE а теперь еще AVAST умеют сканировать память неугодного процесса - и соответственно вне зависимости от того, как был пошифрован шк, в памяти в конце концов он окажется в своей естественной форме, соответственно нет ничего сложного чтобы спалить его в этом виде. В таком случае замена опкод их аналогами (морфинг) должен решить
эту проблему. На стек вызовов, в случае когда шк уже в памяти а не эмулируется, аверы на вряд ли отреагируют.
Главная польза капитала не в том, чтобы сделать больше денег, но в том, чтобы делать деньги ради улучшения жизни. © Генри Форд
[email protected] - велком :)

Мая 25, 2017, 07:38:16 pm
Ответ #13

fgov


  • Оффлайн
  • *

  • 5
    25.05.17
  • Reputation:
    0
    • Просмотр профиля
Имеет смысл шифровать перестановкой с плавающим ключом, свапом соседних байт, реверсом байт а также заменой одних байт другими (гуглить stolen bytes).

Можно более подробно, что за шифр перестановкой с плавающим ключом? Про плавающий ключ не нашел ничего.

Июня 09, 2017, 10:57:32 pm
Ответ #14

TrueMind

  • Модератор

  • Оффлайн
  • ***

  • 162
    06.10.13
  • Reputation:
    57
    • Просмотр профиля
Под плавающим ключом понимается (в самом базовом варианте):

for (int i = 0; i < buflen; i++)
{
 b_bytearr[i] = abyte ^ (xor_key + i);
}

где (xor_key + i) = ключ, меняющийся при каждой интерации цикла.
Главная польза капитала не в том, чтобы сделать больше денег, но в том, чтобы делать деньги ради улучшения жизни. © Генри Форд
[email protected] - велком :)

Октября 11, 2017, 02:05:17 pm
Ответ #15

Blitz


  • Оффлайн
  • *

  • 37
    21.06.17
  • Reputation:
    3
    • Просмотр профиля
по опыту, антивирусы сканирующие память цепляются к строкам, а не к цепочкам инструкций. ну только если там уж совсем какая-то экзотика.
PM