Сейчас на форуме: -Sanchez-, Alf, Adler, Rio (+5 невидимых)

 eXeL@B —› Софт, инструменты —› Interactive Delphi Reconstructor (IDR). Миттельшпиль
<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 47 . 48 . >>
Посл.ответ Сообщение

Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 06 декабря 2009 17:29 · Поправил: crypto
· Личное сообщение · #1

IDR (Interactive Delphi Reconstructor) – декомпилятор исполняемых файлов (EXE) и динамических библиотек (DLL), написанных на языке Delphi и выполняемых в среде 32х-разрядных операционных систем Windows.



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

Текущей версией программы могут обрабатываться файлы (как GUI, так и консольных приложений), скомпилированные компиляторами версий Delphi2 – Delphi2010. Ведется работа по поддержке Дельфи 2011.

Конечной целью проекта является разработка программы, способной восстановить большую часть исходных Delphi-текстов из скомпилированного файла, но пока IDR, как и другие Delphi-декомпиляторы, сделать этого не может. Тем не менее, IDR может значительно облегчить такой процесс. По сравнению с другими декомпиляторами анализ, выполненный IDR, отличается наибольшей полнотой и достоверностью. Кроме того, высокая интерактивность делает работу с программой комфортной и (не побоимся этого слова) приятной.

IDR выполняет статический анализ (анализируемый файл не запускается на выполнение), что позволяет безопасно изучать вирусы, трояны и прочие приложения, запуск которых опасен или нежелателен.

Программа не требует установки и не делает никаких записей в реестр Windows.


Официальный сайт:
kpnc.org/idr32
[Note] Недоступен после трагической гибели Криса (RIP)

Гитхаб
Github sources

Скачать:
Страница загрузки

Dropbox автора
https://www.dropbox.com/sh/9ran313nidqtagb/AADl_m_9GVYSiXUviZtDQWQHa?dl=0

Актуальная версия программы:

Исполняемый файл
Внимание! Требует наличия вспомогательных файлов и баз знаний!!!

Базы данных качать по
ссылке.

Для работы необходимо скачать базу знаний + последнюю версию программы



Ранг: 315.1 (мудрец), 631thx
Активность: 0.30.33
Статус: Модератор
CrackLab

Создано: 20 марта 2015 16:27
· Личное сообщение · #2

crypto




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

Создано: 20 марта 2015 18:26
· Личное сообщение · #3

мб это не сильно важно, но "до кучи"


c2ce_20.03.2015_EXELAB.rU.tgz - idr19032915.gif

-----
...или ты работаешь хорошо, или ты работаешь много...




Ранг: 80.6 (постоянный), 194thx
Активность: 0.10.04
Статус: Участник

Создано: 20 марта 2015 22:40 · Поправил: v00doo
· Личное сообщение · #4

GPcH, поддерживаю, еще один человек, который знает про проблему с DPI.

Я по этому поводу crypto отправлял уже скрины.

И если манифест насильно сунуть, ничего не смещается и не плывет в About, хотя там кажется что-то другое (другой косяк в idr) выползает.



Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 23 марта 2015 11:19 · Поправил: crypto
· Личное сообщение · #5

GPcH
Я по этому поводу уже с кем-то общался (не помню, отзовитесь, кто это был) - тогда было предложено добавить манифест и выполнять масштабирование форм. Как я говорил, манифест в Билдер 5 добавить не получается, а процедуру масштабирования я сделал, выглядит она так:

void __fastcall ScaleForm(TForm* AForm)
{
HDC _hdc = GetDC(0);
if (_hdc)
{
AForm->ScaleBy(GetDeviceCaps(_hdc, 0x58), 120);
ReleaseDC(0, _hdc);
}
}

Могу какой-то параметр, от которого зависит вид форм на экране, ввести в ini-файл. Подскажите, какой.

Подправил окно Эбаут
https://www.dropbox.com/s/wae0pva9rxfngml/IdrTest3.7z?dl=0




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 23 марта 2015 12:11
· Личное сообщение · #6

crypto
Да с масштабированием в целом терпимо, главное чего нужно - добавить выбор размера шрифта в листбоксах (чтобы его можно было увеличить), в остальном мелочи все.

Насчет манифеста - все просто, еще во времена VB6 добавлял в батник постпроцессинга который после компиляции запускается строку для добавления манифеста с помощью RTC или ResHacker. Примерно так:

Code:
  1. ResHacker.exe -addoverwrite "compiled.exe", "compiled.exe", "manifest.res",,,


А в манифесте следующее:

Code:
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2. <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  3.   <dependency>
  4.     <dependentAssembly>
  5.       <assemblyIdentity
  6.         type="win32"
  7.         name="Microsoft.Windows.Common-Controls"
  8.         version="6.0.0.0"
  9.         publicKeyToken="6595b64144ccf1df"
  10.         language="*"
  11.         processorArchitecture="*"/>
  12.     </dependentAssembly>
  13.   </dependency>
  14.   <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  15.     <security>
  16.       <requestedPrivileges>
  17.         <requestedExecutionLevel
  18.           level="asInvoker"
  19.           uiAccess="false"/>
  20.         </requestedPrivileges>
  21.     </security>
  22.   </trustInfo>
  23.   <asmv3:application  xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
  24.     <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
  25.       <dpiAware>true</dpiAware>
  26.     </asmv3:windowsSettings>
  27.   </asmv3:application>
  28. </assembly>


Ключевой момент:

<dpiAware>true</dpiAware>

Это как раз масштабирование.

В дельфи кстати манифест добавить легко, в файле проекта достаточно подключить свой RES файл:

Code:
  1. {$R manifest.res}


-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




Ранг: 80.6 (постоянный), 194thx
Активность: 0.10.04
Статус: Участник

Создано: 23 марта 2015 12:42 · Поправил: v00doo
· Личное сообщение · #7

crypto, со мной по поводу масштабирования говорили, вот как раз на шрифтах и остановились, его надо было поправить, точнее размер.
GPcH пишет:
добавить выбор размера шрифта в листбоксах (чтобы его можно было увеличить)

GPcH, манифест чуть другой надо, системе еще поддержку показать гуидом (без них масштабирвоание кривило бывало или не использовалось по дефолту), я такой использую (комменты по гуидам вбил):
Code:
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2. <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  3.  <assemblyIdentity
  4.     type="win32"
  5.     name="uwr"
  6.     version="1.0.0.2" 
  7.     processorArchitecture="*"/>
  8.  <dependency>
  9.   <dependentAssembly>
  10.    <assemblyIdentity
  11.         type="win32"
  12.         name="Microsoft.Windows.Common-Controls"
  13.         version="6.0.0.0"
  14.         publicKeyToken="6595b64144ccf1df"
  15.         language="*"
  16.         processorArchitecture="*"/>
  17.   </dependentAssembly>
  18.  </dependency>
  19.  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  20.   <security>
  21.    <requestedPrivileges>
  22.     <requestedExecutionLevel level="requireAdministrator" />
  23.    </requestedPrivileges>
  24.   </security>
  25.  </trustInfo>
  26.  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
  27.   <application>
  28.    <!-- Windows Vista -->
  29.    <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
  30.    <!-- Windows 7 --> 
  31.    <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
  32.    <!-- Windows 8 -->
  33.    <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
  34.    <!-- Windows 8.1 -->
  35.    <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
  36.    <!-- Windows 10 -->
  37.    <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
  38.   </application>
  39.  </compatibility>
  40.  <application xmlns="urn:schemas-microsoft-com:asm.v3">
  41.   <windowsSettings>
  42.    <dpiAware  xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
  43.   </windowsSettings>
  44.  </application>
  45. </assembly>

В остальном я так же новые манифесты добавляю в старых дельфях, как написал GPcH.



Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 23 марта 2015 13:31 · Поправил: crypto
· Личное сообщение · #8

v00doo
Я тут почитал маленько... Оказывается, можно сделать внешний манифест: переименовываем твой файл в idr.exe.manifest, помещаем его в ту же директорию, что и сам файл... И все работает.
Какие шрифты нужно менять, в каких формах?

ЗЫ
А что там с формой Эбаут, нормально теперь выглядит?

Добавлено спустя 33 минуты
TryAga1n
Я тебе ссылку кинул на вариант, в котором твой фокус обходится. Правда, до конца не уверен, все ли я учел, поэтому тестируй помаленьку, потом выскажешь свои зп (замечания + предложения). Но, вообще говоря, я не планировал работу программы со всякими там исхищрениями, это так, некоторые эксперименты...



Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 23 марта 2015 15:24 · Поправил: vden
· Личное сообщение · #9

А что нельзя создать idr.manifest и кинуть рядом с idr.exe, как выше писали, если такие проблемы его добавить в ресурсы.

PS crypto, перелезай на Delphi, билдер все-равно обертка для делфи. Если нужно, помогу с портированием IDR на XE7|XE8. Заодно Synedit нормально сможешь добавить.



Ранг: 95.1 (постоянный), 247thx
Активность: 0.260.01
Статус: Участник

Создано: 23 марта 2015 15:37
· Личное сообщение · #10

Прыгать выше XE - это уже дерьмо.Размер выходного эксе свыше полутора метров при пустой форме,а на XE+ все растет в геометрической прогрессии.Семь сотен строк кода в полтора метровом эксе, а если их больше 5 тыс.Стрем.

-----
TEST YOUR MIGHT




Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 23 марта 2015 15:41 · Поправил: vden
· Личное сообщение · #11

Для прикладного софта, типа IDR, размер exe не особо напрягает. Важнее функционал.



Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 23 марта 2015 15:48
· Личное сообщение · #12

vden
Я же уже написал про файл idr.exe.manifest, это решает проблему.
Перелезать на Дельфи нет никакого желания.
ЗЫ
Так что, никто так и не посмотрел, что с формой эбаут?




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 23 марта 2015 15:49 · Поправил: reversecode
· Личное сообщение · #13

vden
процессор устает бегать по одним и тем же инструкциям, особенно когда их много в раздутом прикладном софте
из за этого он часто тормозит, жрет память итд итп



Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 23 марта 2015 16:55
· Личное сообщение · #14

reversecode
Это ты о чем?



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

Создано: 23 марта 2015 17:55
· Личное сообщение · #15

crypto пишет:
Подправил окно Эбаут


все встало на место

-----
...или ты работаешь хорошо, или ты работаешь много...




Ранг: 80.6 (постоянный), 194thx
Активность: 0.10.04
Статус: Участник

Создано: 23 марта 2015 18:30
· Личное сообщение · #16

crypto, в списках который (дизасм, ссылки), он вроде Fixedsys, если не ошибаюсь.



Ранг: 11.8 (новичок), 15thx
Активность: 0.020
Статус: Участник

Создано: 23 марта 2015 18:40
· Личное сообщение · #17

Еще вариант добавить файл манифеста с помощью Resource Tuner 2.

Code:
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2. <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  3.    <assemblyIdentity
  4.       name="Crypto.Windows.IDR"
  5.       processorArchitecture="x86"
  6.       version="2.5.0.121"
  7.       type="win32"/>
  8.    <description>Interactive Delphi Reconstructor</description>
  9.    <dependency>
  10.       <dependentAssembly>
  11.          <assemblyIdentity
  12.             type="win32"
  13.             name="Microsoft.Windows.Common-Controls"
  14.             version="6.0.0.0"
  15.             processorArchitecture="x86"
  16.             publicKeyToken="6595b64144ccf1df"
  17.             language="*"
  18.          />
  19.       </dependentAssembly>
  20.    </dependency>
  21.    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  22.       <security>
  23.          <requestedPrivileges>
  24.             <requestedExecutionLevel
  25.                level="requireAdministrator"
  26.                uiAccess="True"/>
  27.          </requestedPrivileges>
  28.       </security>
  29.    </trustInfo>
  30.    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
  31.       <application>
  32.          <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
  33.          <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
  34.          <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
  35.          <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
  36.       </application>
  37.    </compatibility>
  38. </assembly>
  39.  




Ранг: 80.6 (постоянный), 194thx
Активность: 0.10.04
Статус: Участник

Создано: 23 марта 2015 19:12
· Личное сообщение · #18

MacTep, смотри пост GPcH, нет параметра dpiAware.



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

Создано: 23 марта 2015 21:06
· Личное сообщение · #19

файло 10 метров на DXE2 - EAccess violatation

-----
...или ты работаешь хорошо, или ты работаешь много...




Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 24 марта 2015 00:43
· Личное сообщение · #20

На последней версии
во время анализа нажатие на кнопочку [Src]

---------------------------
Idr
---------------------------
Access violation at address 00455BCE in module 'Idr.exe'. Read of address 0000001A.
---------------------------
OK
---------------------------




Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 24 марта 2015 23:16
· Личное сообщение · #21

v00doo пишет:
GPcH, манифест чуть другой надо, системе еще поддержку показать гуидом


Тестил декомпилятор с описанным мной выше манифестом без гуидов - корректно работает на Windows 8, 8.1 и 10. Потому не знаю насколько гуиды важны. На семерке вроде при 125% масштабе и не делается масштабирование шрифтов - только на 150%, а вот в 8 и 8.1 уже 125% тоже масштабирует.
А так думаю - лишним не будет.

PS: насчет делать файл .manifest - это из серии "мне влом писать батник с Resource Hacker / Resource Tuner". Имхо все должно быть внутри EXE.

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




