Сейчас на форуме: (+5 невидимых)

 eXeL@B —› Протекторы —› Создание сигнатуры для мутированного VMProtect'ом кода
. 1 . 2 . 3 . 4 . >>
Посл.ответ Сообщение

Ранг: 2.0 (гость)
Активность: 0.01=0.01
Статус: Участник

Создано: 26 марта 2020 18:25
· Личное сообщение · #1

Здравствуйте!
Есть защищенный мутированный VMProtect'ом код(без виртуализации), версия 3+, нужно сделать сигнатуру для этого кода, при этом каждый билд программы генерирует рандомный мусор и рандомные регистры кода, но алгоритм остается тем же. Каждый билд программы сигнатура перестает быть рабочей, а нужно сделать ее универсальной, алгоритм кода не меняется.
Может быть, есть какие нибудь решения для моей проблемы?
Заранее спасибо!




Ранг: 90.1 (постоянный), 89thx
Активность: 0.290.56
Статус: Участник

Создано: 26 марта 2020 18:52 · Поправил: Boostyq
· Личное сообщение · #2

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

-----
В облачке многоточия




Ранг: 431.7 (мудрец), 389thx
Активность: 0.730.32
Статус: Участник

Создано: 26 марта 2020 19:10
· Личное сообщение · #3

UPX спробуй



Ранг: 62.5 (постоянный), 34thx
Активность: 0.280.96
Статус: Участник

Создано: 26 марта 2020 19:12
· Личное сообщение · #4

Найти место вызова API и автоматически трассировать в лог до следующего вызова API а потом разбирать лог



Ранг: -14.4 (нарушитель), 2thx
Активность: 0.31=0.31
Статус: Участник

Создано: 26 марта 2020 19:35 · Поправил: sdk4
· Личное сообщение · #5

Ну добавьте секцию маркер или в конец в hex допишите маркер и лови ну вы меня поняли.Vine




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 26 марта 2020 19:35
· Личное сообщение · #6

Vine

Так в чём проблема, вмп криптует по дефолту ~0-10% кода, остальной никак не меняется, так как криптор не может найти ссылки(входы) в процедуры, не обеспечивает покрытие".

А данные не криптуются в принципе(тк нельзя дешифровать ни статик ни динамик), на них построй сигнатуры, если на коде не нравится или нельзя.

Добавлено спустя 1 час 34 минуты
Boostyq

Старушка, покури матчасть чтоле. Пришлось долго искать, вот бы сделали норм поиск, даже для этого нейронки хвалёные не годятся..

Попытка блокировки данных(создание ядерного анклава) тут --> Link <-- и даже был семпл --> Link <--

А по теме данных и покрытию тема столь разобрана, вот например --> Link <-- и тут --> Link <--

Матчасти навалом, было бы желание.

-----
vx





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 26 марта 2020 21:51 · Поправил: ARCHANGEL
· Личное сообщение · #7

Анклавы летают, плывут якоря.
Средь этого бреда витаю и я.
Там стабы, анстабы, покрытие, граф.
Матчасти хватает, кончается стаф.

По теме: оно там ещё сжимает, так что в этом треде поддержу Бустика - она правду говорит.

-----
Stuck to the plan, always think that we would stand up, never ran.


| Сообщение посчитали полезным: difexacaw, user99, DimitarSerg, Gideon Vi, sefkrd


Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 26 марта 2020 21:58 · Поправил: difexacaw
· Личное сообщение · #8

ARCHANGEL

У тебя годная балалайка. Вот только смысл в том:

1. Принципиально данные криптовать невозможно, попытка для них реализовать анклав это дичайший теоретический изврат; контроль выборки из ядра через гвард страницы(попытка криптовать секцию данных в динамике при выборке из ядра к ней).
2. Нет исходных данных для сборки, нет покрытия по EP для кода.

Сжимает.. тс не сказал что у него с образом, он распакован при запуске или у него вирта как у ав или это статик. Если это файловый скан, то хоть для чего то годятся примитив cpu-вирты.

-----
vx





Ранг: 90.1 (постоянный), 89thx
Активность: 0.290.56
Статус: Участник

Создано: 26 марта 2020 21:58
· Личное сообщение · #9

Господи, что здесь происходит, будто бы все разом деграднули и пишут какую-то дичь

dosprog пишет:
UPX спробуй

Глаза е_утся? Где ты увидел что чел спрашивал "Подскажите лучший прот?" или "Чем запаковать прогу?" ?

sdk4 пишет:
добавьте секцию маркер или в конец в hex допишите маркер и лови ну вы меня поняли

Ну мы тебя поняли, тут я просто пробила себе фейспалмом лицо... Дописать можно хоть тебе на лбу, только адрес от этого откуда возмется?

difexacaw пишет:
криптует по дефолту ~0-10% кода, Матчасти навалом

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

-----
В облачке многоточия


| Сообщение посчитали полезным: Bronco, DimitarSerg, SReg, DrVB_5_6


Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 26 марта 2020 22:05
· Личное сообщение · #10

Boostyq

> К чему твое огромное сообщение

Что бы ты ответила, забавно ведь. А иначе что либо отвечать не вижу смысла

-----
vx





Ранг: 253.5 (наставник), 684thx
Активность: 0.260.25
Статус: Участник
radical

Создано: 26 марта 2020 22:15 · Поправил: DimitarSerg
· Личное сообщение · #11

ARCHANGEL пишет:
оно там ещё сжимает

А вот этого автор нам не сказал.

Если файл не пакован, от этого и следует плясать.

Я так предполагаю (судя по посту ТС), что файл не пакован, то есть в самых интересных местах идет прыжок в секцию ВМП с мутированным кодом.
Тут уже на код нужно смотреть, можно ли с помощью напр. YARA найти нужные вам участки кода.

Добавлено спустя 4 минуты
Boostyq пишет:
А для чего по твоему маркеры, болван?

Ты еще не поняла, что игнор - самый правильный выбор. Человек оторван от реальности, придумывает какую-то свою терминологию, кроме исходников winXP и простых морфов на сэмплах ничего не видел (достаточно посмотреть темы ASProtect и другие). Практические задачи решать он тоже как не мог, там и не может (независимо от их сложности), за 10+ лет кроме словоблудия и его моторов ничего не было, матчастей от него никто не видел. Ну не банят его ради забавы и посещаемости ресурса - ну и х* с ним Не можешь изменить ситуацию - измени свое отношение к ней.
Так что отстань от него

-----
ds




Ранг: 4.2 (гость)
Активность: 0.04=0.04
Статус: Участник

Создано: 26 марта 2020 22:28 · Поправил: hiddy
· Личное сообщение · #12

Vine, свой код или чужой? Если свой, то создать экспорт. Если чужой, то сравнить сэмплы, мертвый код сразу будет виден, очистить граф от мусора и можно строить сигнатуру. Те же bindiff/diaphora хорошо справляются с идентификацией кода после мутации вмп, можно подсмотреть в исходниках алгоритм.




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 26 марта 2020 22:54
· Личное сообщение · #13

DimitarSerg

> на сэмплах ничего не видел

Я за пол года их перебрал десятки тысяч. Слабоумного зайца ведь тоже нужно выслушать, может чего дельное скажет

-----
vx





Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 26 марта 2020 23:13
· Личное сообщение · #14

Vine
маску для рядом лежащего кода, дальше скан до префикса. если правильно понял. для точности после префикса можно энтропию проверить

-----
От многой мудрости много скорби, и умножающий знание умножает печаль





Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 26 марта 2020 23:18
· Личное сообщение · #15

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


I LOVE Boostyq!
в ней есть то, чего нам всем так не хватает, а именно: женская нежность и страстность!

-----
Give me a HANDLE and I will move the Earth.




Ранг: 431.7 (мудрец), 389thx
Активность: 0.730.32
Статус: Участник

Создано: 27 марта 2020 00:13
· Личное сообщение · #16

Boostyq пишет:
Глаза е_утся?

)) Э. Шо за нахуй?

ТС'у:
Ничо не выйдет. Сперва юзаешь обфускатор, а потом жалуешься.
Делай нормальный софт, пакуй UPX'ом - и люди к тебе потянутся.






Ранг: 90.1 (постоянный), 89thx
Активность: 0.290.56
Статус: Участник

Создано: 27 марта 2020 00:59 · Поправил: Boostyq
· Личное сообщение · #17

DimitarSerg пишет:
Ты еще не поняла

Это понятно, но это не выводит меня из себя. Просто спрашивает что-то новоиспеченный юзер и этот клоун отвечает ерунду. Если бы у него было написано вместо подписи, что он нубис и его слушать не нужно, то все было бы чудненько. А так юзер смотрит "329.0 (мудрец), 345thx", и пытается вкурить парашу, которую ему вываливает этот мудрец. Конечно, если посмотреть кол-во его сообщений 2884, то все встает на свои места, их кпд даже ниже чем у меня, а я ничего (!) не сделала для форума, он тупо набрал по копейкам количеством. Поэтому приходится предупреждать пользователей об этом шуте.

dosprog пишет:
Делай нормальный софт, пакуй UPX'ом

Вы серьезно думаете что это его софт?
Форум про Взломы, подфорум Протекторы, тема Как сделать сигну для мутированного вмпом кода, не значит ли что у тса немного нет выбора?

-----
В облачке многоточия


| Сообщение посчитали полезным: Vintersorg


Ранг: 312.0 (мудрец), 349thx
Активность: 0.460.65
Статус: Участник
Advisor

Создано: 27 марта 2020 02:07 · Поправил: Bronco
· Личное сообщение · #18

Boostyq пишет:
он тупо набрал по копейкам количеством

//OFFTOP
+1
токсичен то безобразия, по ходу с вагиной не дружит, иначе бы не сесксотил
лучше не обращать внимание.
//OFFTOPAND

-----
Чтобы юзер в нэте не делал,его всё равно жалко..





Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 27 марта 2020 02:34
· Личное сообщение · #19

Boostyq пишет:
Просто спрашивает что-то новоиспеченный юзер и этот клоун отвечает ерунду.


мне это тоже очень не нравилось, но потом я его похоронил на месяц и всё, как рукой сняло. Теперь спокойно мимо прохожу, почитывая иногда.

| Сообщение посчитали полезным: DrVB_5_6, DimitarSerg


Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 27 марта 2020 12:16
· Личное сообщение · #20

Vine пишет:
Здравствуйте!
Есть защищенный мутированный VMProtect'ом код(без виртуализации), версия 3+, нужно сделать сигнатуру для этого кода, при этом каждый билд программы генерирует рандомный мусор и рандомные регистры кода, но алгоритм остается тем же. Каждый билд программы сигнатура перестает быть рабочей, а нужно сделать ее универсальной, алгоритм кода не меняется.
Может быть, есть какие нибудь решения для моей проблемы?
Заранее спасибо!

Кто ищет тот всегда найдёт,смотрите есть ли вызов айпи, доступ к data секции и т.д.п то что может помочь

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: -14.4 (нарушитель), 2thx
Активность: 0.31=0.31
Статус: Участник

Создано: 27 марта 2020 18:01
· Личное сообщение · #21

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




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 27 марта 2020 20:43 · Поправил: difexacaw
· Личное сообщение · #22

Мне глубоко всё равно на чьёто мнение. Для начала оно должно быть обосновано, #6 объяснение почему данные не могут быть криптованы. Что поцы не могут это понять, пожался мозг, обычное тут дело.

Всё что выше написано ниочём, нет никакой базы, теор. основы.

Кроме поливания говном нет никаких реальных фактов, обоснований. Это толпа мудаков.

Vine

Интересный вопрос, задай его на wasm. Там можно обсудить технически.

-----
vx




Ранг: -7.3 (нарушитель)
Активность: 0.010.08
Статус: Участник

Создано: 27 марта 2020 22:05
· Личное сообщение · #23

Скинь мне файл я сделаю сигнатуру!




Ранг: 90.1 (постоянный), 89thx
Активность: 0.290.56
Статус: Участник

Создано: 28 марта 2020 01:07
· Личное сообщение · #24

difexacaw пишет:
данные не могут быть криптованы

Ебобо? Нормальные проты как минимум умеют шифровать строки, тот же вмп расшифровывает под вм, твой визор от такого гэнгбэнга забьется в угол.

-----
В облачке многоточия


| Сообщение посчитали полезным: DimitarSerg


Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 28 марта 2020 01:24
· Личное сообщение · #25

Boostyq
Зачем так грубо ты же девушка

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 90.1 (постоянный), 89thx
Активность: 0.290.56
Статус: Участник

Создано: 28 марта 2020 03:02 · Поправил: Boostyq
· Личное сообщение · #26

ClockMan пишет:
Зачем так грубо

Не бойся пупсик, это я только с ним пускаюсь в пляс, и то потому что его заявления абсурдны.
Когда он снизошел до изучения вмпрота, он начал трепать об этом на весь форум, задавать наитупейшие вопросы, затем затих, а после начал нести чушь про его механизмы.
Видимо потоптался у точки входа, да и плюнул, раз такие стремные знания. Походу он думает, что юзер покупает лицуху на прот за 500 баксов, чтобы закинуть прогу и тупо нажать кнопку компилить, не выбирая какие функции и как виртуализировать, не проводит никакой интеграции с защитой. Нет братец, если например у меня есть прот, то я выжму из него все что есть, а уж он натолкает столько вм говнища, что ты быстрее сойдешь с ума, чем разберешь это своими теоретическими тулзами. Но нет же, тут подоспел умник дифексекал со своими теориями про то что прот не может узнать где защищать, ясен фиг проту насрать на семантику, это задача пользователя - показать ему. Еще данные говорит нельзя шифровать, ну тогда дерматолог иисус который ходит по воде раз смог невозможное - сделать шифрование строк, просто невероятно.

-----
В облачке многоточия





Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 28 марта 2020 03:09
· Личное сообщение · #27

Boostyq пишет:
Нет братец, если например у меня есть прот, то я выжму из него все что есть,

Vine пишет:
Есть защищенный мутированный VMProtect'ом код(без виртуализации),



-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.





Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 28 марта 2020 04:50
· Личное сообщение · #28

difexacaw пишет:
Мне глубоко всё равно на чьёто мнение


это корень всех твоих проблем.

difexacaw пишет:
объяснение почему данные не могут быть криптованы


знаешь... я, честно говоря, и не представляю даже, о чем с тобой после этого перла говорить.




Ранг: 337.5 (мудрец), 348thx
Активность: 2.112.42
Статус: Участник

Создано: 28 марта 2020 05:40 · Поправил: difexacaw
· Личное сообщение · #29

Boostyq

> Нормальные проты как минимум умеют шифровать строки

На этом и строится скрытие данных в памяти. Если передать например в MsgBox() строку, она пойдёт в ядро. А там выборка не контролируется, так как мод иной. Поэтому ничего со строкой сделать нельзя. И визоры это тоже не решают, выше я пример приводил.

Если только шифровать всю область данных целиком. Тогда всё равно будет полный декрипт до запуска.

Gideon Vi

Ты знаешь метод ?

Принцип антидампа - подмена выборки. Если обнаружена ссылка(чего обычно нет в пе), либо выборка данных, она смещается в буфер, где при этом событии декриптуются данные; так реализуется с-анклав, данных при этом в памяти нет и дампить/сканить_сигнатуры нечего. Но это никак не крипт самих данных, а целой области. Поксорить строки нельзя, так как не известен либо указатель, либо размер.

Может прежде чем лить говном надо бы разобраться

Boostyq

> тогда дерматолог иисус который ходит по воде раз смог невозможное - сделать шифрование строк

Может пример будет, задача не решаема в принципе. Если только на уровне сурков маркеры накидать для строк. Но это не крипт данных, а обфускация.

-----
vx





Ранг: 331.1 (мудрец), 561thx
Активность: 0.190.06
Статус: Участник

Создано: 28 марта 2020 10:10
· Личное сообщение · #30

Криптование строк в VMP (инфа из его СДК и хелпа):
VMP_IMPORT const char * VMP_API VMProtectDecryptStringA(const char *value);
VMP_IMPORT const VMP_WCHAR * VMP_API VMProtectDecryptStringW(const VMP_WCHAR *value);
Функции VMProtectDecryptString позволяют дешифровать строковую ANSI/Unicode константу value. Для шифрации константы её необходимо включить в список защищаемых объектов.
Криптование строк производится серийным номером в кач-ве которого может использоваться как внутренняя лицензия вмп, так и любая пользовательская.
Криптование строк не зависит от алгоритмов защиты кода, т.к. сначала строки криптуются а затем выполняется защита кода (мутация, виртуализация или ультра).

Создать сигнатуру мутированного кода в вмп 3+ в принципе возможно, но для этого надо иметь как минимум деобфускатор, который выделит из общего потока кода оригинальные инструкции и по ним создаст сигнатуру. Для вмп 2+ такая схема работать не будет, т.к. в нем при мутации "искажаются" оригинальные инструкции кода.

-----
Everything is relative...



. 1 . 2 . 3 . 4 . >>
 eXeL@B —› Протекторы —› Создание сигнатуры для мутированного VMProtect'ом кода
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати