eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: zds, SDK (+7 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Софт, инструменты —› XVolkolak 0.10 unpacker emulator
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >>
Посл.ответ Сообщение

Ранг: 35.9 (посетитель)
Статус: Участник

Создано: 31 марта 2018 12:22 · Поправил: hypn0 New!
Цитата · Личное сообщение · #1

Автор зарелизил, а тут сообщить забыл.
Качайте, пользуйтесь, тестируйте.

https://n10info.blogspot.ru/2018/03/xvolkolak-010.html

Автору большое спасибо!

Xvolkolak is an unpacker emulator.

Unlike programs of this type, it does not use DebugAPI and other features of the operating system. Everything is emulated. You can safely unpack malware for further investigation without the risk of damaging the system.
All machine instructions are not executed on a real processor, so unpacking occurs regardless of the processor type and the operating system.
It is possible to unpack 64 bit files on 32 operating systems.
This build emulates the processors intel x86 and AMD64.
It supports unpacking 32 and 64 bit Windows executable files. If there is community interest, it will be possible to unpack other executable files (ELF, MSDOS, Mach-O) and other processors.

Due to its capabilities, with the correct manual setting, the program engine can be used to unpack almost any packer / tread.
However, this version of the program works in a fully automatic mode and can only unpack simple non-commercial unpackers such as:

UPX
ASPack
NsPack
Mpress
MEW
(Win) Upack
FSG
and some others.

The version of the program with the possibility of unpacking commercial protectors (such as VMProtect, ASProtect and others) will not appear in the public domain for obvious reasons.

| Сообщение посчитали полезным: Gideon Vi, Orlyonok, hors, TRPD, MarcElBichon, mak, Jupiter, HandMill, 4kusNick, Jaa, ADMIN-CRACK


Ранг: 35.9 (посетитель)
Статус: Участник

Создано: 15 июля 2018 15:29 New!
Цитата · Личное сообщение · #2

difexacaw пишет:
выполнение кода после записи

Отлично. Что же мы тогда не наблюдаем кучи универсальных распаковщиков хотя бы всяких простеньких пакеров, включая самодельные? Ведь казалось бы всё просто. Трассируем прогу, видим когда начинается "выполнение кода после записи" и дампим.

Ранг: 0.0 (гость)
Статус: Участник

Создано: 15 июля 2018 15:37 · Поправил: shellstorm New!
Цитата · Личное сообщение · #3

difexacaw пишет: Сабж - дампер, а не внедряемая вм или что то такое

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

yara может искать в процессе и есть ext для сигнатур учитывающих расстояние между сигнатурами.


Ранг: 316.4 (мудрец)
Статус: Участник

Создано: 15 июля 2018 15:54 New!
Цитата · Личное сообщение · #4

hypn0

Это вы скажите, я не знаю. У меня никогда не появлялась такая задача, а уже давно моя основная - защита от инжектов, но никак не анпак.

Добавлено спустя 5 минут
> Трассируем прогу, видим когда начинается "выполнение кода после записи" и дампим.

В этом видимо и вся проблема, это не так просто наверно сделать, ну если не вникать в тему.


Ранг: 134.0 (ветеран)
Статус: Участник
Qt Developer

Создано: 15 июля 2018 17:08 · Поправил: hors New!
Цитата · Личное сообщение · #5

difexacaw пишет:
а уже давно моя основная - защита от инжектов, но никак не анпак.


difexacaw пишет:
В этом видимо и вся проблема


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

--> Link <--

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



Ранг: 274.0 (наставник)
Статус: Участник
Advisor

Создано: 15 июля 2018 18:11 New!
Цитата · Личное сообщение · #6

hypn0 пишет:
Что же мы тогда не наблюдаем кучи универсальных распаковщиков

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

Ранг: 35.9 (посетитель)
Статус: Участник

Создано: 15 июля 2018 19:01 New!
Цитата · Личное сообщение · #7

Bronco
Да вроде никакой интриги. Просто хочется чтоб был мультиплатформенный инструмент по снятию всякой навесной радости. Пока пакеры и простые протекторы, а потом возможно что-то посложнее, типа Denuvo.
Хотя я не знаю чем она сложна кроме того, что в ней куча мусорных инструкций. Очень надеюсь, что и её можно будет снимать.
Но опять же говорю, пока ничего не загадываем.
Еще хочется добавить распаковку dos-прог, а потом и Linux/Mac. В общем хочется чтоб был универсальный инструмент.

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


Ранг: 274.0 (наставник)
Статус: Участник
Advisor

Создано: 15 июля 2018 19:30 · Поправил: Bronco New!
Цитата · Личное сообщение · #8

hypn0 пишет:
типа Denuvo.
Хотя я не знаю чем она сложна кроме того, что в ней куча мусорных инструкций. Очень надеюсь, что и её можно будет снимать.

в дуньке нет своего пакера_загрузчика, пока только сторонние. и если сиськи гавнопрота не помеха для эмуля, то смело кидай её в список.
hypn0 пишет:
Еще хочется добавить распаковку dos-прог,

вот чуйка, что когда мультиарс мастырили, ты где то рядом был..

Ранг: 35.9 (посетитель)
Статус: Участник

Создано: 15 июля 2018 19:44 New!
Цитата · Личное сообщение · #9

Bronco пишет:
вот чуйка, что когда мультиарс мастырили, ты где то рядом был..

Не, не... Я тут вообще ни при чем. И xvlk не я пишу.
Я последнее время исполняю функции пресс-секретаря.

Что касается мультиарка, есть решение несравнимо лучше, но оно в лютом привате. Там всё умеет от древних досовских, до всяких энтерпрайз бекапилок, с любыми файловыми системами. Проще написать что не умеет.

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



Ранг: 316.4 (мудрец)
Статус: Участник

Создано: 15 июля 2018 21:21 · Поправил: difexacaw New!
Цитата · Личное сообщение · #10

hors

> Проблема в том, что ты рассуждаешь о вещах с которыми никогда не имел дела.

С чем именно не имел дела. Если управление получает(X-df) любая инструкция поcле записи(W-df), то это запуск после распаковки, тот самый EP. Вы пишите х-ню не по делу, а затем обижаетесь.


Ранг: 134.0 (ветеран)
Статус: Участник
Qt Developer

Создано: 15 июля 2018 22:05 New!
Цитата · Личное сообщение · #11

difexacaw пишет:
С чем именно не имел дела. Если управление получает(X-df) любая инструкция поcле записи(W-df), то это запуск после распаковки, тот самый EP. Вы пишите х-ню не по делу, а затем обижаетесь.


Это может быть не EP, а участок кода распаковщика, который тоже расшифровывается и что-то делает перед настоящим EP. Такое очень часто встречается.


Ранг: 316.4 (мудрец)
Статус: Участник

Создано: 15 июля 2018 22:14 New!
Цитата · Личное сообщение · #12

hors

Это всегда происходит не в пределах образа. Для этой задачи как раз и хорошо подходит снятие трассы наверно. Если помечать каждую инструкцию в битовой карте(кэш инструкций) метками R/W и если далее произойдёт исполнение инструкции с меткой W, то это EP. Интересно было бы посмотреть где это не сработает.

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

Что бы далеко не ходить за примерами открыл отладчиком пример выше(аспак). При анпаке вызывается аллокатор памяти, что то настраивает в памяти и происходит передача управления W-df -> X-df. Мы оказываемся на EP


Ранг: 134.0 (ветеран)
Статус: Участник
Qt Developer

Создано: 15 июля 2018 22:55 · Поправил: hors New!
Цитата · Личное сообщение · #13

difexacaw пишет:
Это всегда происходит не в пределах образа.


Это может происходить и в пределах образа.

difexacaw пишет:
Интересно было бы посмотреть где это не сработает.


Это много где не сработает.

difexacaw пишет:
Что бы далеко не ходить за примерами открыл отладчиком пример выше(аспак). При анпаке вызывается аллокатор памяти, что то настраивает в памяти и происходит передача управления W-df -> X-df. Мы оказываемся на EP


Очень хорошо. А теперь напиши утилиту которая бы так искала OEP в ASPack и пропусти через неё пару сотен упакованных файлов разных версий ASPack . Тебя ожидают сюрпризы.


Ранг: 316.4 (мудрец)
Статус: Участник

Создано: 15 июля 2018 22:59 · Поправил: difexacaw New!
Цитата · Личное сообщение · #14

hors

Да, не сработает там, где нет как таковой EP. Типо вмп. В пределах настраиваемого образа никогда не пишется загрузчик, тоесть памяти хватает что бы это небыло нужно. Так что это хороший критерий для определения EP, оно сработает всегда на том, что можно дампить.

Добавлено спустя 2 минуты
> пропусти через неё пару сотен упакованных файлов.

Этот критерий срабатывает до начала исполнения EP, пакер не изменяется, так что это будет повторяться и срабатывать каждый раз.

Ранг: 35.9 (посетитель)
Статус: Участник

Создано: 15 июля 2018 23:10 New!
Цитата · Личное сообщение · #15

difexacaw пишет:
так что это будет повторяться и срабатывать каждый раз

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

Вообще эта задача успешно решаема для 90% файлов. Ну ладно, для 80%. Только это не совсем то, что хочется. Разумеется методы могут комбинироваться, но нет гарантии, что не появится какой-то файл, на котором поиск OEP не сработает.


Ранг: 316.4 (мудрец)
Статус: Участник

Создано: 15 июля 2018 23:12 New!
Цитата · Личное сообщение · #16

hypn0

На крипторах это не сработает, но это другого типа коды, там весь пайлод в недетекте и кучи системных извратов. А на штатных пакерах/протах будет работать, execute fetch after write fetch вот вам метод.


Ранг: 134.0 (ветеран)
Статус: Участник
Qt Developer

Создано: 15 июля 2018 23:13 · Поправил: hors New!
Цитата · Личное сообщение · #17

difexacaw пишет:
. В пределах настраиваемого образа никогда не пишется загрузчик, тоесть памяти хватает что бы это небыло нужно


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

Ну ладно, допустим ничего такого нет(хотя оно конечно есть и никуда не исчезнет). Как ты определишь границы "настраиваемого образа"?

difexacaw пишет:
Этот критерий срабатывает до начала исполнения EP, пакер не изменяется, так что это будет повторяться и срабатывать каждый раз.


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


Ранг: 316.4 (мудрец)
Статус: Участник

Создано: 15 июля 2018 23:18 · Поправил: difexacaw New!
Цитата · Личное сообщение · #18

hors

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

Добавлено спустя 3 минуты
hors

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

Годами отлаживал малварки, пакеры всякие етц и почти всегда факт окончания депака можно было получить тупо из сервисного лога. Стартап гуя и прочая инициализация -> вызов из изменённой памяти -> опять же R -> W fetch. Так всегда.


Ранг: 134.0 (ветеран)
Статус: Участник
Qt Developer

Создано: 15 июля 2018 23:21 · Поправил: hors New!
Цитата · Личное сообщение · #19

difexacaw пишет:
execute fetch after write fetch вот вам метод.


difexacaw пишет:
Я же выше говорил. Конкретно например анпак образ не релоцируется и всегда известны его параметры, так что не вижу проблемы.


difexacaw пишет:
Годами отлаживал малвирки, пакеры всякие етц и почти всегда факт окончания депака можно было получить тупо из сервисного лога. Стартап гуя и прочая инициализация -> вызов из изменённой памяти -> опять же R -> W fetch. Так всегда.



Да ясно что ты не в теме и даже рядом не находишься.


Ранг: 316.4 (мудрец)
Статус: Участник

Создано: 15 июля 2018 23:24 New!
Цитата · Личное сообщение · #20

hors

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

Ранг: 35.9 (посетитель)
Статус: Участник

Создано: 15 июля 2018 23:29 New!
Цитата · Личное сообщение · #21

difexacaw пишет:
На крипторах это не сработает

Еще раз говорю. Если изначально был нормальный ехешник и потом его чем-то обработали, то узнать OEP мы можем на 80% всевозможных файлах с точностью 100%. И не важно чем обработали пакером/криптором или протектором.

Только вот такой метод как раз костыль, так как реализуем не на 100% файлов. Поэтому не особо хочется его использовать.

Вообще я просто спросил, знаете ли Вы заведомо точные и универсальные методы определения OEP. Похоже не знаете. Мы тоже не знаем. Дальше рассуждать бессмысленно, потому что Вы рассказываете теорию, которую мы тоже знаем. Практика как бы отличается от теории.


Ранг: 316.4 (мудрец)
Статус: Участник

Создано: 15 июля 2018 23:30 · Поправил: difexacaw New!
Цитата · Личное сообщение · #22

hypn0

Это единственный способ. Иначе - EP просто нет. Приложение с пакером/криптором единое целое.

Ранг: 35.9 (посетитель)
Статус: Участник

Создано: 15 июля 2018 23:32 New!
Цитата · Личное сообщение · #23

difexacaw пишет:
Стартап гуя и прочая инициализация

А если нет гуя?

Но вообще близко, очень близко. Мы этот метод и знаем. Но это костыль. Вам же костыли не нравятся, так как это не идеально.


Ранг: 316.4 (мудрец)
Статус: Участник

Создано: 15 июля 2018 23:35 New!
Цитата · Личное сообщение · #24

hypn0

Вы просто не работали никогда с выборками данных, о чём можно говорить, если у вас висяки на jmp$. Это как бы опыт нужен, толку от вашей трассы, если вы даже единственный критерий для определения еп не знаете

Ранг: 35.9 (посетитель)
Статус: Участник

Создано: 15 июля 2018 23:40 New!
Цитата · Личное сообщение · #25

difexacaw пишет:
если у вас висяки на jmp$

Я взял первый попавшийся файл, поставил jmp $ в начале и запустил. И оно повисло. Ужас какой. Microsoft тоже не умеет с такими файлами работать. Кошмар. И опыта у них видать тоже нет.

difexacaw пишет:
если вы даже единственный критерий для определения еп не знаете

Мы как раз знаем. Причем не только теоретически.


Ранг: 134.0 (ветеран)
Статус: Участник
Qt Developer

Создано: 15 июля 2018 23:43 New!
Цитата · Личное сообщение · #26

difexacaw пишет:
Аргументы плз в студию, или дальше иди гуляй пока каникулы в школе.


Клерк, зачем тебе какие-то там аргументы? Там будет очень много непонятных тебе слов. Зачем трамвировать твою подростковую психику?
Очевидно же, что по распаковке и нахождению OEP твои знания поверхностны. Иначе бы ты упомянул бы хотя бы вскользь выравнивание стэка перед переходом на OEP.
Но даже это для тебя слишком сложно.


Ранг: 316.4 (мудрец)
Статус: Участник

Создано: 15 июля 2018 23:46 New!
Цитата · Личное сообщение · #27

hors

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

Ранг: 35.9 (посетитель)
Статус: Участник

Создано: 15 июля 2018 23:59 New!
Цитата · Личное сообщение · #28

difexacaw пишет:
По стеку вы ничего не определите. Он и так всегда должен быть выравнен

А никто и не говорит что он не выровнен. Было сказано про "выравнивание", то есть про соответствующую инструкцию, за которую можно зацепиться, так как она идет перед переходом на OEP.
Это как раз еще один метод. Но про него почему-то не упомянули.

difexacaw пишет:
И не тебе решать что я понимаю, мудак.

Класс! Выходим на более высококультурный уровень общения.
И опять же переходы на личности, которые обычно случаются когда человек понимает, что не может ответить по существу и не хочет признавать свою неправоту.


Ранг: 134.0 (ветеран)
Статус: Участник
Qt Developer

Создано: 16 июля 2018 00:56 · Поправил: hors New!
Цитата · Личное сообщение · #29

difexacaw пишет:
По стеку вы ничего не определите. Он и так всегда должен быть выравнен, иначе отвалится всё на первой апи.


Это не так. Я бы рассказал почему, но боюсь ты не поймёшь. Нет необходимых базовых знаний.

difexacaw пишет:
И не тебе решать что я понимаю, мудак.


Давай только без агрессии. Мы тебе не враги. Это нормально что-то не знать. Нет на свете человека который бы всё знал.
Ты мало что понимаешь в распаковке, но возможно являешься хорошим специалистом в других областях. И это замечательно.

Вот ты зарепортил проблему с аспаком и я её уже исправил. за это большое спасибо.

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



Ранг: 316.4 (мудрец)
Статус: Участник

Создано: 16 июля 2018 18:32 New!
Цитата · Личное сообщение · #30

hypn0

> И опять же переходы на личности, которые обычно случаются когда человек понимает, что не может ответить по существу и не хочет признавать свою неправоту.

Если человек никакие эмоции не проявляет, то это не человек, а машина. У меня с этим была куча проблем. Так что эмоции нужны, иначе может неплохо поехать крышняк.

Задача в разработке, посмотрим на статистику по критерию выше


Ранг: 539.0 (!)
Статус: Участник
_Вечный_Студент_

Создано: 16 июля 2018 19:43 · Поправил: plutos New!
Цитата · Личное сообщение · #31

difexacaw пишет:
Если человек никакие эмоции не проявляет, то это не человек, а машина


это конечно так, да только КУЛЬТУРНЫЙ человек старается проявление эмоций контролировать.
Да оно и не всегда безопасно: назовешь какого-нибудь серьезного дядю в лицо (не через безопасный "бровзер") "мудаком", не успеешь обьяснить, что это дескать, так, "проявление естественных человеческих эмоций", а тебя уже умножили на НОЛЬ.
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >>
 eXeL@B —› Софт, инструменты —› XVolkolak 0.10 unpacker emulator

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS