Сейчас на форуме: bartolomeo, -Sanchez-, morgot, sashalogout (+5 невидимых) |
eXeL@B —› Софт, инструменты —› Detect It Easy 2.0 |
<< . 1 . 2 . 3 . 4 . 5 . 6 . >> |
Посл.ответ | Сообщение |
|
Создано: 03 августа 2018 19:32 · Поправил: hors · Личное сообщение · #1 2.05 [+] Many bugs have been fixed. [+] JSON output in console version. [+] No UPX build for Windows version Full changelog: How to build DiE from sources: Download: ----- http://ntinfo.biz | Сообщение посчитали полезным: yashechka, hypn0, mak, RevCred, VOLKOFF, TRPD, HandMill, MarcElBichon, Bronco, BlackCode, -=AkaBOSS=-, sendersu, sefkrd, Autokent, mushr00m, =TS=, ==DJ==[ZLO], Isaev, ibmCORE, apslash, darkBLACK, Crawler, ELF_7719116, ADMIN-CRACK, Adler, Bad_guy |
|
Создано: 14 июня 2019 15:15 · Личное сообщение · #2 |
|
Создано: 14 июня 2019 15:19 · Личное сообщение · #3 |
|
Создано: 14 июня 2019 15:50 · Поправил: difexacaw · Личное сообщение · #4 |
|
Создано: 14 июня 2019 16:23 · Личное сообщение · #5 |
|
Создано: 14 июня 2019 16:50 · Личное сообщение · #6 |
|
Создано: 15 июня 2019 17:44 · Личное сообщение · #7 ARCHANGEL пишет: Ругается на вот это: Q_EXPORT_PLUGIN2(simpleexample, SimpleExample) Спасибо за тестирование. Я это исправлю в будущем. Версии DiE 1.ХХ собирались под Qt 4.XX, а Версии DiE 2.ХХ собираются под Qt 5.ХХ. Поэтому плагин от SDK старого DiE ругается на новую Qt. ARCHANGEL пишет: difexacaw Для своих девелоперских нужд делаю плагин, чтобы клацать пкм по исполняемому файлу, потом выбирать плагин и в нём жать "Сделать офигенненько". Параллельо для справки буду смотреть версию компилятора, чтобы на вообще всякой ненужной шняге кнопушку не жать. Тогда для этих целей лучше взять за основу вот эту утилиту: Добавлено спустя 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 пишет: Норм анпакер может справиться с другим протектором, не на который расчитан. Глупости. ----- http://ntinfo.biz |
|
Создано: 15 июня 2019 22:30 · Личное сообщение · #8 |
|
Создано: 15 июня 2019 22:48 · Личное сообщение · #9 |
|
Создано: 15 июня 2019 22:56 · Личное сообщение · #10 tihiy_grom > так если пакер определяет, то и анпакать обязано, не ? Нет, это операция посложнее. А так очевидно - пакер определил и EP тоже. По идеи как то обработать образ нужно после распаковки, тоесть на OEP. А для этого нужно её определить в идеале, но конечно можно просто запустить и потом уже когда всё распакуется работать с образом. hors > Глупости. Почему же глупости, так многие анпакеры работают: ожидание распаковки -> дамп + фикс/сборка IAT. ----- vx |
|
Создано: 15 июня 2019 23:07 · Личное сообщение · #11 hors Если DiE 2.xx будет работать с новыми версиями Qt, то, возможно, и мне удастся переделать старый плагин. Меня всё устраивает именно как оно сделано в DiE, его размер и скорость работы - тоже устраивают. Я бы остановился на нём всё же. Но, если что, то воспользуюсь линком на альтернативную тулзу. ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 15 июня 2019 23:14 · Личное сообщение · #12 hors Кстате нужно добавить что дамп возможен именно на OEP, пока апп не инициализировано(небыло W-выборки). Тоесть можно пропустить OEP для работы с анпакед образом, но что бы дампить нужно это чётко выделить событие. ----- vx | Сообщение посчитали полезным: hors |
|
Создано: 16 июня 2019 00:16 · Личное сообщение · #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 для работы с анпакед образом, но что бы дампить нужно это чётко выделить событие. Да. ----- http://ntinfo.biz |
|
Создано: 16 июня 2019 00:40 · Поправил: difexacaw · Личное сообщение · #14 hors Проблемы идут по цепочке. Раньше небыло способа чётко определить OEP. Соотвественно если что то дампить то образ становится не рабочим. 2. Когда анпакер отработал, те пройдена OEP и всё настроено, апп уже не зависит от слоя пакера, но это не всегда так, некоторые частично остаются частью апп, к примеру переносят какие то процедуры в буфера. Но это редко и не является проблемой. Все операции с памятью до OEP не относятся к исходному апп, это работает анпакер. Тут вся суть в выборке, впрочем это и есть критерий OEP. 3. Собрать импорт это наверно главная проблема, потому что во первых это работа с форматом и лишний раз это трогать не хочется, а во вторых часто импорт запутанный и сложный, там бывают части протектора. > Исходя из этого невозможно создать распаковщик Не согласен, во первых нужно определиться с понятием протектора. Он является частью апп после анпака - тогда это лишние трудности, если же нет - то и проблемы нет, прямой дамп и IAT. В общем я как то не думал раньше над распаковкой, тоесть мне например это никогда нужно небыло. А зачем, если после само-распаковки апп открыто, всегда было достаточно обождать событие OEP прикрутив загрузчик. Не вижу особо смысла сохранять распакованный образ, это лишние трудности. Но теоретически это возможно. Добавлено спустя 10 минут hors > Но существуют и пакеры/протекторы, которые успешно запутывают общие методы поиска OEP Вы можите такой прот для примера привести, просто те что выше в списке подчиняются общему правилу поиска OEP. Я не нашёл где это не работает. Довольно интересно есть ли такой, но маловероятно. Просто потому, что исходное апп не содержит маркеров на указатели - данные/код или константа, те пересобрать бинарь невозможно без сурков. ----- vx |
|
Создано: 16 июня 2019 12:16 · Личное сообщение · #15 Ну что я вам могу сказать. Сборку-то самого плагина я пофиксил, теперь оно собирается. Но с версией 1 дая - не работает. Кладу dll в папку stuff/plugins, но плагинов не добавляется. В версии 2 такой папки, как plugins, нет вообще. И совершенно непонятно, куда его класть. Похоже, плагины в DiE - не особо кому нужны. Склоняюсь заюзать какой-то другой анализатор с более вменяемым SDK. Мож, кто юзал такой - подскажет что-то. ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 16 июня 2019 14:10 · Поправил: =TS= · Личное сообщение · #16 ARCHANGEL "base\plugins" ? (в поставке есть "base\plugins\platforms\qwindows.dll") ----- DREAMS CALL US | Сообщение посчитали полезным: hors |
|
Создано: 16 июня 2019 15:38 · Личное сообщение · #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. Я не нашёл где это не работает. Если это так, то это уже очень и очень неплохо. ----- http://ntinfo.biz |
|
Создано: 16 июня 2019 19:18 · Личное сообщение · #18 =TS= Есть base/platforms, но там ни слова про плагины. hors С 4 версией понятно. Я бы хотел юзать 5 версию qt, и в связи с этим возникает вопрос - куда положить скомпилированный плагин и какое имя использовать для регистрации метаданных? Сейчас вот так: Code:
Добавлено спустя 3 часа 31 минуту В общем, взял Code:
На том и порешил юзать Exeinfo PE. Всем участвовавшим в дискуссии - спасибо. ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 17 июня 2019 04:05 · Личное сообщение · #19 |
|
Создано: 30 июня 2019 00:10 · Личное сообщение · #20 2.04 [+] Many bugs have been fixed. Download: How to build DiE from sources: ----- http://ntinfo.biz | Сообщение посчитали полезным: plutos, Adler, BlackCode, mak, TRPD, DimitarSerg, mushr00m, esa_r |
|
Создано: 30 июня 2019 04:54 · Личное сообщение · #21 |
|
Создано: 30 июня 2019 07:34 · Личное сообщение · #22 plutos пишет: Проверь пожалуйста линк Fixed: ----- EnJoy! | Сообщение посчитали полезным: plutos, hors |
|
Создано: 30 июня 2019 08:32 · Личное сообщение · #23 Jupiter пишет: Fixed: Теперь все путем! Спасибо! ----- Give me a HANDLE and I will move the Earth. | Сообщение посчитали полезным: hors |
|
Создано: 30 июня 2019 23:23 · Личное сообщение · #24 Просьба, когда будет время, допилить флаги DllCharacteristics. Отображаются не все. Полный список флагов: | Сообщение посчитали полезным: hors |
|
Создано: 01 июля 2019 00:37 · Личное сообщение · #25 d745150 пишет: Просьба, когда будет время, допилить флаги DllCharacteristics. Отображаются не все. Полный список флагов: DLL Characteristics Спасибо за предложение. Это будет в следующей версии. ----- http://ntinfo.biz | Сообщение посчитали полезным: d745150 |
|
Создано: 01 октября 2019 13:42 · Личное сообщение · #26 1) В случае если ELF файл имеет не корректные значения в полях ei_class и/или ei_data DiE (версия 2.04 х64 linux) не распознаёт это как валидный ELF и выводит тип файла как binary. Но при этом скриптовая функция ELFFile.isValid() распознаёт его как валидный. Это баг? 2) Эксперементально определил наличие функции readQword(). При этом упоминаний про них на гитхабе ни в editor/autocomplete/ELF.lst, ни в help/ELF.js нет. Они специально удалены из документации или их просто забыли добавить? | Сообщение посчитали полезным: hors |
|
Создано: 01 октября 2019 18:06 · Поправил: hors · Личное сообщение · #27 vilimax пишет: 1) В случае если ELF файл имеет не корректные значения в полях ei_class и/или ei_data DiE (версия 2.04 х64 linux) не распознаёт это как валидный ELF и выводит тип файла как binary. Но при этом скриптовая функция ELFFile.isValid() распознаёт его как валидный. Это баг? Спасибо за тестирование. Это философский вопрос можно ли считать файл с неправильными значениями ei_class и/или ei_data настоящим ELF файлом. Так как от этих значений зависит последующий разбор всего файла. vilimax пишет: 2) Эксперементально определил наличие функции readQword(). При этом упоминаний про них на гитхабе ни в editor/autocomplete/ELF.lst, ни в help/ELF.js нет. Они специально удалены из документации или их просто забыли добавить? Функция readQword будет везде прописана в следующей версии DiE. Новые функции добавляются по просьбам пользователей, поэтому если есть ещё какие-то идеи для новых функций, то не стесняемся писать здесь или на почту horsicq[at]gmail.com ----- http://ntinfo.biz | Сообщение посчитали полезным: parfetka, vilimax |
|
Создано: 02 октября 2019 09:54 · Личное сообщение · #28 hors пишет: Это философский вопрос можно ли считать файл с неправильными значениями ei_class и/или ei_data настоящим ELF файлом. Так как от этих значений зависит последующий разбор всего файла. Спасибо за быстрый ответ. Возможно я не точно выразился. ELFFile.isValid() считает валидным файл абсолютно любое значение ei_class, даже когда оно отличается от указанного в спецификации (ELFCLASSNONE, ELFCLASS32, ELFCLASS64). Тоже самое и/или для ei_data. Хотя в спецификации остальные значения зарезервированы. И второй вопрос (хотя мне кажется что это больше относится к javascript): потеря точности в последнем байте чтении 8-битных указателей. Пример следующий кусок скрипта: Code:
Выводит: Qword adress pointer as text: 987654321fedcba Qword adress pointer as digit: 987654321fedc80 Qword adress pointer convert by qwordToHex() 0987654321fedc80 Соответственно вопрос как правильно работать с 8-битными значениями для сохранения точности? |
|
Создано: 02 октября 2019 11:34 · Личное сообщение · #29 vilimax пишет: Возможно я не точно выразился. ELFFile.isValid() считает валидным файл абсолютно любое значение ei_class, даже когда оно отличается от указанного в спецификации (ELFCLASSNONE, ELFCLASS32, ELFCLASS64). Тоже самое и/или для ei_data. Хотя в спецификации остальные значения зарезервированы. Ок. Я подправлю ELFFile.isValid() чтобы она проверяла ELFCLASS32/ELFCLASS64. vilimax пишет: И второй вопрос (хотя мне кажется что это больше относится к javascript): потеря точности в последнем байте чтении 8-битных указателей. Пример следующий кусок скрипта: Да, это проблема JavaScript. vilimax пишет: Соответственно вопрос как правильно работать с 8-битными значениями для сохранения точности? Есть несколько способов: 1) Конвертировать в строку. 2) Работать с DWORD. 3) Написать на C++ функции для конкретных задач, а потом вызывать их из скрипта. Например поправить эти файлы: https://github.com/horsicq/DIE-engine/blob/master/die_source/scriptbinary.h https://github.com/horsicq/DIE-engine/blob/master/die_source/scriptbinary.cpp А потом пересобрать DiE. http://n10info.blogspot.com/2019/06/build-detect-it-easy-on-linux-windows.html ----- http://ntinfo.biz |
|
Создано: 07 октября 2019 00:29 · Поправил: hors · Личное сообщение · #30 |
|
Создано: 07 октября 2019 09:13 · Личное сообщение · #31 hors пишет: 2.05 [+] Many bugs have been fixed. [+] JSON output in console version. [+] No UPX build for Windows version Download: --> Link <-- На сайте картинка от версии 2.05, а ссылки на 2.04 | Сообщение посчитали полезным: hors |
<< . 1 . 2 . 3 . 4 . 5 . 6 . >> |
eXeL@B —› Софт, инструменты —› Detect It Easy 2.0 |