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

 eXeL@B —› Дневники и блоги —› Detect It Easy
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 13 . 14 . >>
Посл.ответ Сообщение


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 18 января 2013 18:08 · Поправил: hors
· Личное сообщение · #1

Detect It Easy утилита для определения версии протекторов/ упаковщиков

Текущая версия 1.00





Здесь будут выкладываться последние наработки.

Скачать

Changelog
GITHUB

Приветствуются замечания. Сообщения о ложных срабатываниях. Новые идеи.

Если я долго отсутствую на форуме или не отвечаю в ЛС, пишите мне на horsicq[at]gmail.com

-----
http://ntinfo.biz


| Сообщение посчитали полезным: Hellspawn, _ruzmaz_, 4kusNick, ==DJ==[ZLO], mushr00m, Diabolic, daFix, Dazz, void, BAHEK, -Sanchez-, SergeyIvan, vnekrilov, dimka_new, stas_02, crc1, Grim Fandango, GPcH, DimitarSerg, ylproduction, DenCoder, Jim DiGriz, ClockMan, VAD87, DICI BF, Chris, Black_, HandMill, MasterSoft


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 24 июля 2013 18:06
· Личное сообщение · #2

Archer пишет:
А почему не 5.1?


Под QT5 нужно будет переписывать часть кода. Конечно переход на QT5 будет, но потом.

-----
http://ntinfo.biz





Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 26 июля 2013 17:48 · Поправил: hors
· Личное сообщение · #3

Добавил в TODO реализацию нативных плагинов. То есть не скриптов, а отдельных скомпилированных модулей. Скрипты тоже останутся кстати.
Всё это видится сделать средствами QT http://qt-project.org/doc/qt-5.0/qtcore/plugins-howto.html

Спасибо BoRoV за интересную идею и предложенную архитектуру.

-----
http://ntinfo.biz





Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 26 июля 2013 18:16
· Личное сообщение · #4

hors пишет:
http://qt-project.org/doc/qt-4.8/plugins-howto.html

Не, они заточены под Qt5, потому нужно ждать перехода DiE на Qt5. И произошедшие изменения в Qt5 затронули и плагины, правда не сильно, но правильна ссылка на описание вот http://qt-project.org/doc/qt-5.0/qtcore/plugins-howto.html

-----
Лучше быть одиноким, но свободным © $me


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


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 26 июля 2013 18:23
· Личное сообщение · #5

BoRoV пишет:
http://qt-project.org/doc/qt-5.0/qtcore/plugins-howto.html


Спасибо. Исправил.

-----
http://ntinfo.biz




Ранг: 221.3 (наставник), 135thx
Активность: 0.190.07
Статус: Участник

Создано: 26 июля 2013 20:31
· Личное сообщение · #6

Bug: Проходит проверку и выводит сообщение о загрузке новой версии при отсутствии соединения с интернетом

-----
xchg dword [eax], eax


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


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 26 июля 2013 23:12
· Личное сообщение · #7

void пишет:
Bug: Проходит проверку и выводит сообщение о загрузке новой версии при отсутствии соединения с интернетом


Спасибо за тестирование. Добавил в TODO.

-----
http://ntinfo.biz





Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 28 июля 2013 22:20
· Личное сообщение · #8

Для светлой темы, которая дефолтная, тоже бы рамочки лишние убрать.

-----
Лучше быть одиноким, но свободным © $me


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


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 28 июля 2013 23:40 · Поправил: hors
· Личное сообщение · #9

BoRoV пишет:
Для светлой темы, которая дефолтная, тоже бы рамочки лишние убрать.


Рамочки вокруг каких элементов?

-----
http://ntinfo.biz





Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

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

compiler/linker/...


-----
Лучше быть одиноким, но свободным © $me


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


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 29 июля 2013 00:48
· Личное сообщение · #11

BoRoV пишет:
compiler/linker/...


Спасибо. Добавил в TODO

-----
http://ntinfo.biz





Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 01 августа 2013 16:48
· Личное сообщение · #12

Буду переделывать HEX-viewer, то что есть сейчас мне не очень нравится.

-----
http://ntinfo.biz


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

Ранг: 221.3 (наставник), 135thx
Активность: 0.190.07
Статус: Участник

