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

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июля!


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

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

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

 eXeL@B —› Софт, инструменты —› Detect It Easy 2.0
<< . 1 . 2 . 3 . 4 . 5 .
Посл.ответ Сообщение


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

Создано: 3 августа 2018 19:32 · Поправил: hors New!
Цитата · Личное сообщение · #1



Download: --> Link <--

| Сообщение посчитали полезным: yashechka, hypn0, mak, RevCred, VOLKOFF, TRPD, HandMill, MarcElBichon, Bronco, BlackCode, -=AkaBOSS=-, sendersu, sefkrd, Autokent, mushr00m, =TS=, ==DJ==[ZLO], Isaev, ibmCORE, apslash, darkBLACK



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

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

ARCHANGEL

Плаг под сабж значит. Может кому то пригодится

Надеюсь что там будет что то дельное


Ранг: 654.2 (! !)
Статус: Участник
ALIEN Hack Team

Создано: 14 июня 2019 15:19 New!
Цитата · Личное сообщение · #3

difexacaw
На паблик его никто не даст


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

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

ARCHANGEL

Разумеется. Так как вы этот тулз собрались использовать автоматикой на файловом потоке. Это блэк и конечно же всё приват. Его после этого спалят аверы.


Ранг: 1008.9 (!!!!)
Статус: Участник

Создано: 14 июня 2019 16:23 New!
Цитата · Личное сообщение · #5

они и сами аверы
видишь какой он зеленый


Ранг: 654.2 (! !)
Статус: Участник
ALIEN Hack Team

Создано: 14 июня 2019 16:50 New!
Цитата · Личное сообщение · #6

Это блэк и конечно же всё приват. Его после этого спалят аверы.

Я вас прошу. Не смешите людей. Этот тул никому прост нахер не впал, кроме меня.


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

Создано: 15 июня 2019 17:44 New!
Цитата · Личное сообщение · #7

ARCHANGEL пишет:
Ругается на вот это:
Q_EXPORT_PLUGIN2(simpleexample, SimpleExample)


Спасибо за тестирование. Я это исправлю в будущем.

Версии DiE 1.ХХ собирались под Qt 4.XX, а Версии DiE 2.ХХ собираются под Qt 5.ХХ. Поэтому плагин от SDK старого DiE ругается на новую Qt.

ARCHANGEL пишет:
difexacaw
Для своих девелоперских нужд делаю плагин, чтобы клацать пкм по исполняемому файлу, потом выбирать плагин и в нём жать "Сделать офигенненько". Параллельо для справки буду смотреть версию компилятора, чтобы на вообще всякой ненужной шняге кнопушку не жать.


Тогда для этих целей лучше взять за основу вот эту утилиту: --> Link <-- Она легче и быстрее классического DiE и не тянет всю огромную базу сигнатур. Все сигнатуры вшитые. То что надо вписывется в в код и компилируется. Информация по сборке --> Link <--

Добавлено спустя 17 минут
difexacaw пишет:
Тест на протекторах, определение OEP:

- Safeengine
- Themida
- Armadillo
- Aspack
- Asprotect
- Obsidium
+ Pecompact
- Privexeprot
- UPX
- VMP
- YC
- Enigma
- Mpress
- Nice
- Nspack
- Winlic
- Pelock
- Winunpack
- Mew

Не рабочее говно.


Если я правильно понял, ты взял множество файлов накрытых разными протекторами и стал с помощью DiE искать OEP?
С чего ты решил, что DiE может делать это? Где-то прочитал или кто-то рассказал? Как ты к этому пришёл?

difexacaw пишет:
Норм анпакер может справиться с другим протектором, не на который расчитан.


Глупости.


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

Создано: 15 июня 2019 22:30 New!
Цитата · Личное сообщение · #8

hors

> С чего ты решил, что DiE может делать это?

Так если пакер определят, то и OEP определять должен. Ну а проверить было не долго.

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

Создано: 15 июня 2019 22:48 New!
Цитата · Личное сообщение · #9

difexacaw пишет:
Так если пакер определят, то и OEP определять должен. Ну а проверить было не долго.

так если пакер определяет, то и анпакать обязано, не ?

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



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

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

tihiy_grom

> так если пакер определяет, то и анпакать обязано, не ?

Нет, это операция посложнее. А так очевидно - пакер определил и EP тоже. По идеи как то обработать образ нужно после распаковки, тоесть на OEP. А для этого нужно её определить в идеале, но конечно можно просто запустить и потом уже когда всё распакуется работать с образом.

hors

> Глупости.

Почему же глупости, так многие анпакеры работают: ожидание распаковки -> дамп + фикс/сборка IAT.


Ранг: 654.2 (! !)
Статус: Участник
ALIEN Hack Team

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

hors
Если DiE 2.xx будет работать с новыми версиями Qt, то, возможно, и мне удастся переделать старый плагин. Меня всё устраивает именно как оно сделано в DiE, его размер и скорость работы - тоже устраивают. Я бы остановился на нём всё же. Но, если что, то воспользуюсь линком на альтернативную тулзу.


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

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

hors

Кстате нужно добавить что дамп возможен именно на OEP, пока апп не инициализировано(небыло W-выборки). Тоесть можно пропустить OEP для работы с анпакед образом, но что бы дампить нужно это чётко выделить событие.

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



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

Создано: 16 июня 2019 00:16 New!
Цитата · Личное сообщение · #13

difexacaw пишет:
Почему же глупости, так многие анпакеры работают: ожидание распаковки -> дамп + фикс/сборка IAT.


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

Теперь по пунктам:

1) Поиск OEP. Есть общеизвестные методы поиска OEP, которые срабатывают в 80% случаев. Но существуют и пакеры/протекторы, которые успешно запутывают общие методы поиска OEP

2) Дамп. В общем случае дампится вся память от ImageBase до конца участков памяти с атрибутами MEMORY_BASIC_INFORMATION.AllocationBase==ImageBase (если мы говорим сейчас о Windows).
Но есть пакеры/протекторы, которые при загрузке выделяют намного больше памяти и забивают её мусором после распаковки. При обычном дампе образуются файлы колоссального размера и не всегда работоспособные.

3) Фикс IAT. Как и в случае с OEP есть общеизвестные методы поиска оригинальной IAT и есть способы это всё запутать. Способы разные у разных пакеров/протекторов. Универсального решения, который бы работал во всех случаях здесь тоже нет. Кстати помимо фикса IAT в некоторых случаях нужен фикс TLS, релоков и иногда также ресурсов.

Исходя из этого невозможно создать распаковщик, который бы всё распаковывал с универсальным методом поиска OEP, дампа и фикса IAT.

Более перспективное направление, это сделать для каждого пакера/протектора свой отдельный модуль, учитывающий все конкретные тонкости распаковки.

difexacaw пишет:
Кстате нужно добавить что дамп возможен именно на OEP, пока апп не инициализировано(небыло W-выборки). Тоесть можно пропустить OEP для работы с анпакед образом, но что бы дампить нужно это чётко выделить событие.


Да.


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

Создано: 16 июня 2019 00:40 · Поправил: difexacaw New!
Цитата · Личное сообщение · #14

hors

Проблемы идут по цепочке. Раньше небыло способа чётко определить OEP. Соотвественно если что то дампить то образ становится не рабочим.

2. Когда анпакер отработал, те пройдена OEP и всё настроено, апп уже не зависит от слоя пакера, но это не всегда так, некоторые частично остаются частью апп, к примеру переносят какие то процедуры в буфера. Но это редко и не является проблемой. Все операции с памятью до OEP не относятся к исходному апп, это работает анпакер. Тут вся суть в выборке, впрочем это и есть критерий OEP.

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

> Исходя из этого невозможно создать распаковщик

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

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

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

> Но существуют и пакеры/протекторы, которые успешно запутывают общие методы поиска OEP

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


Ранг: 654.2 (! !)
Статус: Участник
ALIEN Hack Team

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

Ну что я вам могу сказать. Сборку-то самого плагина я пофиксил, теперь оно собирается. Но с версией 1 дая - не работает. Кладу dll в папку stuff/plugins, но плагинов не добавляется. В версии 2 такой папки, как plugins, нет вообще. И совершенно непонятно, куда его класть. Похоже, плагины в DiE - не особо кому нужны. Склоняюсь заюзать какой-то другой анализатор с более вменяемым SDK. Мож, кто юзал такой - подскажет что-то.


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

Создано: 16 июня 2019 14:10 · Поправил: =TS= New!
Цитата · Личное сообщение · #16

ARCHANGEL
"base\plugins" ?
(в поставке есть "base\plugins\platforms\qwindows.dll")

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



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

Создано: 16 июня 2019 15:38 New!
Цитата · Личное сообщение · #17

ARCHANGEL пишет:
Но с версией 1 дая - не работает. Кладу dll в папку stuff/plugins, но плагинов не добавляется.


Спасибо за тестирование. Проблема скорее всего в несовместимости разных версий Qt. Для DiE1.ХХ нужно 4.8.7

1) Устанавливаем VS2010: http://msdn.microsoft.com/en-us/library/dd831853%28v=vs.100%29.aspx
2) Устанавливаем QT 4.8.7 http://download.qt.io/archive/qt/4.8/4.8.7/qt-opensource-windows-x86-vs2010-4.8.7.exe
3) Компилируем плагин.
4) Кладем его в папку с плагинами. Папка указана в настройках. Options -> Paths -> Plugins
5) Options -> Plugins -> Enable plugins

ARCHANGEL пишет:
Похоже, плагины в DiE - не особо кому нужны


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

Это касается не только DiE, но и других программ тоже.

ARCHANGEL пишет:
Склоняюсь заюзать какой-то другой анализатор с более вменяемым SDK. Мож, кто юзал такой - подскажет что-то.


Можно попробовать Exeinfo PE. Там тоже есть SDK,

Добавлено спустя 5 минут
difexacaw пишет:
Вы можите такой прот для примера привести, просто те что выше в списке подчиняются общему правилу поиска OEP. Я не нашёл где это не работает.


Если это так, то это уже очень и очень неплохо.


Ранг: 654.2 (! !)
Статус: Участник
ALIEN Hack Team

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

=TS=
Есть base/platforms, но там ни слова про плагины.

hors
С 4 версией понятно. Я бы хотел юзать 5 версию qt, и в связи с этим возникает вопрос - куда положить скомпилированный плагин и какое имя использовать для регистрации метаданных? Сейчас вот так:

Code:
  1. class SimpleExample : public QObject, PluginInterface
  2. {
  3.     Q_OBJECT
  4.     Q_INTERFACES(PluginInterface)
  5.     Q_PLUGIN_METADATA(IID "die.plugininterface/1.0" FILE "plugininterface.json")  //вот тут что написать?
  6. public:
  7.     bool init(DIEPLUGIN *pDiePlugin);
  8.     QString getName();
  9.  
  10. private slots:
  11.     void process();
  12. private:
  13.     DIEPLUGIN *pDiePlugin;
  14.     QPushButton *button;
  15. };


Добавлено спустя 3 часа 31 минуту
В общем, взял --> Exeinfo PE <--, у которого SDK совместим с Peid. Т.е. достаточно написать плагин для Peid, и он автоматически будет валидным для Exeinfo PE. Для Peid SDK дотаточно простой, и можно найти инфу о нём --> Peid Plugin SDK <--. Для С++ можно всё уместить так:

Code:
  1. #ifdef _DLLMACRO
  2.          #define  DllExport        __declspec(dllexport)
  3. #else
  4.          #define  DllExport        __declspec(dllimport)
  5. #endif
  6.  
  7. DllExport DWORD DoMyJob(HWND hMainDlg, char *szFname, DWORD lpReserved, LPVOID lpParam);
  8. DllExport LPSTR LoadDll();


На том и порешил юзать Exeinfo PE. Всем участвовавшим в дискуссии - спасибо.


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

Создано: 17 июня 2019 04:05 New!
Цитата · Личное сообщение · #19

ARCHANGEL пишет:
достаточно написать плагин для Peid


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

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



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

Создано: 30 июня 2019 00:10 New!
Цитата · Личное сообщение · #20

2.04

[+] Many bugs have been fixed.

Download: --> Link <--

How to build DiE from sources: --> Link <--

| Сообщение посчитали полезным: plutos, Adler, BlackCode, mak, TRPD, DimitarSerg, mushr00m



Ранг: 471.2 (мудрец)
Статус: Участник
_Вечный_Студент_

Создано: 30 июня 2019 04:54 New!
Цитата · Личное сообщение · #21

hors пишет:
How to build DiE from sources: --> Link <--

Проверь пожалуйста линк, а то вот такой вылазит:

Code:
  1. К сожалению, страница, которую вы искали в этом блоге, не существует.


А все остальное - работает отлично! Спасибо за great tools!


Ранг: 581.6 (!)
Статус: Модератор
Research & Development

Создано: 30 июня 2019 07:34 New!
Цитата · Личное сообщение · #22

plutos пишет:
Проверь пожалуйста линк

Fixed:
--> Link <--

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



Ранг: 471.2 (мудрец)
Статус: Участник
_Вечный_Студент_

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

Jupiter пишет:
Fixed:

Теперь все путем! Спасибо!

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


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

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

Просьба, когда будет время, допилить флаги DllCharacteristics. Отображаются не все.
Полный список флагов: DLL Characteristics

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



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

Создано: 1 июля 2019 00:37 New!
Цитата · Личное сообщение · #25

d745150 пишет:
Просьба, когда будет время, допилить флаги DllCharacteristics. Отображаются не все.
Полный список флагов: DLL Characteristics


Спасибо за предложение. Это будет в следующей версии.

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

<< . 1 . 2 . 3 . 4 . 5 .
 eXeL@B —› Софт, инструменты —› Detect It Easy 2.0

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

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