Ранг: 188.1 (ветеран), 419thx
Активность: 0.140
Статус: Участник

Создано: 25 марта 2015 11:17
· Личное сообщение · #22

GPcH
Батник здесь ни при чем, я их тоже умею писать. Я избегаю пользоваться хакерскими утилитами, скачанными с данного сайта
А насчет того, где должен быть манифест, ИМХО, дело вкуса. Не зря внешние манифесты введены...




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

Создано: 25 марта 2015 11:28
· Личное сообщение · #23

crypto пишет:
Я избегаю пользоваться хакерскими утилитами, скачанными с данного сайта

Скачай не отсюда, скачай опенсорсное, напиши свое, там немного кода.

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





Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 25 марта 2015 12:53
· Личное сообщение · #24

crypto
Дык никто отсюда и не предлагает качать. Тем более есть коммерческий Resource Tuner Console. А файловый вид манифеста был до того как он стал в ресурсах поддерживаться. Так сказать на старте самой идеи манифеста.
А польза встроенного манифеста вовсе не в понтах. Если нужно в одной папке держать пару десятков версий одной программы - внешние манифесты это лишняя гора файлов так как стоит переименовать EXE - придется для нового создавать отдельный файл манифеста.

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!




Ранг: 80.6 (постоянный), 194thx
Активность: 0.10.04
Статус: Участник

Создано: 25 марта 2015 13:44 · Поправил: v00doo
· Личное сообщение · #25

crypto, да черт с ними, сами уже манифесты затолкаем, добавь изменение размера шрифта



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 25 марта 2015 14:05
· Личное сообщение · #26

unknownproject пишет: Прыгать выше XE - это уже дерьмо.
What? Поддержка актуального стандарта это вовсе не дерьмо.

reversecode пишет:
процессор устает бегать по одним и тем же инструкциям, особенно когда их много в раздутом прикладном софте

QT в данном случае ничем не лучше, собери тем же clang и будет такой же говнокод.

crypto
Чем не устраивает #pragma resource "имя_файла.res" ?
Собирай ресурс стандартной утилитой и подключай его через pragma, так с лохматых времен делают, без костылей типа ресурс тюнер с прочими хакерами.
Тоже поддержу всех жаждущих изменения размера шрифтов.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 25 марта 2015 14:30
· Личное сообщение · #27

причем здесь QT и размер? я про QT в другом контексте говорил



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 25 марта 2015 21:03
· Личное сообщение · #28

reversecode пишет: причем здесь QT и размер? я про QT в другом контексте говорил

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



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 25 марта 2015 22:09
· Личное сообщение · #29

Зачем вам кроссплатформенность для виндовой тулзы? Если уж реверсите под линем виндовые Delphi-проги, то и IDR под вайном запустите, не обломитесь.




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

Создано: 26 марта 2015 10:33 · Поправил: BoRoV
· Личное сообщение · #30

F_a_u_s_t пишет:
код такой же толстый

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

TryAga1n пишет:
Зачем вам кроссплатформенность для виндовой тулзы? Если уж реверсите под линем виндовые Delphi-проги, то и IDR под вайном запустите, не обломитесь.

Под вайном выглядит ужасно, а так выглядело бы нативно и на винде, и на лине, и на мак ос. И инструмент то делает статитечкий анализ, т.ч. привязки к винде нет.

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





Ранг: 631.1 (!), 62thx
Активность: 0.370.01
Статус: Участник
Автор VB Decompiler

Создано: 26 марта 2015 14:09
· Личное сообщение · #31

TryAga1n пишет:
Зачем вам кроссплатформенность для виндовой тулзы?


Тут ты зря. Меня лично из одной антивирусной компании просили оптимизировать VB Decompiler под Wine, пришлось немало посидеть в отладке но результат вполне приятный. Под Wine пользоваться комфортно. Зато потом на экзетулзах стали орать мол автор файлы протектить не умеет - ломаются легко. Увы - тут одно из двух, либо совместимость со всем чем только можно в ущерб опциям защиты, либо параноидальный неломаемый протект. Я всегда выбираю первое.

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

-----
Никогда не делай то, что возможно. Стремись сделать то что невозможно впринципе!


| Сообщение посчитали полезным: BoRoV
<< 1 ... 27 . 28 . 29 . 30 . 31 . 32 . 33 . 34 . 35 . 36 . 37 ... 47 . 48 . >>
 eXeL@B —› Софт, инструменты —› Interactive Delphi Reconstructor (IDR). Миттельшпиль
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати