Сейчас на форуме: bartolomeo, -Sanchez-, morgot, sashalogout (+4 невидимых)

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

Ранг: 35.9 (посетитель), 94thx
Активность: 0.050.01
Статус: Участник

Создано: 31 марта 2018 12:22 · Поправил: hypn0
· Личное сообщение · #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 (посетитель), 94thx
Активность: 0.050.01
Статус: Участник

Создано: 15 июля 2018 12:31 · Поправил: hypn0
· Личное сообщение · #2

difexacaw
Я тоже скачал свежий аспак, только не смог упаковать блокнот, так как он у меня x64, поэтому взял первый попавшийся swfextract.exe из SWFTools. Упаковал, распаковал - всё работает. Что я делаю не так?

Может быть у Вас на компьютере вирус?

А вообще надо бы указывать версии. Ну и проверить образец, запускается ли упакованный?




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

Создано: 15 июля 2018 12:38
· Личное сообщение · #3

hors

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

-----
vx




Ранг: 35.9 (посетитель), 94thx
Активность: 0.050.01
Статус: Участник

Создано: 15 июля 2018 12:44
· Личное сообщение · #4

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

А напрямую там ничего не исполняется. И перестаньте говорить про трассировку и трассы. Это ЭМУЛЯТОР. Напрямую в проце ничего не исполняется. Всё полностью ЭМУЛИРУЕТСЯ. То есть фактически это песочница.




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

Создано: 15 июля 2018 12:47 · Поправил: difexacaw
· Личное сообщение · #5

hypn0

w7 берём два блокнота, notepad.exe и write.exe пакуем аспак v2.2 тут из раздела инструментов. Первый после упаковки не запускатся, пакер такой же говяный как и анпакер, впрочем второй запускается. Обрабатываем сабжем и апп отваливается на битой IAT с поинтерами вникуда.

Добавлено спустя 5 минут
hypn0

> А напрямую там ничего не исполняется.

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

-----
vx




Ранг: 35.9 (посетитель), 94thx
Активность: 0.050.01
Статус: Участник

Создано: 15 июля 2018 13:05
· Личное сообщение · #6

difexacaw пишет:
пакуем аспак v2.2 тут из раздела инструментов

Да. Упакованный этой версией не распаковывается. Спасибо. Исправим.

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

Они тоже эмулируются, но, разумеется, не все, а только те, которые встречаются в коде распаковщика.
Смысла эмулировать все WinAPI нет, так как нам нужно распаковать файл, а не выполнить его весь.



Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 15 июля 2018 13:07
· Личное сообщение · #7

difexacaw пишет: Тоесть по вашему это нормально, что оно будет виснуть на любом цикле

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

hypn0 пишет: И перестаньте говорить про трассировку и трассы

значит исходники qemu не читали, которые папке unicorn, автор unicorn тоже оставил комментарии в которых пишет о трассировке. неважно, что там трансляция, трассировка все равно остается трассировкой, хоть эмулятор, хоть jit компилятор, хоть отладка ленты машины тьюрига которая исполняется на виртуальном процессоре, это не имеет значения.




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

Создано: 15 июля 2018 13:07
· Личное сообщение · #8

hypn0

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

-----
vx




Ранг: 35.9 (посетитель), 94thx
Активность: 0.050.01
Статус: Участник

Создано: 15 июля 2018 13:10 · Поправил: hypn0
· Личное сообщение · #9

А по поводу тотальной эмуляции, виртуализации и прочего сатанизма, это Вам нужно за океан обращаться.
В США есть конторка, которая в начале 1960-х изобрела виртуализацию. С тех же годов они даже свой журнал выпускают, где серьезные дядьки пишут теоретические статьи. Причем конторка не просто теоретизирует, они выпускают вполне реальные компухтеры, на которых запускается любая ОС.
Пообщайтесь с ними, вдруг они что-то не понимают в этом всём. А нам это не нужно, мы обычные нубы, которые что-то пилят и не заморачиваются на тему правильности реализации.




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

Создано: 15 июля 2018 13:10
· Личное сообщение · #10

shellstorm

> лучше скажи почему тебе не всё равно? пусть хоть совсем не запускается, тебе лично какая разница, у тебя рядом тред весит, пили код

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

-----
vx




Ранг: 35.9 (посетитель), 94thx
Активность: 0.050.01
Статус: Участник

Создано: 15 июля 2018 13:13
· Личное сообщение · #11

shellstorm пишет:
трассировка все равно остается трассировкой, хоть эмулятор, хоть jit компилятор,

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




Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 15 июля 2018 13:17
· Личное сообщение · #12

