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

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

    (info@ru-sfera.pw)

ВАЖНО Делаем криптор вместе

Нужная-ли статья ?

  • Да

    Голосов: 82 97.6%
  • Нет

    Голосов: 1 1.2%
  • Хернёй не надоело заниматься ?

    Голосов: 1 1.2%

  • Всего проголосовало
    84

Indy

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

Попробуйте взять факториал, ну либо какие-то сложные мат. вычисления

Это сейчас смысла не имеет, математика хорошо эмулится. Было актуально когда появлялись наборы SIMD etc.

Также можно добавить муссора в код, пример:

Единственное что это даст - разобьёт статическую сигнатуру, если она была. По циклам - в эмуляторах имеются лимиты на число инструкций, по достижению которых эмуляция стопается. Это смысл их использования :)
 

Lexus34

Пользователь
Форумчанин
Регистрация
09.04.2016
Сообщения
16
Репутация
4
А смысл писать криптор если облачный анализ всеравно спалит код как таковой ? Другое дело каждому "клиенту" на запрос скачки выдавть свой билд вот это интересно ))
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 068
Репутация
8 176
А смысл писать криптор если облачный анализ всеравно спалит код как таковой ?
Не у всех есть облачный анализ, это во первых, во вторых не сразу спалит, нужно также примерно 1-3 дня !

А так видел такую адварь, на сервере каждый раз перепаковка, только там по мойму хеши менялись файла, но и существует вероятность блокировки таких серверов АВ, типо "Вредоносная ссылка"...смех-смех!!!смех-смех!!!смех-смех!!!
 

ja_far

Уважаемый пользователь
Форумчанин
Регистрация
01.10.2014
Сообщения
47
Репутация
48
Тут попались интересные по описанию сурсы криптора...может кому пригодятся идеи автора.В код я естественно даже и не полез,это мля не делфя с илитным компонентами;)
Далее просто скопирую описание:


Автор:0xDADA11C7

[FASM, C, Node JS, Ruby] Криптор
Выкладывю криптор, его код написан далеко не идеально - он содержит много багов и много новых и забавных идей. Для написания криптора я использовал pelles c компилер и fasm, а для генератора стабов был использован целый зоопарк языков
1.gif
(ruby, node js, fasm)

Главными возможностями криптора являються:

  • поддержка плагинов
    поддержка TLS
    небольшой стаб
    раздельное создание стабов и пакование
    использование линкера для создания исполняемых файлов
    нормализация статистики файла
    уникальная ВМ для каждого стаба

Криптор использует и .
Для запуска криптора вы должны передать ему следущие параметры:
Код:
ENCRYPT.CMD input_exe_file output_exe_file stub_directory optional_parameters
Например :
Код:
ENCRYPT.CMD E:\SAMPLES\CALC.exe E:\CALC.E3.EXE E:\STUBS\E3 "PLUGINS?RESTORESEH|ICON?E:\SETUP.ICO"
Для запуска генератора стабов вы должны запусть createStub.cmd со следующими параметрами:
Код:
CREATESTUB.CMD settings.json stub_directory
Пример settings.json файла:
Код:
{
    "pass": {
        "place": 2,
        "val": "AjIx@pHJ[*U3M&eVjk9"
    },
    "vm": {
        "place": 1,
        "dstacksize": 56,
        "rstacksize": 63,
        "order": ["rstack", "dstack", "vmbody", "ctx"],
        "vmbodysize": 1024
    },
    "datapeimage": {
        "place": 2,
        "resnum": 0
    },
    "alphabet": {
        "place": 3,
        "val": [9, 39, 74, 67, 69, 62, 84, 38, 78, 37, 82, 19, 5, 71, 63, 23, 30, 33, 66, 44, 72, 80, 26, 46, 15, 25, 52, 24, 70, 22, 29, 34, 36, 50, 47, 6, 42, 35, 51, 59, 68, 45, 83, 55, 60, 12, 21, 41, 8, 54, 43, 77, 40, 73, 18, 48, 65, 3, 32, 11, 49, 75, 61, 14, 58, 31, 20, 16, 4, 57, 17, 7, 1, 13, 27, 2, 53, 76, 10, 64, 56, 79, 0, 28, 81]
    },
    "pcode": {
        "place": 3
    },
    "loadpe": {
        "requmem": 4672,
        "depth": 120,
        "offset": 6194
    },
    "import": {
        "fncs": ["GetStdHandle", "VirtualAlloc", "WriteFile", "Beep", "GetDC", "BeginPaint", "CreateMutexA", "CreateMutexW", "VirtualFree", "GetLastError", "GetModuleHandleA", "GetModuleHandleW", "GetSystemInfo", "GetVersionExA", "LocalAlloc", "CharUpperA", "CreateDialogParamA", "CreateWindowExA", "DefWindowProcA", "DispatchMessageA", "EndDialog", "EndPaint", "FindWindowA", "FindWindowW", "GetClassInfoExA", "GetMessageA", "GetSystemMetrics", "GetTopWindow", "LoadIconA", "PostQuitMessage", "RegisterClassExA", "RegisterWindowMessageA", "SendMessageA", "SetDlgItemInt", "SetFocus", "ShowWindow", "TranslateMessage", "UpdateWindow", "GetDIBits", "CreateCompatibleBitmap", "GdiFlush"]
    },
    "icon": {
        "resnum": 127
    }
}

Все файлы зашифрованы паролем replace
packer.srcnbin.zip содержит исходники криптора
samples.executable.zip содержит windows xp калькулятор, hello.exe (1.5k) небольшой исполняемый файл с дистрибутива fasm и эти же файлы, но криптованные разными стабами
stubs.example.zip содержит несколько сгенерированых стабов для криптования
stubGenerator.zip содержит генератор стабов
Источник:***Скрытый текст*** Хотя это и так понятно из ссылок в обзоре.
Кому-то удалось этот зубодробительный криптор испытать? Кстати автор умолчал, что нужно иметь у себя целую пачку средств разработки для этого + на сколько я понял там не хватает файлов промежуточных скриптов между компиляторами тех всех руби и его поделием. Разве что с его стабами можно попробовать. Но они спалены походу. Отпишите если у кого вышло, интересно как оно.

Нашел одну важную запчасть для криптора, а именно - загрузчик кода. Подсобите как его правильно прикрутить для использования в среде delphi?
Я так понимаю что бинарник надо конвертировать в массив байт, а потом из ассемблерной вставки вызвать шеллкод и скормить ему код который надо выполнить, только с асмом у меня беда. Помогите плиз!
 

Вложения

  • RUNPE.SHELLCODE.rar
    10.2 КБ · Просмотры: 47

Indy

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

Вот инклуд к дельфе и конвертер. Вызывать нужно не асм вставкой, а через конструкцию языка.
 

Вложения

  • runpe.txt
    6.5 КБ · Просмотры: 50
  • shellcode_converter.rar
    208.4 КБ · Просмотры: 41

ja_far

Уважаемый пользователь
Форумчанин
Регистрация
01.10.2014
Сообщения
47
Репутация
48
ja_far

Вот инклуд к дельфе и конвертер. Вызывать нужно не асм вставкой, а через конструкцию языка.
А второй бинарник там в архиве это что? Который LoadPE? По поводу как сконвертировать в массив - я знаю. Юзаю давно CFF Explorer.

Вот такой метод использования порекомендовали:
Код:
procedure RUN;
var
  hMem : pointer;
begin

  hMem := VirtualAlloc(0, SizeOf(loader), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
  CopyMemory(@hMem^, @loader, SizeOf(loader));

  asm
push offset file
call hMem[0]
  end;

end;
data - это массив байт с шеллкодом
file - массив байт в котором находится файл который мы должны запустить

Но видно что-то немного не так, так как не пашет даже на том файле (stored.exe - hello world) на котором пример работы шелла показан в архиве.
 
Последнее редактирование:

Indy

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

loadpe тот же самый мотор, только возможно внесены небольшие изменения.

Почему не робит это нужно смотреть в отладчике.
 

ja_far

Уважаемый пользователь
Форумчанин
Регистрация
01.10.2014
Сообщения
47
Репутация
48
Indy, VMBE твой легендарный же можно в качестве загрузчика юзать? Залей плиз актуальную версию. Попробую его осквернить через delphi)
 

Indy

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

Это был не лодер, это трассировщик(тот же метод юзается в DYPE моторе). Лодер это был LWE, но он не совсем обычный, это враппер для нэйтивного лодера(нтлдр), он выполняет эмуляцию секций(обьекты такие системные) и обработка идёт полностью системным путём, соответственно поддерживаются все системные структуры и механизмы. К примеру можно запустить логгер(GlobalFlags) и получить в отладочном выводе загрузочный лог. Ну а VMBE - наверно мало кто понял зачем оно нужно и как это юзать Не въехал!!!
 

Вложения

  • LWEx.rar
    33.2 КБ · Просмотры: 47
Последнее редактирование:

ja_far

Уважаемый пользователь
Форумчанин
Регистрация
01.10.2014
Сообщения
47
Репутация
48
Я просто далёк от низкоуровневого программирования, но я слыхал что VMBE можно приспособить в качестве загрузчика кода, как я понимаю он предназначен для выполнения кода под антиэмуляцией, нет? Кстати ехе файлик с ним и детектится MSE как дроппер, что подтверждает мое предположение.
Было бы очень круто если бы ты запостил простенький пример (в идеале на делфи или хотябы с++), как юзать LWE, при условии что в массиве байт data содержится LWE, а в массиве байт MyArray - код который надо выполнить (образ файла).
Еще говорят чтобы можно было это все юзать, код надо разморфить мусором, т.е. пересобрать загрузчик чтобы сделать его чистым. Подскажи чем и что надо перекомпилить в LWE?
По поводу чем - я понял что это MASM32. Но там почему-то ошибки при компиляции лезут..
 
Последнее редактирование:
Автор темы Похожие темы Форум Ответы Дата
D СТАТЬИ И УРОКИ ПО ИССЛЕДОВАНИЮ ЗАЩИТЫ 37
Z СТАТЬИ И УРОКИ ПО ИССЛЕДОВАНИЮ ЗАЩИТЫ 3
Антоха СТАТЬИ И УРОКИ ПО ИССЛЕДОВАНИЮ ЗАЩИТЫ 4
X-Shar СТАТЬИ И УРОКИ ПО ИССЛЕДОВАНИЮ ЗАЩИТЫ 1
X-Shar СТАТЬИ И УРОКИ ПО ИССЛЕДОВАНИЮ ЗАЩИТЫ 14
X-Shar СТАТЬИ И УРОКИ ПО ИССЛЕДОВАНИЮ ЗАЩИТЫ 17
X-Shar СТАТЬИ И УРОКИ ПО ИССЛЕДОВАНИЮ ЗАЩИТЫ 15
X-Shar СТАТЬИ И УРОКИ ПО ИССЛЕДОВАНИЮ ЗАЩИТЫ 32
X-Shar СТАТЬИ И УРОКИ ПО ИССЛЕДОВАНИЮ ЗАЩИТЫ 0
Верх Низ