Полиморфизм в Delphi. А почему бы и нет?
|
Anton93
|
Дата: Воскресенье, 29.09.2013, 13:36 | Сообщение # 1
|
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
|
Доступно только для пользователей
ICQ: 41896
Сообщение отредактировал Anton93 - Воскресенье, 29.09.2013, 13:43
|
|
|
|
|
Neo
|
Дата: Воскресенье, 29.09.2013, 15:41 | Сообщение # 2
|
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
|
А я думал,что будет пример))) |
|
|
|
|
Anton93
|
Дата: Воскресенье, 29.09.2013, 16:08 | Сообщение # 3
|
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
|
Neo, пример если выкладывать то только в приват, полиморфных движков на delphi я еще не встречал вообще.
ICQ: 41896
|
|
|
|
|
Slash
|
Дата: Воскресенье, 29.09.2013, 22:36 | Сообщение # 4
|
Постоянный
Зарегистрирован: 20.12.2012
Группа: Пользователи
Сообщений: 161
Статус: Offline
|
Цитата (Anton93)
Neo, пример если выкладывать то только в приват, полиморфных движков на delphi я еще не встречал вообще.
Криптор Morphine полиморфный, при этом с открытым исходным кодом.
|
|
|
|
|
Anton93
|
Дата: Воскресенье, 29.09.2013, 23:16 | Сообщение # 5
|
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
|
Slash, морфин использует Assembler, более того, его уже не обновляют и собраные приложения не идут под x64. я же предлагаю метод без ассемблера, чтобы не возникало таких нежданчиков.
ICQ: 41896
|
|
|
|
|
Anton93
|
Дата: Вторник, 01.10.2013, 11:24 | Сообщение # 6
|
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
|
Доступно только для пользователей
ICQ: 41896
Сообщение отредактировал Anton93 - Вторник, 01.10.2013, 15:37
|
|
|
|
|
Anton93
|
Дата: Вторник, 05.11.2013, 14:53 | Сообщение # 7
|
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
|
Доступно только для пользователей
ICQ: 41896
Сообщение отредактировал Anton93 - Вторник, 05.11.2013, 14:55
|
|
|
|
|
ramzeswr
|
Дата: Среда, 06.11.2013, 08:08 | Сообщение # 8
|
Участник
Зарегистрирован: 17.04.2013
Группа: Пользователи
Сообщений: 61
Статус: Offline
|
Anton93, молодец, прям слов нет. Респект и уважуха) |
|
|
|
|
xXxSh@dowxXx
|
Дата: Среда, 06.11.2013, 12:41 | Сообщение # 9
|
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
|
Да, зачетно!, большую работу проделал, молодец)
Удивило, особенно реакция аверов, а в частности "Avira", никогда бы не подумал что она может показывать такие результаты 
Сообщение отредактировал xXxSh@dowxXx - Среда, 06.11.2013, 12:42
|
|
|
|
|
Anton93
|
Дата: Воскресенье, 17.11.2013, 20:39 | Сообщение # 10
|
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
|
Доступно только для пользователей
ICQ: 41896
Сообщение отредактировал Anton93 - Воскресенье, 17.11.2013, 20:41
|
|
|
|
|
xXxSh@dowxXx
|
Дата: Понедельник, 18.11.2013, 01:14 | Сообщение # 11
|
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
|
Отлично!, будем ждать результатов, прям заинтриговал))) |
|
|
|
|
dolphin
|
Дата: Понедельник, 18.11.2013, 10:20 | Сообщение # 12
|
Администратор
Сообщений: 904
Статус: Offline
|
Anton93, к твоему посту №10, когда то тоже заморачивался с таблицей импорта и шифрованием функций на делфи, правда приходилось кое где использовать ассемблерные вставки, но все таки вот такой ехе получился на выходе (во вложении), вполне рабочий и без использования таблички импорта, функции импортируются по ходу выполнения программы, можно убрать секции размер которых по 512 байт, их Делфийский линковщик все равно вставляет, но они пустые и не используются. Приложил очищеные системные модули, в dpr необходимо все равно вписать exitprocess в конце, потому что я и ее удалил из них, думаю пригодятся наработки.
А вообще по теме в моем понимании полиморфизм на делфи будет представлять собой некое соединение DCC32.EXE (Компилятор делфи) и функционала привязанного к нему то есть генератор исходного полиморфного кода который будет каждый раз генерировать новый модифицированный исходник и DCC32.EXE в свою очередь будет его компилировать, без него в принципе не обойтись в нашем случае. А все приведённые выше блок схемки относятся скорее всего к возможным задачам ассемблера.
Плюс еще добавил Project2 где просто облегченная версия, на стадии облегчения №1 (когда код очищается от ненужных функций)
Система: Windows 10 x64, Windows XP
Среды программирования: Delphi 7, Delphi 10 Seattle
Я не профессионал, я всего лишь любитель
Я не вредитель, я всего лишь теоретик
Сообщение отредактировал dolphin - Понедельник, 18.11.2013, 10:42
|
|
|
|
|
Anton93
|
Дата: Понедельник, 18.11.2013, 14:52 | Сообщение # 13
|
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
|
Доступно только для пользователей
ICQ: 41896
Сообщение отредактировал Anton93 - Понедельник, 18.11.2013, 14:55
|
|
|
|
|
Neo
|
Дата: Среда, 20.11.2013, 15:51 | Сообщение # 14
|
Модератор
Зарегистрирован: 04.05.2010
Группа: Модераторы
Сообщений: 317
Статус: Offline
|
Anton93, Зачётно,моложец! |
|
|
|
|
Anton93
|
Дата: Суббота, 30.11.2013, 18:48 | Сообщение # 15
|
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
|
Доступно только для пользователей
ICQ: 41896
Сообщение отредактировал Anton93 - Суббота, 30.11.2013, 18:52
|
|
|
|
|
C@T
|
Дата: Вторник, 03.12.2013, 01:43 | Сообщение # 16
|
Авторитетный
Зарегистрирован: 06.03.2010
Группа: Модераторы
Сообщений: 265
Статус: Offline
|
Anton93, молодец что решил посвятить себя таким вещам как крипторы.
насколько я понял твой крипт работает как матрешка(ехе-ха внутри расшифровщика), т.е крипт несет в себе шифрованное тело другого ехе файла, который он потом загружает в память и исполняет. такой вид крипторов очень популярный, я писал аналогичный криптор но на плюсах, который давал на chk4me.com результат 0/24. но у него есть огромный минус, хоть он и спасает от антивирусов, но это все пока ты его не "пустишь в бой" , начнет палится сам стаб(контейнер который несет в себе шифрованную ехе-шку) , далее в таком крипте не заставит труда вытащить тело твоей зашифрованной ехе-шки , что умеют делать некоторые антивирусы, даже достаточно большая часть. в итоге приходится чистить стабы, что очень трудоемко, в данном виде крипторов очень сложно сделать именно полиморф, который бы генерил не просто разные по сигнатуре файлы, забивая их мусором, к примеру, в данном крипторе почти не спасает криптонуть ехе-шку с другим ключем шифрования, например(все выше сказанное это не догадки, а личный опыт).(еще как минус можно отнести отсутствие ресурсов, но это не страшно)
по поводу криптора советовал бы тебе сделать так же подгрузку ДЛЛ-лек при обработки импортов, т.е не вызывать LoadLibrary и GetProcAddress , а подгрузать длл из файла в память и в ней тоже обрабатывать импорты и релоки , желательно еще и tls. и подумать все таки над алгоритмом рандомизирования кода, что в высокоуровневых языках очень сложно.
пожелания, надеюсь ты доведешь все это хотя бы до того что бы твой расшифровщик был на асме и напишешь алгоритм рандомизации ассемблерных инструкций + посмотришь в сторону интерпритации кода, что бы с твоего криптора не могли стянуть дамп зашифрованной внутри ехе-хи.(с последним у самого большие проблеммы)
|
|
|
|
|
Anton93
|
Дата: Вторник, 03.12.2013, 10:29 | Сообщение # 17
|
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
|
Доступно только для пользователей
ICQ: 41896
Сообщение отредактировал Anton93 - Вторник, 03.12.2013, 10:38
|
|
|
|
|
d4rkzy
|
Дата: Четверг, 19.12.2013, 17:28 | Сообщение # 18
|
Постоянный
Зарегистрирован: 15.11.2013
Группа: Пользователи
Сообщений: 135
Статус: Offline
|
Anton93, Молочуля - прям слов нет. Можешь чуть больше рассказать о работе стаба (Т.e как происходит запуск полезной нагрузки, твоими словами боеголовки=)
А то щас криптор пишу, на делфях, работает как шифрованный ехе в стабе который расшифрует этот ехе и заинжектит в память (Т/е все в памяти) - Смог обойти рыночные антивирусы (Дрвеб, аваст и тк) а вот мелочные палять эвристикой - что делать уже не знаю, думаю твой рассказ поможет и мне и другим ребятам =) |
|
|
|
|
Anton93
|
Дата: Воскресенье, 22.12.2013, 20:37 | Сообщение # 19
|
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
|
Цитата
больше рассказать о работе стаба
на самом деле, по понятным причинам, пока не хотелось бы палить работу стаба . Во всяком случае я уже нашел три разных способа "выполнения внутри себя".
Цитата
А то щас криптор пишу, на делфях, работает как шифрованный ехе в стабе который расшифрует этот ехе и заинжектит в память (Т/е все в памяти)
метод, как писали выше популярный и эффективный, так что работаешь в верном направлении 
Цитата
Смог обойти рыночные антивирусы (Дрвеб, аваст и тк) а вот мелочные палять эвристикой - что делать уже не знаю
по обходу, и в частности по обфускации, хотелось бы сказать многое, за последние полгода, взрыв топовой эвристики идет с пол щелчка, я понял на, что они смотрят, и как это можно обойти/замусорить/растянуть, что ни эмулятор кода, ни анализатор не выдерживают, поэтому постом тут не ограничиться, хотелось бы вынести все в отдельную статью/тему.
Что касается не топовых решений, я думаю там в большинстве случаев можно отнести к ложным срабатываниям, известно что на пустой проект делфи из 20 ав 10-8 дают реакцию на безобидный файл, поэтому я с большей уверенностью могу сказать, что идет ложное срабатывание, и я не верю, что они настолько могут сильно раскрутить в эмуляторе exe'шку чтобы добраться до нужного, когда абсолютные лидеры уже бессильны.
ICQ: 41896
|
|
|
|
|
xXxSh@dowxXx
|
Дата: Среда, 25.12.2013, 21:18 | Сообщение # 20
|
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
|
Anton93 слушай, я так понимаю ты каждый раз тестируешь то что у тебя получается на вирустотале, так?
а на самих антивирусах тестировать не пробовал?
да, конечно я понимаю что это муторно ставить каждый раз новый АВ для теста, но что то мне подсказывает, я даже больше скажу, скорее всего так и есть, что на вирустотале тупо ложные срабатывания, и результаты оттуда будут значительно отличаться от реальной ситуации с установленным АВ.
Так что не поленись, попробуй установить и проверить хотя бы часть из тех что у тебя на вирустотале показывали детектед.
Сообщение отредактировал xXxSh@dowxXx - Среда, 25.12.2013, 21:20
|
|
|
|
|
Anton93
|
Дата: Среда, 25.12.2013, 21:44 | Сообщение # 21
|
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
|
Доступно только для пользователей
ICQ: 41896
Сообщение отредактировал Anton93 - Среда, 25.12.2013, 21:59
|
|
|
|
|
d4rkzy
|
Дата: Пятница, 27.12.2013, 14:51 | Сообщение # 22
|
Постоянный
Зарегистрирован: 15.11.2013
Группа: Пользователи
Сообщений: 135
Статус: Offline
|
Anton93, Спасибо за ответ Большинство ав ушли после запутки кода (Функция в функции и опять в функции)
Рынок сбил, в итоге скан файла вышел 24/3 - Из маинстрима кричит только Avira - что с ней не так я не пойму, толи ученные в их лаборатории сидят толи что.
Цитата
понял на, что они смотрят, и как это можно обойти/замусорить/растянуть, что ни эмулятор кода, ни анализатор не выдерживают, поэтому
Надеюсь в скором времени напишешь статью, было бы интересно почитать =)
Не можешь написать что нибудь про обход Avira? А то уже мозг переломал - не понимаю почему детект срабатывает
Цитата
скажу больше, даже премиум акк взял на chk4me чтобы тестировать прям сразу после компиляции и фиксить, помню в день файлов по 50 сливал, не меньше. вот тогда и понял кто на что кричит))
А я вот тоже купил премиум у них В день слил им более 60файлов - искал часть кода на которую ав кричат =)
|
|
|
|
|
Anton93
|
Дата: Суббота, 28.12.2013, 17:34 | Сообщение # 23
|
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
|
Доступно только для пользователей
ICQ: 41896
|
|
|
|
|
d4rkzy
|
Дата: Суббота, 28.12.2013, 19:46 | Сообщение # 24
|
Постоянный
Зарегистрирован: 15.11.2013
Группа: Пользователи
Сообщений: 135
Статус: Offline
|
Anton93, chk4me щас не работает - скан кину сразу как отвиснет он, а кричала вроде бы как get.drop (не то что - скину скан позже)))
Цитата Anton93 ( )
необходимо опытным путем установить, на какую именно функцию идет реакция, чтобы точно знать что обфускацировать
Т/е просто удалять функции и проверять на вирусы (если да, то я весь код можно сказать снес уже - авира кричать не перестала)
|
|
|
|
|
Anton93
|
Дата: Суббота, 28.12.2013, 21:18 | Сообщение # 25
|
Продвинутый
Зарегистрирован: 06.01.2010
Группа: Модераторы
Сообщений: 320
Статус: Offline
|
Доступно только для пользователей
ICQ: 41896
|
|
|
|
|