hypn0 пишет:
они выпускают вполне реальные компухтеры, на которых запускается любая ОС

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

-----
2 оттенка серого


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

Ранг: 35.9 (посетитель), 94thx
Активность: 0.050.01
Статус: Участник

Создано: 15 июля 2018 13:20
· Личное сообщение · #13

difexacaw пишет:
Тогда и сама суть вопроса, из за чего это обсуждение и пошло - зачем эмуляция нужна

Да чтож у Вас так припекает от эмуляции? Ну вот такой вариант выбрали.
Или надо сейчас всё бросить и начать делать "по правильному", с Вашими ценными указаниями и под Вашим чутким руководством?

Я вот почему-то уверен, что пока Вы будете реализовывать свои идеи, xvlk уже будет поддерживать всё что только можно и отлично распаковывать.

А вообще если кому-то не нравится что кое-что не работает, то решить это можно моментально. Добавляем к версии слово alpha и вуаля.




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

Создано: 15 июля 2018 13:22
· Личное сообщение · #14

hypn0 пишет:
В США есть конторка, которая в начале 1960-х изобрела виртуализацию


IBM?

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


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

Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 15 июля 2018 13:22
· Личное сообщение · #15

hypn0 пишет: Ну раз нравится этот термин, то пусть будет трассировка.

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

f13nd пишет: Напомнило что-то про мцст эльбрус, который тоже с костылями

там jit компилятор, это на порядки быстрее эмуляции.



Ранг: 35.9 (посетитель), 94thx
Активность: 0.050.01
Статус: Участник

Создано: 15 июля 2018 13:23
· Личное сообщение · #16

f13nd
Ну примерно так, только без там всё без костылей. Компухтеры называются IBM System z и работают под управлением z/OS.




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

Создано: 15 июля 2018 13:26
· Личное сообщение · #17

hypn0

> Да чтож у Вас так припекает от эмуляции?

Не понимаю зачем это используется, а узнать хотелось бы.

-----
vx





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

Создано: 15 июля 2018 13:29 · Поправил: plutos
· Личное сообщение · #18

Ребята, дорогие мои "пoсоны", вот теперь другое дело!
Читаешь и радуется сердце: это уже по делу дисскуссия, дружелюбная, плодотворная: читаю, ума набираюсь.
Никто никому ..ев не тычет.
Давайте так и дальше: любить и уважать друг друга!

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




Ранг: 35.9 (посетитель), 94thx
Активность: 0.050.01
Статус: Участник

Создано: 15 июля 2018 13:53 · Поправил: hypn0
· Личное сообщение · #19

plutos пишет:
Давайте так и дальше: любить и уважать друг друга!

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




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

Создано: 15 июля 2018 14:13
· Личное сообщение · #20

hypn0 пишет:
Тут и так один коллега прямо в мозг любит с особым цинизмом, интенсифицировать это не нужно.

кто-то должен первым протянуть руку.
Бывает так, что в эту руку могут плюнуть, но ты знаешь, что сделал то, что мог.

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





Ранг: 271.2 (наставник), 331thx
Активность: 0.321.49
Статус: Участник

Создано: 15 июля 2018 14:31
· Личное сообщение · #21

shellstorm пишет:
там jit компилятор, это на порядки быстрее эмуляции.

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

-----
2 оттенка серого




Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 15 июля 2018 14:41 · Поправил: shellstorm
· Личное сообщение · #22

f13nd пишет: Так насколько я понял этот эльфийский язык, пассажир предлагает не эмуляцию

у клерка исполнение кода на реальном процессоре, в предельно упрощенном, варианте, без загрузчика и остального сопутствующего кода, выглядит так:
Code:
  1. int jit_call(unsigned char *buffer, unsigned size_buffer, x86_ctx_t *ctx)
  2. {
  3.     void *pfunc = mmap(NULL,size_buffer,PROT_WRITE | PROT_EXEC, MAP_ANONYMOUS | MAP_PRIVATE | MAP_32BIT,-1,0);
  4.     memcpy(pfunc, buffer, size_buffer);
  5.     void (*func) (x86_ctx_t *) = pfunc;
  6.     func(ctx);
  7.     munmap(pfunc, size_buffer);
  8.     return 0;
  9. }


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

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


Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 15 июля 2018 14:44
· Личное сообщение · #23

difexacaw пишет:
hypn0

> Да чтож у Вас так припекает от эмуляции?

Не понимаю зачем это используется, а узнать хотелось бы.


Я не смотрел как устроен XVolkolak, но ты возможно ошибаешься с динамическим подходом и трассой, если ты возьмёшь правильно планку для задачи, это распаковка протектора или пакера со всеми его хитростями, то понятно, что трасса не играет вообще никакой роли, так как если принять условно Эмуляцию как Статический метод распаковки, при условии минимальной информации (BlackBox), то в данном случае эмулятор получает информацию, которую статикой не всегда удобно добыть, в итоге это просто техника или инструментарий, который помогает быстро получить те данные нужные для распаковки, которые требуются, не обязательно даже грузить весь файл в память, иногда достаточно взять только те участки, которые помечены как важные, писать обработчик для каждого такого участка это геморой ещё тот, а делать трассу, совсем крэйзи.

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

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

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube


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


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

Создано: 15 июля 2018 14:47 · Поправил: difexacaw
· Личное сообщение · #24

shellstorm

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

-----
vx




Ранг: 35.9 (посетитель), 94thx
Активность: 0.050.01
Статус: Участник

Создано: 15 июля 2018 14:53
· Личное сообщение · #25

difexacaw пишет:
Эмуляция имеет больший тайминг, чем прямое исполнение. На порядки больший.

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




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

Создано: 15 июля 2018 14:54
· Личное сообщение · #26

mak

Трассировка даст поток инструкций и выборки данных. Но зачем они нужны при распаковке ?

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

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

Про тайминг я не вам ответил, для данной задачи это не важно.

-----
vx


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

Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 15 июля 2018 14:57 · Поправил: shellstorm
· Личное сообщение · #27

difexacaw пишет: Эмуляция имеет больший тайминг, чем прямое исполнение. На порядки больший. Поэтому нет смысла выполнять эмуляцию, если она частичная.

Я тебе уже объяснял, что с сабжевым двигом кода писать на порядки меньше, а зачем себе усложнять жизнь, если проект пишется не для зарабатывания шекеля, а просто по фану. Под существующие (мне известные) рекомпиляторы нужно написать кода больше чем занимает весь текущий проект, а оно надо?
Сделай готовый двиг, с *.lib\*.h и простыми интерфейсами в *.h, и тогда уже будет о чем говорить. даже сомнительный двиг лучше несуществующего, а сабж достаточно качественный, его пилят с девяностых годов, успели отладить серьезный баги, у сабжа простой интерфейс api, это сильно экономит время, это важно, учитывая, что это не рабочий проект, а хобби.

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

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

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


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

Создано: 15 июля 2018 15:05
· Личное сообщение · #28

shellstorm

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

-----
vx




Ранг: -0.7 (гость), 170thx
Активность: 0.540
Статус: Участник

Создано: 15 июля 2018 15:10
· Личное сообщение · #29

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

именно в том месте падение маловероятно, там translate.c наиболее проблемное место, в денува x64 vmprot, не крашит, это немного показательней блокнота с aspack.



Ранг: 35.9 (посетитель), 94thx
Активность: 0.050.01
Статус: Участник

Создано: 15 июля 2018 15:18
· Личное сообщение · #30

difexacaw пишет:
Вот только на семпле выше оно крэшнуло

difexacaw пишет:
оно всегда будет падать

Почему Вы пытаетесь выдать желаемое за действительное? На аспаке 2.2 ничего не крэшится и ничего не падает, как и на куче других файлов. Если Вы видите какие-то ошибки в логе, то это вовсе не означает, что всё поломалось. В данном случае xvlk не смог определить OEP и пошел выполнять дальше. При этом дальше может быть всё что угодно, включая неподдерживаемые WinAPI. Вот на них всё и остановилось.

Да, наша вина, что в логе GUI-версии не указывается правильная ошибка. А вот консольная версия говорит правильно: Error. Cannot find OEP.

Добавлено спустя 4 минуты
difexacaw
И вместо того чтоб критиковать, лучше бы подсказали заведомо 100% способ определения OEP. То есть тот момент, когда распаковщик/протектор закончил свою работу и передает управление самой программе.
Подскажите - на руках носить Вас будем!




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

Создано: 15 июля 2018 15:22
· Личное сообщение · #31

shellstorm

> сразу видно, что ничего сложнее upx и aspack не снимал, во многих случаях тупой дам даст нерабочий результат

Пакеры которые статически дампом снять нельзя я не рассматриваю. Сабж - дампер, а не внедряемая вм или что то такое. Если апп себя частями в динамике настраивает то ни о каком дампе речи идти не может. Рассматриваются самые простые примеры.

Добавлено спустя 1 минуту
hypn0

Критерий перехода на OEP ?

- выполнение кода после записи.

-----
vx



<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >>
 eXeL@B —› Софт, инструменты —› XVolkolak 0.10 unpacker emulator
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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