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

 eXeL@B —› Протекторы —› Нашел OEP, но проблема с импортом!
Посл.ответ Сообщение

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

Создано: 15 мая 2019 11:30
· Личное сообщение · #1

Господа, всех вас приветствую!

У меня такой вопрос к опытным людям, которые, возможно, сталкивались с такой проблемой, когда нашел OEP, а Import по каким-то причинам получался битый, хотя сравниваю упакованную программу VMProtect-ом с не упакованной той же программой - все совпадает, но все равно битый импорт получается, или вообще размер самого импорта отличается от оригинала.

Подскажите, если знаете, в чем причина неправильного импорта?

Прошу помочь!
Буду рееально благодарен тем, кто реально поможет!

Добавлено спустя 6 минут
OEP найти не проблема, а вот с импортом чета проблема какая-то. Я уже пробовал искать импорт по первому вызову API функции в точки входа, но без результатно.

Логика VMProtect-а такова:
1) Занести в stack адрес API функции
2) Вызвать API при помощи команды RET
3) Уже загадка))))

Добавлено спустя 30 минут
Нашел вот такую штуку интересную:

В регистр EAX заносится число 52ADA7DD, потом далее идет команда LEA EAX,[EAX+24006623], где при сложении 2 чисел 52ADA7DD+24006623=76AE0E00(kernel32.GetStartupInfoA).

Вот тут уже загвостка: Откуда брать импорт, если адрес функции берется при помощи операции сложения, без заноса в стек, и вызывается, кстати, командой call eax, хотя бывает так, что заносит в стек и вызывается через RET.




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

Создано: 15 мая 2019 13:13
· Личное сообщение · #2

FOXHACKBOK

> Подскажите, если знаете, в чем причина неправильного импорта?

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

Раз известна IAT и функция шифрования(константа), то примените её к каждому элементу. Судя по всему у вмп всё шифрование основано на использовании констант, это значит что легко восстанавливается.

-----
vx




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

Создано: 15 мая 2019 15:10
· Личное сообщение · #3

Дело в том, что если программа огромная, я же не буду каждую функцию WinAPI восстанавливать, если размер IAT составляет 0x800, это же смешно.

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

Страница в том то все и дело, что выравнена под оригинал, если бы программа была бы не упакована.

Дело в том, что там где реальный импорт - функции имеют только часть адреса функции, в то время, когда основная часть где-то в коде.



Я видео прикрепил, можете глянуть, как это все происходит.
Компания хитро все сделал!

Добавлено спустя 0 минут
a0c4_15.05.2019_EXELAB.rU.tgz - 2019-05-15_160536.png

Добавлено спустя 0 минут
cc1f_15.05.2019_EXELAB.rU.tgz - 2019-05-15_160632.png

Добавлено спустя 1 минуту
01b3_15.05.2019_EXELAB.rU.tgz - 2019-05-15_160725.png

Добавлено спустя 1 минуту
83da_15.05.2019_EXELAB.rU.tgz - 2019-05-15_160814.png

Добавлено спустя 1 минуту
3d7a_15.05.2019_EXELAB.rU.tgz - 2019-05-15_160846.png

Добавлено спустя 2 минуты
Вот собственно видео.

Добавлено спустя 5 минут
Было бы правильней сказать, что куски адреса импорта разбросаны по коду, ну и прикиньте все это вручную восстанавливать, проще лоадер написать

Добавлено спустя 21 минуту
Самое что интересно, что адреса функций разбросаны по программе, а не как обычно все в одой таблице импорте. Так что вот так вот. Эта новая версия VMProtect-а.




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

Создано: 15 мая 2019 15:33
· Личное сообщение · #4

FOXHACKBOK

> я же не буду каждую функцию WinAPI восстанавливать

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

-----
vx




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

Создано: 15 мая 2019 15:44
· Личное сообщение · #5

Не, готовое мне не надо
Мне самому интересно распаковывать такие сложные вещи.

Вот собственно сам скриншот, посмотрите

5fdd_15.05.2019_EXELAB.rU.tgz - 2019-05-15_163257.png

Добавлено спустя 5 минут
difexacaw пишет:
А никто не говорил что это делается вручную, для этого есть компилятор или скрипты на крайняк. Или вы всё готовое хотите ?


Причем тут компилятор, когда речь идет о распаковки VMProtect?
Компилятор то не будет распаковывать такие вещи

Если есть скрипты, то они не работатю и устаревшие, в то время когда уже все новое.
Чета я еще не видел ниодного скрипта по распаковке VMProtect-та за 2017,2018, 2019.

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

Добавлено спустя 10 минут
Я готов заплатить за мануал распаковки VMProtect новых версии, так что я не обижу. Тем более я ценю профессионалов!




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

Создано: 15 мая 2019 16:30
· Личное сообщение · #6

FOXHACKBOK

Получается что хоть значение константа, но она разная для разных апи. В таком случае это трудность.

Тогда есть пути решения два.

1. Нужно выделить все переходники, для этого нужно получить их адреса.
2. Накопить переходники. Для этого нужны соотвествующие инструменты, типо этого --> Link <--

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

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

-----
vx




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

Создано: 15 мая 2019 17:30
· Личное сообщение · #7

Понимаешь, пока ты будешь собирать все переходники - ты состаришься все таки объем файла не 10kb, где контролируешь все.
Мне кажется, это не кому не под силу, потому как это очень, очень трудоемкая работа бегать по коду и собирать все функции, ну и постепенно восстанавливать импорт.

Теперь я понимаю, почему нету unpacker-ов новых по распаковке VMPRotect, я не говорю про скрипты.




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

Создано: 15 мая 2019 17:36 · Поправил: difexacaw
· Личное сообщение · #8

FOXHACKBOK

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

> Мне кажется, это не кому не под силу

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

-----
vx


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

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

Создано: 15 мая 2019 18:41
· Личное сообщение · #9

Если не сложно, можешь скинуть на ту программу или скрипт ссылку, который автоматический все распаковывает.




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

Создано: 15 мая 2019 18:45 · Поправил: difexacaw
· Личное сообщение · #10

FOXHACKBOK

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

-----
vx




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

Создано: 15 мая 2019 18:47
· Личное сообщение · #11

Давай я тебе скину программу, только что она упакована DEMO версией VMProtect-ом, и если не сложно, скинь видео.

Добавлено спустя 2 минуты
Твой инструмент распаковывает VMProtect?

Если распаковывает, то сколько просишь за инструмент?




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

Создано: 15 мая 2019 18:53 · Поправил: difexacaw
· Личное сообщение · #12

FOXHACKBOK

Нет не распаковывает. Я эту задачу пока не решил --> Link <--

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

-----
vx




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

Создано: 15 мая 2019 18:54
· Личное сообщение · #13

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




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

Создано: 15 мая 2019 18:59
· Личное сообщение · #14

FOXHACKBOK

Оставь семпл тут я с ним завтра поработаю.

-----
vx




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

Создано: 15 мая 2019 19:06
· Личное сообщение · #15

Вот сам файл, но там DEMO! Так все аналогично все. Вот ссылка на программу: https://transfiles.ru/dbhd1
Буду очень благодарен, если покажешь все на видео, ну и про импорт че-нибудь.




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

Создано: 15 мая 2019 19:08 · Поправил: difexacaw
· Личное сообщение · #16

FOXHACKBOK

Вот тебе для общего ознакомления видео как происходит работа с автоматикой(поиск EP) --> Link <--

Ок, посмотрю этот семпл.

-----
vx





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

Создано: 16 мая 2019 13:48 · Поправил: difexacaw
· Личное сообщение · #17

FOXHACKBOK

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



-----
vx




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

Создано: 16 мая 2019 22:18
· Личное сообщение · #18

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

)) Внезапно, да.





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

Создано: 17 мая 2019 21:33
· Личное сообщение · #19

Я чувствую, чем дальше версии VMProtect, тем жопа начинается, реально.

Я не говорю, что распаковать невозможно, просто ну это усложняется работа в распаковке, пока ты весь импорт будешь собирать по коду))))




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

Создано: 17 мая 2019 21:51 · Поправил: difexacaw
· Личное сообщение · #20

FOXHACKBOK

Не всё так сложно, в малварке используются куда более сложные способы. Если импорт не собран в одном месте, это не означает что ссылки нельзя найти и его пересобрать. Что бы получить экспорт должна пройти выборка из пе таблиц, тоесть разобраны экспортные таблицы и сохранены в память. В принципе возможно построить зависимости, вот только такое решение весьма сомнительно - нужны огромные обьёмы памяти для хранения таблиц, каждая выборка должна сохраняться(те на каждый адрес в ап +4 в таблицах, причём не простых таблицах, а avl).

Вот только какой смысл собирать импорт для вм не понятно. Можно на лету пофиксить вызовы, но это не имеет смысла. Сначала нужно чётко сформулировать задачу. К вм применяется девирт, а не фикс импорта.

Кстате EP найдена общим способом - третье AI событие(первые два ветвления; далее можно по вызовам увидеть стандартный сишный init). Для вас это наверно не важно, но важно для меня(искал общее решение), я по этому вставил это в монитор.

-----
vx



 eXeL@B —› Протекторы —› Нашел OEP, но проблема с импортом!
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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