Создано: 10 августа 2013 20:18 · Поправил: void
· Личное сообщение · #13

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


Также, при расчете энтропии можно сделать подсчет байт, типа
0x00 - 5.01%
0x01 - 0.31%
0x02 - 1.21%
...
0xFF - 4.51%
Также разделив на секции и общую статистику.

В общем, собрать хоть какую-нибудь инфу по файлу

-----
xchg dword [eax], eax


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


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 11 августа 2013 00:18
· Личное сообщение · #14

void пишет:
При общем подсчете энтропии она показываецо по XY шкале, X - число энтропии, Y - байты. Предлагаю расчертить Y шкалу в соответствии с секциями. То есть, какие байты соответствую какой секции и слева легенду вывести.


Хорошая идея. Добавил в TODO.

-----
http://ntinfo.biz





Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 15 августа 2013 22:43 · Поправил: hors
· Личное сообщение · #15

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

-----
http://ntinfo.biz





Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 17 августа 2013 17:48
· Личное сообщение · #16

С .NET вроде бы разобрался, но надо будет оптимизировать скорость для некоторых часто вызываемых функций.

-----
http://ntinfo.biz





Ранг: 681.5 (! !), 405thx
Активность: 0.420.21
Статус: Участник
ALIEN Hack Team

Создано: 18 августа 2013 18:28
· Личное сообщение · #17

hors пишет:

сколько всего там разного накручено, чтобы найти файловое смещение EntryPoint, уму непостижимо

Хм, можно подробнее с этого места? Если не хотите долго расписывать, то ссылки приветствуются.

-----
Stuck to the plan, always think that we would stand up, never ran.


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


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 18 августа 2013 22:40 · Поправил: hors
· Личное сообщение · #18

ARCHANGEL пишет:
hors пишет:

сколько всего там разного накручено, чтобы найти файловое смещение EntryPoint, уму непостижимо

Хм, можно подробнее с этого места? Если не хотите долго расписывать, то ссылки приветствуются.


Я все сделал по этому мануалу. --> Link <-- Все работает, но на некоторых файлах очень медленно. Нужно оптимизировать код.

А алгоритм следующий:

1) Проверяем наличие IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR в заголовке PE. Если есть, то это .NET файл.
2) _IMAGE_DATA_DIRECTORY[IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].VirtualAddress переводим в файловое смещение и переходим на него.
3) Там находится структура IMAGE_COR20_HEADER:

Code:
  1. typedef struct IMAGE_COR20_HEADER
  2. {
  3.     // Header versioning
  4.     DWORD                   cb;
  5.     WORD                    MajorRuntimeVersion;
  6.     WORD                    MinorRuntimeVersion;
  7.  
  8.     // Symbol table and startup information
  9.     IMAGE_DATA_DIRECTORY    MetaData;
  10.     DWORD                   Flags;
  11.  
  12.     // If COMIMAGE_FLAGS_NATIVE_ENTRYPOINT is not set, EntryPointToken represents a managed entrypoint.
  13.     // If COMIMAGE_FLAGS_NATIVE_ENTRYPOINT is set, EntryPointRVA represents an RVA to a native entrypoint.
  14.     union {
  15.         DWORD               EntryPointToken;
  16.         DWORD               EntryPointRVA;
  17.     } DUMMYUNIONNAME;
  18.  
  19.     // Binding information
  20.     IMAGE_DATA_DIRECTORY    Resources;
  21.     IMAGE_DATA_DIRECTORY    StrongNameSignature;
  22.  
  23.     // Regular fixup and binding information
  24.     IMAGE_DATA_DIRECTORY    CodeManagerTable;
  25.     IMAGE_DATA_DIRECTORY    VTableFixups;
  26.     IMAGE_DATA_DIRECTORY    ExportAddressTableJumps;
  27.  
  28.     // Precompiled image info (internal use only - set to zero)
  29.     IMAGE_DATA_DIRECTORY    ManagedNativeHeader;
  30.  
  31. } IMAGE_COR20_HEADER, *PIMAGE_COR20_HEADER;


4) Проверяем флаги если COMIMAGE_FLAGS_NATIVE_ENTRYPOINT установлен, то нам повезло, EntryPointRVA и есть нужный нам ЭнтриПойнт.
5) Если флаг COMIMAGE_FLAGS_NATIVE_ENTRYPOINT не установлен, то нужно разбирать EntryPointToken, перейдя на "IMAGE_DATA_DIRECTORY MetaData"

Вот здесь начинаются сложности. EntryPointToken представляет из себя DWORD типа XXYYYYYY, где XX номер таблицы метаданных, YYYYYY индекс в таблице.

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

-----
http://ntinfo.biz


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

Ранг: 221.3 (наставник), 135thx
Активность: 0.190.07
Статус: Участник

Создано: 20 августа 2013 18:11 · Поправил: void
· Личное сообщение · #19

Реквестирую полный просмотр структур директорий в РЕ файле. Как это сделано в РЕтулз.
Просмотр релоков, тлс, баунд импорт, дебаг\секурити инфо.



-----
xchg dword [eax], eax


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


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 20 августа 2013 18:44
· Личное сообщение · #20

void пишет:
Реквестирую полный просмотр структур директорий в РЕ файле. Как это сделано в РЕтулз.
Просмотр релоков, тлс, баунд импорт, дебаг\секурити инфо.


Спасибо за идею. Добавил в TODO

-----
http://ntinfo.biz





Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 20 августа 2013 23:56
· Личное сообщение · #21

Добавил в SDK функции для .NET

bool PE.isNET() возвращает true если файл имеет .NET директорию

bool compareEP_NET(QString sSignature) сравнивает байты по .NET EntryPoint (не путать с EntryPoint всего PE файла!)

-----
http://ntinfo.biz





Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 21 августа 2013 00:20
· Личное сообщение · #22

Вышла 0.76

[+] QT library обновилась до 4.8.5
[+] QWT library обновилась до 6.1.0
[+] Для основной темы "Orange" сделаны более контрастные ссылки (4kusNick)
[+] Исправлена ошибка обновления через интернет (void)
[+] Сделана тема default_fix без рамочек (BoRoV)
[+] Улучшено определение CrypKey (HandMill)
[+] Добавлены тип и SDK MS-DOS (ajax)
[+] Добавлены тип и SDK DotNET (ajax)
[+] Для PE-файлов сделан более наглядный график энтропии (void)
[+] Сделан подсчет байтов (void)
[+] Исправлена критическая ошибка определения энтропии оверлея на некоторых файлах(xp sp3 x32)(void)
[+] Добавлено определение SecuROM (ELF_7719116)
[+] Добавлено определение Starforce(Zorn)

-----
http://ntinfo.biz





Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 21 августа 2013 00:36
· Личное сообщение · #23

hors пишет:
[+] Сделана тема default_fix без рамочек (BoRoV)



-----
Лучше быть одиноким, но свободным © $me


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


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 21 августа 2013 00:45 · Поправил: hors
· Личное сообщение · #24

BoRoV пишет:
hors пишет:
[+] Сделана тема default_fix без рамочек (BoRoV)


Это точно "default_fix", а не "default"?



-----
http://ntinfo.biz





Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 21 августа 2013 00:53
· Личное сообщение · #25

Так лучше, а зачем было делать отдельную тему?

-----
Лучше быть одиноким, но свободным © $me


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


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 21 августа 2013 01:08 · Поправил: hors
· Личное сообщение · #26

BoRoV пишет:
Так лучше, а зачем было делать отдельную тему?


Просто "default" это окно без стилей. Если я в нем уберу рамки, то они исчезнут и из всех тем. Что не очень хотелось бы.

default_fix это тема, в которой простая запись

Code:
  1. QTableView
  2. {
  3.      gridline-color: #FFFFFF;
  4. }


То есть рамка есть, но она по цвету совпадает с фоном. Кстати все темы можно найти в папке \stuff\qss (кроме default, так как это просто окно без стилей) Туда можно добавлять свои темы (ну или удалить все ненужные, чтобы не мозолили глаза).

Язык разметки очень простой, и очень похож на CSS( и называется похоже QSS --> Link <--). ==DJ==[ZLO] сделал специально для DIE хорошую тему "Evilorange"

-----
http://ntinfo.biz




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

Создано: 21 августа 2013 14:33
· Личное сообщение · #27

А зачем в гистограмме шкала до 300 если максимум 255?
На вкладке Bytes сортировка живет какой-то своей жизнью

130e_21.08.2013_EXELAB.rU.tgz - bytes.jpg

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


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 21 августа 2013 14:56
· Личное сообщение · #28

user_ пишет:
А зачем в гистограмме шкала до 300 если максимум 255?
На вкладке Bytes сортировка живет какой-то своей жизнью

130e_21.08.2013_EXELAB.rU.tgz - bytes.jpg


Спасибо за тестирование. Добавил в TODO.

1) Это автонастройка QWT, попробую это отключить.
2) Это всё потому, что ячейки таблицы сортируется как строки, а не как числа.

-----
http://ntinfo.biz




Ранг: 221.3 (наставник), 135thx
Активность: 0.190.07
Статус: Участник

Создано: 21 августа 2013 20:12 · Поправил: void
· Личное сообщение · #29

Еще идея тебе hors.
Когда копируешь мапируешь файл в память, закрывай хэндлы, чтобы другие программы могли с ним работать, а то получается, если открыть файл в дие, другие проги уже не могут получить к нему доступ =(

user_ пишет:
На вкладке Bytes сортировка живет какой-то своей жизнью

Особенно поле Count

Bugfix:
В окне Entropy->Bytes, листвью сделай ReadOnly

Bugfix:
В окне подсчета энтропии оверлея, по шкале Х, если слишком большое количество байт, лэйблы накладываются друг на друга, шаг может уменьшить?
И справа в Листбокс добавить пункт Overlay.


Bugfix:
В общем окне подсчета энтропии, оная считается для пехидера, секций, а для оверлея нет, хотя он в списке есть, хотя шкала Х расчерчена полностью.
И можно сразу, в поле выбора секций\хидера\оверлея, в скобках добавить подсчитанную энтропию, как это сделано в окне с секциями


-----
xchg dword [eax], eax


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


Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 21 августа 2013 22:34
· Личное сообщение · #30

void пишет:
Когда копируешь мапируешь файл в память, закрывай хэндлы, чтобы другие программы могли с ним работать, а то получается, если открыть файл в дие, другие проги уже не могут получить к нему доступ =(


Когда файл просто открывается в DIE(главное окно) он не блокируется. Блокируется только когда открываются разные диалоги(редакторы, просмотрщики). Все они связаны между собой сигналами. И если в одном диалоге мы изменяем данные, то остальные получаются сигнал и перезагружаются. Если файл не блокировать, то если он будет изменен в другой программе(например изменен размер), а DIE в это время пытается сам что-то редактировать, то получится не очень хорошая вещь.

void пишет:
В окне Entropy->Bytes, листвью сделай ReadOnly


Спасибо. Добавил в TODO.
void пишет:
В окне подсчета энтропии оверлея, по шкале Х, если слишком большое количество байт, лэйблы накладываются друг на друга, шаг может уменьшить?


Спасибо. Попробую что-нибудь придумать. Добавил в TODO.
void пишет:
И справа в Листбокс добавить пункт Overlay.


В смысле? Части PE файла показываются только когда считается энтропия для всего файла.

void пишет:
В общем окне подсчета энтропии, оная считается для пехидера, секций, а для оверлея нет, хотя он в списке есть, хотя шкала Х расчерчена полностью.
И можно сразу, в поле выбора секций\хидера\оверлея, в скобках добавить подсчитанную энтропию, как это сделано в окне с секциями


Спасибо. Добавил в TODO.

-----
http://ntinfo.biz





Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 21 августа 2013 23:06 · Поправил: hors
· Личное сообщение · #31

Вышла версия 0.76.1

[+] Исправлена ошибка сортировки в таблице подсчета количества байт (user_)
[+] Исправлены размеры гистограммы (user_)
[+] Таблица статистики байт теперь readonly (void)
[+] Показ значения энтропии для каждой части файла на диаграмме (void)

-----
http://ntinfo.biz



<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 13 . 14 . >>
 eXeL@B —› Дневники и блоги —› Detect It Easy
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати