Крипторы

Тема в разделе "WASM.BEGINNERS", создана пользователем Orbit, 6 май 2017.

  1. Orbit

    Orbit Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    110
    Адрес:
    г. Москва
    Добрый день!
    Объясните мне пожалуйста принципы криптования exe dll
    Хочу написать самый простой криптор на fasm, от нечего делать
    Что такое полиморфный криптор, xor и какие еще бывают
    В общем мне пригодится всё
     
  2. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Оригинальные секции pe-фаела переводятся в свой формат, пакуются, шифруются, етц. В секцию кода вставляется код декриптора, который получает управление при старте ехе, перемещает свое тело в свободную область, расшифровывает/распаковывает оригинальные секции и раскладывает их по своим местам; после чего выполняет работу лоадера по настройке импортов/релоков и передает управление на оригинальную точку входа.

    Криптор, код дешифровщика которого будет уникальным и не похожим на предыдущие при каждом билде.

    Все ограничено только твоей фантазией :)
     
  3. Orbit

    Orbit Member

    Публикаций:
    0
    Регистрация:
    13 дек 2016
    Сообщения:
    110
    Адрес:
    г. Москва
    Это очень сложно реализовать пока для меня. Возьму что ни будь попроще и поэффективнее. Спасибо.
     
  4. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Orbit,
    Возьми лучше исходники какого-нибудь готового пакера (вот прям upx и взять) и что-нибудь переделай в нем по-своему: другой алго шифрования, обход эмуляторов (не абсолютный, без vmbe, лол), етц.
     
  5. yashechka

    yashechka Ростовский фанат Нарвахи

    Публикаций:
    90
    Регистрация:
    2 янв 2012
    Сообщения:
    1.449
    Адрес:
    Россия
  6. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Orbit,

    Ключевой вопрос - почему вы этим интересуетесь ?

    Крипторы не имеют отношения к виксам. Далее вы это поймёте. Целью криптования является скрытие модуля от ав. Любая обработка запускаемого файла для очистки от детекта именуется криптованием. Криптор же это приложение, которое делает такую очистку.

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

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

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

    rmn,

    > обход эмуляторов (не абсолютный, без vmbe, лол

    Это типо сарказм ?
    Тот мотор является первой имплементацией юзер стекового визора. Это сильная техника, которая была развита до анклавов. Но видимо вы не в теме.
     
    galenkane нравится это.
  7. galenkane

    galenkane Active Member

    Публикаций:
    0
    Регистрация:
    13 янв 2017
    Сообщения:
    301
    Мы верим в вас, на другой борде о вас отзываются как о маге волшебнике, который не хочет пилить до конца. Утрите им нос. RunPE есть где в сети для быстрого сбивания сигнатур от ав?
     
  8. _edge

    _edge Well-Known Member

    Публикаций:
    1
    Регистрация:
    29 окт 2004
    Сообщения:
    631
    Адрес:
    Russia
    Тоже для сбития сигнатур:

    В сети Vazonez выкладывал утилиту с неприличным названием, АВзвезда (вместо "звезда" матерное слово).
     
  9. Fail

    Fail Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2012
    Сообщения:
    503
  10. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    galenkane,

    > RunPE есть где в сети для быстрого сбивания сигнатур от ав?

    Полноценной реализации нет(без запуска процесса), нет норм способа повторно выполнить инициализацию процесса, отвалится на коннекте к csrss. Смысла такое делать тоже особо нет.

    https://yadi.sk/d/a0n1noAB3Fa3pM
     
  11. R307

    R307 New Member

    Публикаций:
    0
    Регистрация:
    26 май 2017
    Сообщения:
    12
    А почему хотите именно на асме писать ?
    Чем С++ не устраивает ? Например в той-же визуалке, можно делать асм. вставки для доступа к нужным регистрам и т.д.
    Тем самым у вас будет понятный код, в котором легко разобраться.
    Крипторы выполняют роль сбития сигнатурного детекта, но они не могут обходить проактивную защиту и т.д., это должно-быть реализованно в самом вирусе.
    Полиморфизм можно добится, путём генерации мусора в рандомном порядке например, а также шифруя с разным ключом.
    Простой алгоритм криптора:
    По сути криптор - Это две программы: Стаб и конструктор с гуем, который поместит в конец стаба наш зашифрованный файл.
    1)Криптуем вирус конструктором, например этим https://ru.wikipedia.org/wiki/XTEA Там пример реализации, просто можно твзять код.
    2)Помещаем криптованный файл в конец стаба.
    3)Далее алгоритм стаба:
    - Считываем по смещению наш криптованный вирус.
    - Делаем антиэмуляцию, это может-быть мусор, задержки, динамическое выделение памяти и т.д.
    - Расшифровываем вирус.
    - Запуск нашего вируса в памяти, путём создания процесса например, можите воспользоваться этим например:https://github.com/jozemberi/PE-Crypter/blob/master/runPE.h
    Итог, простой криптор - Это Расшифровка, антиэмуляция и запуск в памяти.
     
  12. sniper

    sniper Member

    Публикаций:
    0
    Регистрация:
    10 мар 2017
    Сообщения:
    54
    Orbit Начни с джойнера, проще нет ничего
     
  13. R307

    R307 New Member

    Публикаций:
    0
    Регистрация:
    26 май 2017
    Сообщения:
    12
    Джойнер скучно делать, хотя отличие только-что в джойнере запуск идёт с диска.

    Лучше начинать на языках высокого уровня, асм сложно слишком, да и смысла нет для написания таких программ.
     
  14. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    крипторы в 2к17 писать - признак плохого тона... пилите обфускаторы/полиморфы...
     
  15. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    R307,

    > 1)Криптуем вирус конструктором, например этим https://ru.wikipedia.org/wiki/XTEA

    Каким есчо конструктором, вы термины попутали. Конструктор это двиг для пересборки кода, точнее для сборки кода по графу. Не надо чепухи, её и так много.
     
  16. R307

    R307 New Member

    Публикаций:
    0
    Регистрация:
    26 май 2017
    Сообщения:
    12
    Конструктор в данном случае - Это гуй, который "обработает" файл, по мойму по контексту моего поста это должно-быть понятно, что-то типо этого:
    [​IMG]

    Далее по ссылке я указал просто алгос шифрования, там уже готовые функи, вот эти взять, что-бы самому не делать:
    Код (Text):
    1. #include <stdint.h>
    2.  
    3. void xtea_encipher(unsigned int num_rounds, uint32_t *v, uint32_t const *k) {
    4.     unsigned int i;
    5.     uint32_t v0=v[0], v1=v[1], sum=0, delta=0x9E3779B9;
    6.     for (i=0; i < num_rounds; i++) {
    7.         v0 += (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]);
    8.         sum += delta;
    9.         v1 += (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum>>11) & 3]);
    10.     }
    11.     v[0]=v0; v[1]=v1;
    12. }
    13.  
    14. void xtea_decipher(unsigned int num_rounds, uint32_t *v, uint32_t const *k) {
    15.     unsigned int i;
    16.     uint32_t v0=v[0], v1=v[1], delta=0x9E3779B9, sum=delta*num_rounds;
    17.     for (i=0; i < num_rounds; i++) {
    18.         v1 -= (((v0 << 4) ^ (v0 >> 5)) + v0) ^ (sum + k[(sum>>11) & 3]);
    19.         sum -= delta;
    20.         v0 -= (((v1 << 4) ^ (v1 >> 5)) + v1) ^ (sum + k[sum & 3]);
    21.     }
    22.     v[0]=v0; v[1]=v1;
    23. }
    Ну по мойму ТС не спрашивал какой это тон, а задал конкретный вопрос, если честно то всем пофиг на "Хороший/плохой" тон, пока крипторы работают, а основная задача таких программ - Это сбитие детекта, с этой задачей такие программы справляются и делаются легко, поэтому криптры как писались/продавались, так и будут писаться/продаваться, изучаться, как-то так...:)