Сейчас на форуме: bartolomeo, -Sanchez-, morgot, sashalogout (+4 невидимых) |
eXeL@B —› Софт, инструменты —› XVolkolak 0.10 unpacker emulator |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >> |
Посл.ответ | Сообщение |
|
Создано: 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 |
|
Создано: 19 июля 2019 18:04 · Личное сообщение · #2 daFix > without the risk of damaging the system. К примеру пин выполняет сервисы ядра напрямую, тоесть апп уязвимо как и при прямом запуске. Это не важно, так как все такое запускают на вм. Хотя можно в принципе заблочить опасные операции, но врядле такое нужно, излишнее усложнение. А в общем же подобие ав-вм не может использоваться для запуска пакеров. Так как там всегда фишки юзаются для обхода вм. Добавлено спустя 3 минуты Bronco > получить по смещениям эффективный адрес, как то не светится. Линейный адрес наверно, эффективный вычисляется без сегментов по MODR/M или прямому смещению. LA = EA + SEG.Base. Просто поправил. ----- vx | Сообщение посчитали полезным: Bronco |
|
Создано: 19 июля 2019 18:25 · Личное сообщение · #3 difexacaw пишет: Линейный адрес наверно, феньк за уточнения. давно не в теме, многое подзабыл ( или не вникал). у меня в юникорне пока с этим затык, решал по колхозному(GS&FS), но сейчас уже не вариант, как то оно всё размазано по трассе. И повторюсь, загрузчик для трассера Mr.eXoDia x64 dbg. difexacaw пишет: вычисляется без сегментов по MODR/M доктор, лечи дальше // это не шутка. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 19 июля 2019 18:50 · Поправил: difexacaw · Личное сообщение · #4 Bronco Так как произвольный сегмент создать нельзя(LDT), то достаточно определять сегмент по значению регистра. Это касается как 86, так и 64. На 64 префиксы переопределения сегмента кроме тех двух игнорятся. На 86 я делаю так, определение базы сегмента не нужно: Code:
Те по значению. На 64 будет аналогично. Проблема может быть в дизасме, он должен возвращать используемый сегмент, а не только дефолтный. С учётом переопределений сегмента. ----- vx |
|
Создано: 19 июля 2019 19:19 · Личное сообщение · #5 |
|
Создано: 19 июля 2019 19:24 · Поправил: difexacaw · Личное сообщение · #6 |
|
Создано: 19 июля 2019 19:48 · Личное сообщение · #7 difexacaw пишет: Определяет хардкодом ? Конечно в таком случае нужно использовать сигнатуры для конкретного прота. Да. Хардкод плюс в некоторых случаях эвристика. difexacaw пишет: А есчо сложные проты эмулятор ваш возможно не может крутить, те дойти до фазы дампа(те до OEP). Было такое что эмулятор спотыкался на некоторые антиэмуляторнае маханизмы. Но всё решалось патчами кода и доработкой самого эмулятора. Это сделать несложно когда работаешь с конкретными протекторами, а не пишешь общее решение для всех. difexacaw пишет: Кстате это опенсорсный проект или нет, интересно конкретно посмотреть как там что крутится ? Нет. Пока не опенсорсный, но я наверное код опубликую в будущем. ----- http://ntinfo.biz |
|
Создано: 19 июля 2019 19:48 · Личное сообщение · #8 difexacaw пишет: Тогда не понятно в чём проблема заключается кьюэму юзается не напрямую, а через надстройку юникорна. Чем собственно и заинтриговал сабж из топа, и хочу Пока думается что кривые руки, а там хз. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 19 июля 2019 20:04 · Поправил: hors · Личное сообщение · #9 Bronco пишет: У меня вопрос по эмулятору процессора , а точнее по сегментным регистрам. Под Unicorn, всё тот же QEMU, и сегментные регистры , вроде как есть. Инфу беру из под дебагера, она стабильно не меняется, но получить по смещениям эффективный адрес, как то не светится. Всё тоже самое что и на реальном процессоре/операционной системе. Выделяется память под GDT Если мы говорим о Windows, то выделяется память под TEB Заполняем GDT, особенно не забывая про FS Правим регистр GDTR Правим сегментные регистры. ----- http://ntinfo.biz | Сообщение посчитали полезным: Bronco |
|
Создано: 19 июля 2019 20:26 · Поправил: difexacaw · Личное сообщение · #10 Bronco > фильтровать через структуру диза ModR/M byte, потеря по времени Это как ? Вначале любая инструкция раскодируется, что бы узнать длину как минимум и адресацию. Те EA известен, о какой потере тайминга идёт речь не понятно. Может вм какую то инфу не предоставляет, например выхлоп диза, а только таскстат, то повторный дизасм в этом случае да, просадка профайла. С другой строны можно для раскодировки обойтись без диза. Я так сделал при тестах ав-вм. Забил таблицы MODRM(маркеры для инструкций), 4 вроде таблицы. А далее смещение вычисляется элементарно, по соотв. полю. Но там суть была не в тайминге, а в окончании эмуляции - у ав лимит на число инструкций и толстым дизом крутить не получается. Добавлено спустя 4 минуты hors > Нет. Пока не опенсорсный, но я наверное код опубликую в будущем. А почему не опен ? Там что, какие то секретные техники используются - наврядле судя по функционалу. Вот мне например интересно глянуть, так бы открыл сурки и посмотрел. Иначе нужно открывать это всё инструментами, пустая трата кучи времени на реверс. Хотя с другой стороны если открыть сурки, глянуть пару минут - понял и закрыл, соответственно забыл. ----- vx |
|
Создано: 19 июля 2019 20:54 · Личное сообщение · #11 difexacaw пишет: А почему не опен ? Там что, какие то секретные техники используются - наврядле судя по функционалу. Вот мне например интересно глянуть, так бы открыл сурки и посмотрел. Иначе нужно открывать это всё инструментами, пустая трата кучи времени на реверс. Хотя с другой стороны если открыть сурки, глянуть пару минут - понял и закрыл, соответственно забыл. Много причин почему я не хочу публиковать некоторые свои проекты. Секретные и оригинальные техники кстати там присутствуют тоже. А иначе зачем тогда это всё делать? ----- http://ntinfo.biz |
|
Создано: 19 июля 2019 21:10 · Поправил: difexacaw · Личное сообщение · #12 hors Механизмы могут быть общими, те их можно описать кратко и понятно. В таком случае сурки не особо нужны, только что бы мелкие детали реализации уточнить. Если же это некий чёрный ящик", который хз как работает, то на словах это не опишешь и показать сурки нужно. В противном случае такой инструмент рассчитан так скажем на не спецов, на людей которые могут только кнопки нажимать в гуе, им не интересно что и как устроено, механизмы, нужен лишь готовый результат, выхлоп тулза. Такие не оценят вашу работу. ps: не подумайте что мне необходимы ваши сурки. Мне просто интересно, сам метод(эмуляцию ОС) я считаю не пригодным. ----- vx |
|
Создано: 20 июля 2019 00:42 · Личное сообщение · #13 difexacaw пишет: Это как ? шаманить с контекстом можно только на хуках из фейса юникорна, и так чтобы успеть, до фейла...)) в итоге это же костыли. а само значение может формироваться хз где, прежде чем дойдёт до исполнения. и мониторить на врайте, через чтение дизом, не во всех случаях выручает. Лучшим вариантом формировать окружение, ведь по дефолту QEMU на это способен, вот только юникорн научить осталось. Семпл для х86 скинули, будем на посмотреть. ----- Чтобы юзер в нэте не делал,его всё равно жалко.. |
|
Создано: 20 июля 2019 11:14 · Личное сообщение · #14 hors пишет: Много причин почему я не хочу публиковать некоторые свои проекты. Секретные и оригинальные техники кстати там присутствуют тоже. А иначе зачем тогда это всё делать? Иногда лучше держать всё в тайне а то некоторые личности прикидываются шлангами а сами правой рукой защиты пишут и барыжат ими ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. | Сообщение посчитали полезным: ajax |
|
Создано: 21 июля 2019 02:30 · Личное сообщение · #15 |
|
Создано: 22 июля 2019 19:02 · Личное сообщение · #16 Code:
Получается что тулз работает только на самом простом, то что можно проэмулировать. И дело совсем не в том, что какие то протекторы - комерс. ----- vx |
|
Создано: 22 июля 2019 23:01 · Поправил: hors · Личное сообщение · #17 difexacaw пишет: Получается что тулз работает только на самом простом, то что можно проэмулировать. И дело совсем не в том, что какие то протекторы - комерс. Да, это странности самого QEMU. Но зная какой это протектор/пакер это всё легко обойти. Когда встречаются такие проблемы на пути, то срабатывает обработчик(у каждого пакера/протектора свой), который просто изменяет контекст: 1) Меняет EIP на безопасный код 2) Выравнивает стек 3) Правит цепочку исключений(SEH) 4) Иногда кое-какие дополнительные действия, специфичные для конкретного пакера/протектора. Если бы я делал общее решение, то наверное надо было бы править сам QEMU, а когда для каждого пакера/протектора свой модуль, то это всё решается быстро. Хотя может быть и не совсем элегантно. ----- http://ntinfo.biz |
|
Создано: 23 июля 2019 17:54 · Личное сообщение · #18 |
|
Создано: 23 июля 2019 21:03 · Поправил: hors · Личное сообщение · #19 difexacaw пишет: Но это ведь не ошибки в вашем тулзе, а исключения в протекторах. Это их штатное поведение, так проверяется отладчик или передаётся управление через сех. Причём тут эмулятор(qe) ? Воспроизвести механику SEH не составляет большого труда. Проблема в том что QEMU не всегда правильно генерирует исключения. Поэтому воспроизведенный один в один код из Windows работает иногда не так как нужно. Я почти добился "идеальной работы" SEH, но потом решил обновить QEMU до более новой версии. Так как в новой версии QEMU некоторые проблемы(но не все) были исправлены. В итоге старый код в некоторых случаях перестал работать. Править заново желания особого больше нет, да это и не нужно. Как уже говорилось, если мы работаем с отдельными модулями, то можно быстро сделать "костыль" для конкретного протекторы/пакера. ----- http://ntinfo.biz |
|
Создано: 23 июля 2019 21:59 · Личное сообщение · #20 hors Я думал что вм должна только поток инструкций ровно эмулить, а окружением занимается тот, кто эту вм юзает. У вас совсем иначе, те по вашему сама вм кривая. Добавлено спустя 36 минут hors > Я почти добился "идеальной работы" SEH, но потом решил обновить QEMU до более новой версии. Идеальная работа тулза должна выглядеть вот так Я выбрал произвольным образом протектор, у этого быстрый запуск, что бы не ждать пока крутится. Смотри сколько исключений разных кидает. Вот и как по твоему, имеет ли смысл использовать эмуляцию, учитывая весь этот гемор ? А что оно может выйти из под монитора - так он на варе запущен, никуда дальше не пойдёт, так что это не плюс эмуляции ----- vx |
|
Создано: 24 июля 2019 00:09 · Поправил: hors · Личное сообщение · #21 difexacaw пишет: Я думал что вм должна только поток инструкций ровно эмулить, а окружением занимается тот, кто эту вм юзает. У вас совсем иначе, те по вашему сама вм кривая. Нет. Неправильно думал. Вот смотри, обьясняю на пальцах: На реальном процессоре, если в usermode(ring-3) возникает исключение, например неправильная инструкция(#UD), то управление грубо говоря передается на цепочку обработчиков исключений. Мы можем, пользуясь QEMU, прикрутить сверху обработку SEH. И если бы QEMU работал как и реальный процессор,то никаких проблем не было бы. Но дело в том, что работа QEMU иногда отличается от реального процессора. Например версия QEMU, которую я сейчас использую, неправильно интерпретирует в 32 битном режиме команду retf. Неправильно выравнивается стек после неё. Стало быть через некоторое время возникает исключение, которое передаётся на наш SEH. На реальном процессоре такого нет. Встретить такую инструкцию в нормальном коде почти невозможно. А вот некоторые протекторы/упаковщики её используют в своих стабах. Мне пришлось править QEMU. Это один из примеров. difexacaw пишет: Идеальная работа тулза должна выглядеть вот так --> Link <-- Выглядит неплохо. difexacaw пишет: Я выбрал произвольным образом протектор, у этого быстрый запуск, что бы не ждать пока крутится. Что значит быстрый запуск? Попробуй запаковать что-нибудь этим пакером http://www.farbrausch.de/~fg/kkrunchy/ и запустить свою утилиту Это упаковщик, даже не протектор, никаких хитрых приёмов там нет. ----- http://ntinfo.biz |
|
Создано: 24 июля 2019 06:22 · Личное сообщение · #22 |
|
Создано: 24 июля 2019 10:07 · Личное сообщение · #23 |
|
Создано: 24 июля 2019 17:28 · Поправил: difexacaw · Личное сообщение · #24 hors Нет, это же не дампер. Она может находить OEP, вот например в вашей тулзе: Задачи дампа небыло. Я привёл пример что бы показать, что можно сделать просто и ровно, не используя эмуляторы. У меня небыло времени утром разбираться, что по kkrunchy ? Это какой то примитивный пакер, почему именно его привели ? ----- vx |
|
Создано: 25 июля 2019 11:17 · Личное сообщение · #25 |
|
Создано: 25 июля 2019 19:06 · Личное сообщение · #26 |
|
Создано: 28 июля 2019 10:53 · Личное сообщение · #27 hors Можете сами потестить, я тут kk ломает гуй. 6684_28.07.2019_EXELAB.rU.tgz - kk.7z ----- vx | Сообщение посчитали полезным: hors |
|
Создано: 28 июля 2019 14:59 · Личное сообщение · #28 |
|
Создано: 01 августа 2019 18:35 · Поправил: difexacaw · Личное сообщение · #29 mak Зачем, ключевые события в виде колбеков. Вполне достаточно что бы мониторить апп. Вносить серьёзные изменения в работу апп - тогда нужно собирать. Но учитывая необходимый для использования скилл, про сборку речь не идёт, тк никто не будет в этом разбираться, может вам и есчо паре человек это интересно. Всем нужны инструменты с кнопками, готовое ----- vx |
|
Создано: 02 августа 2019 16:37 · Поправил: ==DJ==[ZLO] · Личное сообщение · #30 Какая последняя сборка ? у меня 0.20 в шапке 0.10... или Почему некоторые файлы с ~100kb после унпака в ~ + - 3-6мб превращается? половина файла нулями забита ( |
|
Создано: 02 августа 2019 16:56 · Поправил: hors · Личное сообщение · #31 ==DJ==[ZLO] пишет: Какая последняя сборка ? у меня 0.20 в шапке 0.10... или --> About <-- Почему некоторые файлы с ~100kb после унпака в ~ + - 3-6мб превращается? половина файла нулями забита ( 0.22 https://www.dropbox.com/s/vbac57we8p18qol/xvlk_winxp_public_0.22.zip?dl=1 С нулями вроде решена проблема в последней версии. ----- http://ntinfo.biz | Сообщение посчитали полезным: ==DJ==[ZLO] |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 . >> |
eXeL@B —› Софт, инструменты —› XVolkolak 0.10 unpacker emulator |