Coder Social home page Coder Social logo

horsicq / die-engine Goto Github PK

View Code? Open in Web Editor NEW
2.1K 2.1K 305.0 60.86 MB

DIE engine

License: MIT License

QMake 25.61% Batchfile 8.25% C++ 44.18% C 1.31% Shell 12.22% Dockerfile 0.32% M4 1.18% CMake 6.92%
binary-analysis disassembler elf entropy hacktoberfest hacktoberfest22 program-analysis reverse-engineering signature unpacker yara

die-engine's Introduction

About Me

  • C/C++
  • Python
  • Assembler
  • Reverse engineering

🔭 I’m currently working on https://github.com/horsicq/Detect-It-Easy

🌱 I’m currently learning: ELF

🤔 I’m looking for help with translation:

📫 How to reach me: e-mail: [email protected] TG: @horsicq Twitter: @horsicq



Stars

Forks

My current projects:

Special Thanks

Alt Text

die-engine's People

Contributors

adoxa avatar alxchk avatar biroder avatar cw2k avatar dartraiden avatar greenozon avatar guihkx avatar horsicq avatar jimdi avatar rinat84 avatar sandsmark avatar still34 avatar xusheng6 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

die-engine's Issues

Unable to run static scan on in-memory data

With the following code:

            SpecAbstract::SCAN_OPTIONS pScanOptions = {};
            QFile file(sFileName);
            if (!file.open(QIODevice::ReadOnly)) {
              return;
            }
            QByteArray fileContents = file.readAll();
            file.close();

            SpecAbstract::SCAN_RESULT scanResult = StaticScan::processMemory(fileContents.data(), fileContents.size(), &pScanOptions);
            for (int i = 0; i < scanResult.listRecords.size(); ++i) {
              qDebug("(%d) (%s) (%s)", i,
                     scanResult.listRecords[i].sInfo.toLatin1().data(),
                     SpecAbstract::recordNameIdToString(scanResult.listRecords[i].name).toLatin1().data());
            }

I get the following output:

QIODevice::seek (QBuffer): The device is not open
QIODevice::seek (QBuffer): The device is not open
QIODevice::seek (QBuffer): The device is not open
QIODevice::seek (QBuffer): The device is not open
QIODevice::seek (QBuffer): The device is not open
QIODevice::seek (QBuffer): The device is not open
QIODevice::seek (QBuffer): The device is not open
QIODevice::seek (QBuffer): The device is not open
QIODevice::seek (QBuffer): The device is not open
QIODevice::seek (QBuffer): The device is not open
QIODevice::seek (QBuffer): The device is not open
QIODevice::seek (QBuffer): The device is not open
QIODevice::seek (QBuffer): The device is not open
QIODevice::seek (QBuffer): The device is not open
QIODevice::seek (QBuffer): The device is not open
QIODevice::seek (QBuffer): The device is not open (repeated many more times)
(0) () (Unknown)

However, with the following:

            SpecAbstract::SCAN_OPTIONS pScanOptions = {};
            SpecAbstract::SCAN_RESULT scanResult = {};
            StaticScan staticScan;
            staticScan.setData(sFileName, &pScanOptions, &scanResult);
            staticScan.process();
            staticScan.stop();

            for (int i = 0; i < scanResult.listRecords.size(); ++i) {
              qDebug("(%d) (%s) (%s)", i,
                     scanResult.listRecords[i].sInfo.toLatin1().data(),
                     SpecAbstract::recordNameIdToString(scanResult.listRecords[i].name).toLatin1().data());
            }

I get

Import hash: 6dc0ba9c9 1a6ff5f
KERNEL32.DLL LoadLibraryA
KERNEL32.DLL GetProcAddress
KERNEL32.DLL VirtualProtect
KERNEL32.DLL VirtualAlloc
KERNEL32.DLL VirtualFree
KERNEL32.DLL ExitProcess
advapi32.dll RegCloseKey
comctl32.dll ImageList_Add
gdi32.dll SaveDC
oleaut32.dll VariantCopy
user32.dll GetDC
version.dll VerQueryValueA
=====================================================================
Import hash: 7bc87a20
KERNEL32.DLL LoadLibraryA
KERNEL32.DLL GetProcAddress
KERNEL32.DLL VirtualProtect
KERNEL32.DLL VirtualAlloc
KERNEL32.DLL VirtualFree
KERNEL32.DLL ExitProcess
Import hash: 6e41b036
advapi32.dll RegCloseKey
Import hash: 4024bd8d
comctl32.dll ImageList_Add
Import hash: b6bee3d3
gdi32.dll SaveDC
Import hash: f6fecd5
oleaut32.dll VariantCopy
Import hash: 3ca3511b
user32.dll GetDC
Import hash: 6b623ce5
version.dll VerQueryValueA
SIGNATURE SCAN: Linker: Turbo linker()[]
SIGNATURE SCAN: Packer: UPX(0.81-3.81+)[exe]
SIGNATURE SCAN: Packer: Generic()[]
SIGNATURE SCAN: Certificate: Windows Authenticode(2.0)[PKCS #7]
CONST SCAN: Packer: UPX(2.90-3.XX)[exe]
CONST SCAN: Packer: NsPack()[]
RESOURCES SCAN: Library: Visual Component Library()[]
QSet()
(0) (I386, 32-bit, GUI) (Windows)
(1) () (Turbo linker)
(2) () (Borland Object Pascal(Delphi))
(3) () (Object Pascal(Delphi))
(4) () (Visual Component Library)
(5) () (Borland Delphi)
(6) (PKCS #7) (Windows Authenticode)
(7) (NRV2E_LE32,brute) (UPX)

Now my C++ may not be the sharpest but I would expect the same results for both approaches. Is there something I'm doing wrong?

Search for printable strings

What is the option (if any?) to search only for real, printable strings?

for the moment tools searches some strange strings, eg:

image

what?

Edit build_console_lin.sh: Set PATH for QMAKE

run build_console_lin.sh ( bash -x build_console_lin.sh )

What's it? you can write normal documentation not for aliens

Create release source code with full submodules's source

Hello! I should create this issue long time ago but i forgot about this.
Debian packaging has a tool called uscan which allows maintainer download new release's source code from github to build new version. However, it doesn't have something like git clone --recursive to get all source code from all submodules. So it would be nice if you can do that in next release.

More metadata in command line output

Would it be possible to add more metadata to the output of diec.sh? In particular, it would be great if the "Type" field (from the GUI) was added so we could see, for example, that a PE is of type GUI or DLL.

Building 64bit version from source does not contain the executables

I have been trying to build the application from source but for some reason I am unable to get the exes created so far only this gets added to the zip file:

  1. Qt5Core.dll
  2. Qt5Gui.dll
  3. Qt5Network.dll
  4. Qt5OpenGL.dll
  5. Qt5Script.dll
  6. Qt5ScriptTools.dll
  7. Qt5Svg.dll
  8. Qt5Widgets.dll
  9. db
  10. imageformats
  11. info
  12. lang
  13. listoffiles.txt
  14. msvcp140.dll
  15. msvcp140_1.dll
  16. platforms
  17. qss
  18. vcruntime140.dll
  19. vcruntime140_1.dll

Running the script for the win_64bit version ends up creating a zip file with no executable. I am using VS Community 2019, QT 5.15.2, and 7 zip. The scripts have the variables set correctly as well, not sure what could be causing this or where to look.

Die corrupts input binary when working with overlay

Used this tool:
image

Opened some exe inside it
Clicked "Overlay" button
CTRL+A
CTRL+D
save

Result: input file is corrupted, saved file is different after each save

Expected behaviour:

input file stays same
overlay file written in correct way

Input file:
test1.zip

Strings filter is slow in case you have 100K lines

In case your binary has 100 000 strings the searchbox edit works prerry slow...
It takes seconds between type in new char and then filter out
image

Proposal is to either do general speed up or 2nd option - filter strings only after user stops type in the chars...

Test provided on Win7x64, DiE ver 3.06 (latest release to the moment)

Please release appimage

An .appimage as one file would be good to have.
Also it might solve the dependency problem on Ubuntu 18

Update issue: 201-> 202

Check for update lead to this page: http://ntinfo.biz/index.php/detect-it-easy

and it shows :

Forbidden
You don't have permission to access /index.php/detect-it-easy on this server.
Server unable to read htaccess file, denying access to be safe

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

Search for strings window issue

While playing with strings searching window I"ve encountered some strange issue
if you leave just "C Strings" after some previous search - it ignores your request and does nothing

image

Please validate that this checkbox is active or maybe it depends on other checkboxes?

Limit of 50000 strings

There is a very annoying error box when searching for Strings, eg:

image

I propose either to remove it out completely
or
2) add an option into Settings dialog.

what if for some reason I need ALL the strings out of binary...

Missing libQt5OpenGL.so.5 on Ubuntu 20.04

Running die.sh on Ubuntu 20.04 results in:

./base/die: error while loading shared libraries: libQt5OpenGL.so.5: cannot open shared object file: No such file or directory

Running sudo apt install libqt5opengl5 takes care of the problem. Perhaps you can bundle the missing library?

Thanks!

MacOS Language not Changing

When I open up DIE on MacOS, it only is in Chinese. I've tried to change it in settings; however, it doesn't change.

I just opened it up for the first time on my Mac. See screenshot.
I try changing the language to English. See screenshot.
I restarted the app, and it didn't change. see screenshot.

How Can I Unpack?!

HI, I have an .exe file that your app detected it is packed as below:

PE: protector: SafeNet Sentinel LDK(-)[-]
PE: compiler: Borland Delphi(-)[-]
PE: linker: Turbo Linker(2.25*,Delphi)[EXE32,signed]

How can I unpack it?!

Thank you

Missing xpdf.h

Commit: 99d20cdafeaf37bbc42c27eac52350b11266922f in Formats/

In file included from ../die-source/SpecAbstract/specabstract.h:34,
                 from ../die-source/SpecAbstract/specabstract.cpp:21:
../die-source/Formats/xformats.h:37:10: fatal error: xpdf.h: No such file or directory
 #include "xpdf.h"
          ^~~~~~~~
compilation terminated.

Version 3.02 does not open in macOS 11.3.1

Hey there,

When opening version 3.02 in macOS 11.3.1 I am greeted with the following error:

image

The problem happens with the dmg as well as zip asset. Version 3.01 however, works just fine.

Thanks for all the hard work with this excellent tool.

Crypto pattern searching looks very slow

on big files (50-100 MB) it took very long time to scan for crypto sigs...

image

questions:
does the tool use multi-threads to speed up the search?
what kind of algo does it use to search sigs
does it use any of the industrial mentioned here https://en.wikipedia.org/wiki/String-searching_algorithm
eg: Boyer–Moore

I understand the term "slow" is very relative, but even on my modern machine (multicore, multi threaded) it takes 5..10 minutes to complete this action)

DIEC_mac -database specification

I am running DIEC_mac and can only make it read the db when the db is in the CWD as the DIEC_mac binary. I have tried as many ways as I can think of to specify the db path using the -database option and it never works. Please advise, examples below:

DIEC_mac * -database:/Volumes/BIGSTORE/development/Detect-It-Easy/
DIEC_mac * -database:/Volumes/BIGSTORE/development/Detect-It-Easy/db/*
DIEC_mac * -database:/Volumes/BIGSTORE/development/Detect-It-Easy/db

always with the same results, note the Invalid Signatures Database... maybe I am missing something simple...

Number of files: 3

PE: Nothing found PE: Nothing found PE: Nothing found Invalid signatures database! Please download signatures from https://github.com/horsicq/Detect-It-Easy/tree/master/db and put it to the application path.

Close button not working in MIME section. Requests.

Problem: When the mime button is pressed, the "close" button function does not work.
Request 1: Text search box in Hex property can be added.
Request 2: Byte per line option can be added in Hex section.
OS: Windows 10 2004 build.
DIE Version: 3.01b

Console version improvements

Console version or diec has only some basic functionality in comparison to GUI version
IMO, needs improvements to match GUI version.

diec -de mydll.dll
Total 7.7776: packed
0|PE Header|0|4096|6.83707: packed
1|Section(1)['UPX1']|1024|465920|7.79049: packed
2|Section(2)['.rsrc']|466944|5120|4.47426: not packed
3|Overlay|472064|512|0.156521: not packed

Column is fixed in Memory Map

Minor issue - please add column movier into the Memory Map dialog:
image

sometimes section names are long and they are printed as "..." - no very convenient not having option to wider the column!

./configure does not honor the prefix

If I run

./configure --prefix=/opt/root
make install -j$(nproc)

I get this output:

cd build_libs/ && ( test -e Makefile || /usr/lib64/qt5/bin/qmake -o Makefile /home/user/Programming/updater/DIE-engine/build_libs/build_libs.pro -spec linux-g++ ) && make -f Makefile install
make[1]: Entering directory '/home/user/Programming/updater/DIE-engine/build_libs'
cd ../XArchive/ && ( test -e Makefile || /usr/lib64/qt5/bin/qmake -o Makefile /home/user/Programming/updater/DIE-engine/XArchive/XArchive.pro -spec linux-g++ ) && make -f Makefile install
make[2]: Entering directory '/home/user/Programming/updater/DIE-engine/XArchive'
cd 3rdparty/bzip2/ && ( test -e Makefile || /usr/lib64/qt5/bin/qmake -o Makefile /home/user/Programming/updater/DIE-engine/XArchive/3rdparty/bzip2/bzip2.pro -spec linux-g++ ) && make -f Makefile install
make[3]: Entering directory '/home/user/Programming/updater/DIE-engine/XArchive/3rdparty/bzip2'
make[3]: Nothing to be done for 'install'.
make[3]: Leaving directory '/home/user/Programming/updater/DIE-engine/XArchive/3rdparty/bzip2'
cd 3rdparty/lzma/ && ( test -e Makefile || /usr/lib64/qt5/bin/qmake -o Makefile /home/user/Programming/updater/DIE-engine/XArchive/3rdparty/lzma/lzma.pro -spec linux-g++ ) && make -f Makefile install
make[3]: Entering directory '/home/user/Programming/updater/DIE-engine/XArchive/3rdparty/lzma'
make[3]: Nothing to be done for 'install'.
make[3]: Leaving directory '/home/user/Programming/updater/DIE-engine/XArchive/3rdparty/lzma'
cd 3rdparty/zlib/ && ( test -e Makefile || /usr/lib64/qt5/bin/qmake -o Makefile /home/user/Programming/updater/DIE-engine/XArchive/3rdparty/zlib/zlib.pro -spec linux-g++ ) && make -f Makefile install
make[3]: Entering directory '/home/user/Programming/updater/DIE-engine/XArchive/3rdparty/zlib'
make[3]: Nothing to be done for 'install'.
make[3]: Leaving directory '/home/user/Programming/updater/DIE-engine/XArchive/3rdparty/zlib'
make[2]: Leaving directory '/home/user/Programming/updater/DIE-engine/XArchive'
cd ../XCapstone/ && ( test -e Makefile || /usr/lib64/qt5/bin/qmake -o Makefile /home/user/Programming/updater/DIE-engine/XCapstone/XCapstone.pro -spec linux-g++ ) && make -f Makefile install
make[2]: Entering directory '/home/user/Programming/updater/DIE-engine/XCapstone'
cd 3rdparty/Capstone/ && ( test -e Makefile || /usr/lib64/qt5/bin/qmake -o Makefile /home/user/Programming/updater/DIE-engine/XCapstone/3rdparty/Capstone/Capstone.pro -spec linux-g++ ) && make -f Makefile install
make[3]: Entering directory '/home/user/Programming/updater/DIE-engine/XCapstone/3rdparty/Capstone'
make[3]: Nothing to be done for 'install'.
make[3]: Leaving directory '/home/user/Programming/updater/DIE-engine/XCapstone/3rdparty/Capstone'
cd 3rdparty/Capstone/x86/ && ( test -e Makefile || /usr/lib64/qt5/bin/qmake -o Makefile /home/user/Programming/updater/DIE-engine/XCapstone/3rdparty/Capstone/x86/x86.pro -spec linux-g++ ) && make -f Makefile install
make[3]: Entering directory '/home/user/Programming/updater/DIE-engine/XCapstone/3rdparty/Capstone/x86'
make[3]: Nothing to be done for 'install'.
make[3]: Leaving directory '/home/user/Programming/updater/DIE-engine/XCapstone/3rdparty/Capstone/x86'
make[2]: Leaving directory '/home/user/Programming/updater/DIE-engine/XCapstone'
cd ../XCppfilt/ && ( test -e Makefile || /usr/lib64/qt5/bin/qmake -o Makefile /home/user/Programming/updater/DIE-engine/XCppfilt/XCppfilt.pro -spec linux-g++ ) && make -f Makefile install
make[2]: Entering directory '/home/user/Programming/updater/DIE-engine/XCppfilt'
cd 3rdparty/cppfilt/ && ( test -e Makefile || /usr/lib64/qt5/bin/qmake -o Makefile /home/user/Programming/updater/DIE-engine/XCppfilt/3rdparty/cppfilt/cppfilt.pro -spec linux-g++ ) && make -f Makefile install
make[3]: Entering directory '/home/user/Programming/updater/DIE-engine/XCppfilt/3rdparty/cppfilt'
make[3]: Nothing to be done for 'install'.
make[3]: Leaving directory '/home/user/Programming/updater/DIE-engine/XCppfilt/3rdparty/cppfilt'
make[2]: Leaving directory '/home/user/Programming/updater/DIE-engine/XCppfilt'
make[1]: Leaving directory '/home/user/Programming/updater/DIE-engine/build_libs'
cd console_source/ && ( test -e Makefile || /usr/lib64/qt5/bin/qmake -o Makefile /home/user/Programming/updater/DIE-engine/console_source/console_source.pro -spec linux-g++ ) && make -f Makefile install
make[1]: Entering directory '/home/user/Programming/updater/DIE-engine/console_source'
make[1]: Nothing to be done for 'install'.
make[1]: Leaving directory '/home/user/Programming/updater/DIE-engine/console_source'
cd gui_source/ && ( test -e Makefile || /usr/lib64/qt5/bin/qmake -o Makefile /home/user/Programming/updater/DIE-engine/gui_source/gui_source.pro -spec linux-g++ ) && make -f Makefile install
make[1]: Entering directory '/home/user/Programming/updater/DIE-engine/gui_source'
make[1]: Nothing to be done for 'install'.
make[1]: Leaving directory '/home/user/Programming/updater/DIE-engine/gui_source'
cd lite_source/ && ( test -e Makefile || /usr/lib64/qt5/bin/qmake -o Makefile /home/user/Programming/updater/DIE-engine/lite_source/lite_source.pro -spec linux-g++ ) && make -f Makefile install
make[1]: Entering directory '/home/user/Programming/updater/DIE-engine/lite_source'
make[1]: Nothing to be done for 'install'.
make[1]: Leaving directory '/home/user/Programming/updater/DIE-engine/lite_source'
bash -x /home/user/Programming/updater/DIE-engine/install.sh
+ '[' -z '' ']'
+ case "$-" in
+ __lmod_vx=x
+ '[' -n x ']'
+ set +x
Shell debugging temporarily silenced: export LMOD_SH_DBG_ON=1 for this output (/usr/share/lmod/lmod/init/bash)
Shell debugging restarted
+ unset __lmod_vx
+ export X_SOURCE_PATH=/home/user/Programming/updater/DIE-engine
+ X_SOURCE_PATH=/home/user/Programming/updater/DIE-engine
+ cp -f /home/user/Programming/updater/DIE-engine/build/release/die /usr/bin/
cp: cannot create regular file '/usr/bin/die': Permission denied
+ cp -f /home/user/Programming/updater/DIE-engine/build/release/diec /usr/bin/
cp: cannot create regular file '/usr/bin/diec': Permission denied
+ cp -f /home/user/Programming/updater/DIE-engine/LINUX/die.desktop /usr/share/applications/
cp: cannot create regular file '/usr/share/applications/die.desktop': Permission denied
+ cp -Rf /home/user/Programming/updater/DIE-engine/LINUX/hicolor/ /usr/share/icons/
cp: cannot create regular file '/usr/share/icons/hicolor/16x16/apps/die.png': Permission denied
cp: cannot create directory '/usr/share/icons/hicolor/20x20': Permission denied
cp: cannot create regular file '/usr/share/icons/hicolor/24x24/apps/die.png': Permission denied
cp: cannot create regular file '/usr/share/icons/hicolor/256x256/apps/die.png': Permission denied
cp: cannot create regular file '/usr/share/icons/hicolor/32x32/apps/die.png': Permission denied
cp: cannot create regular file '/usr/share/icons/hicolor/48x48/apps/die.png': Permission denied
+ cp -Rf /home/user/Programming/updater/DIE-engine/XStyles/qss/ /usr/lib/die/
cp: cannot create directory '/usr/lib/die/': Permission denied
+ cp -Rf /home/user/Programming/updater/DIE-engine/Detect-It-Easy/info/ /usr/lib/die/
cp: cannot create directory '/usr/lib/die/': Permission denied
+ cp -Rf /home/user/Programming/updater/DIE-engine/Detect-It-Easy/db/ /usr/lib/die/
cp: cannot create directory '/usr/lib/die/': Permission denied
+ mkdir -p /usr/lib/die/signatures
mkdir: cannot create directory ‘/usr/lib/die’: Permission denied
+ cp -f /home/user/Programming/updater/DIE-engine/signatures/crypto.db /usr/lib/die/signatures/
cp: cannot create regular file '/usr/lib/die/signatures/': No such file or directory
make: *** [Makefile:588: install_target] Error 1

As you can see, it does not honor the install prefix.

Is there any way, I did miss that installs the files into the right directory? (/opt/root in my case) Furthermore I think this program often assumes it is installed into /usr/(local)

I recommend using 'dirname $0' to enable calling from other directories

When I use the absolute path to call the script in other directories, an error occurs:

[root@localhost test]# /srv/123/die_lin64_portable/diec.sh
/srv/123/die_lin64_portable/diec.sh: line 3: /home/test/base/diec: No such file or directory

So I changed the script to use an absolute path instead of the current working directory:

#!/bin/sh
export LD_LIBRARY_PATH="`dirname $0`/base:"
`dirname $0`/base/diec $*

Working now:

[root@localhost test]# pwd
/home/test
[root@localhost test]# /srv/123/die_lin64_portable/diec.sh -d -j /usr/bin/bash
{
    "detects": [
        {
            "name": "GLIBC",
            "options": "DYN AMD64-64",
            "string": "library: GLIBC(2.8)[DYN AMD64-64]",
            "type": "library",
            "version": "2.8"
        }
    ],
    "filetype": "ELF64"
}

Error `Qt_5.15' not found but it is installed actually

I got this error while trying to run the gui version of DIEv3.00 on my linux machine:

./base/die: ./base/libQt5Core.so.5: version `Qt_5.15' not found (required by /usr/lib/libQt5OpenGL.so.5)

I have latest Qt5 libraries and ncurses libraries are installed

diec status code is 0 even on error

Just noticed that if you run diec -j ./foo and foo file does not exist then you obtain Cannot find: ./foo but the exit code of diec is 0.

I expect the status code to be other than 0 because we have an error here.

Non-translatable strings

Most of the DIE UI strings are translate-able with .po files - that's great.
But still there's some strings that not listed there so they are non-translateable.

DIE main screen:
image

PE Import screen:
image

Also some strings on PE Relocs, PE Debug screens.

change md5 as default hash type

DIE use md4 as default hash type.
hash_method
In many times, people want to get md5 value. Also, the shape of md4 and md5 are similar, and someone maybe copy a md4 value rather than md5 value.
So is it possible to change md5 as default hash type?

Strings filtering issue in Strings window

what is the proper way to filter strings on the pattern

example:
image

if I put " pattern - all is fine
if I add "{
to pattern - strings are filtered out, expected to see those, which have pattern inside
eg:
image

Exceptions section is loading extremely slow

image

on 100 MB PE64 file it might take up to 1 minute on modern PC...
at the same time only 10-12% of CPU is being used, eg:
image

Consider some optimization like multi-threading and/or algo refactoring

THank you

Compilation overlap in lin64 build

I have built Qt5.6.3 on debian using source -> https://github.com/qt/qt5.git from commit 12fd0d5b9b486eaf80712d390265402a3bb06f0e. I checked out the modules I think DIE-engine required to build? qtsvg, qtxmlpatterns maybe?, qtscript. But when I tried installing DIE-engine it failed complaining about a missing header file for windows. I think there might be something wrong with the build script? I'm trying to install DIE in a headless VM running debian, which might be related but does not obviously appear to be relevant at this time.

root$ :/opt/DIE-engine# bash ./build_lin64.sh
Version: 2.06
rm -f moc__mainclass.cpp moc_scriptpe.cpp moc_scriptmsdos.cpp moc_scriptelf.cpp moc_scriptbinary.cpp moc_scan.cpp moc_pluginsscript.cpp moc_versionresource.cpp moc_pefile.cpp moc_msdosfile.cpp moc_elffile.cpp moc_textfile.cpp moc_binary.cpp moc_machfile.cpp moc_scriptmach.cpp moc_scripttext.cpp moc_scriptgeneric.cpp moc_singlefilescan.cpp
rm -f mainc.o _mainclass.o scriptpe.o scriptmsdos.o scriptelf.o scriptbinary.o scan.o utils.o pluginsscript.o versionresource.o pefile.o msdosfile.o elffile.o textfile.o binary.o machfile.o scriptmach.o scripttext.o scriptgeneric.o singlefilescan.o moc__mainclass.o moc_scriptpe.o moc_scriptmsdos.o moc_scriptelf.o moc_scriptbinary.o moc_scan.o moc_pluginsscript.o moc_versionresource.o moc_pefile.o moc_msdosfile.o moc_elffile.o moc_textfile.o moc_binary.o moc_machfile.o moc_scriptmach.o moc_scripttext.o moc_scriptgeneric.o moc_singlefilescan.o
rm -f *~ core *.core
g++ -c -pipe -Wno-missing-field-initializers -O2 -Wall -W -D_REENTRANT -fPIC -DDIE_CONSOLE -DQT_NO_DEBUG -DQT_SCRIPT_LIB -DQT_XML_LIB -DQT_CORE_LIB -I. -I../../../Qt5.6/include -I../../../Qt5.6/include/QtScript -I../../../Qt5.6/include/QtXml -I../../../Qt5.6/include/QtCore -I. -I../../../Qt5.6/mkspecs/linux-g++ -o mainc.o mainc.cpp
In file included from mainc.cpp:26:
../singlefilescan.h:12:10: fatal error: windows.h: No such file or directory
 #include <windows.h>
          ^~~~~~~~~~~
compilation terminated.
make: *** [Makefile:2290: mainc.o] Error 1

I know there's a __windows.h file in the root of DIE-engine's directory, maybe that's what it's looking for? If I include this file in the build it seems to compile correctly?
If I let it compile though, it eventually complains about a missing language directory? cp: cannot stat '/opt/DIE-engine/die_source/lang': No such file or directory. There is no lang folder in the die_source folder though? I must be missing something?

When I try running the precompiled release I get ./base/die: relocation error: ./base/die: symbol __cxa_throw_bad_array_new_length version Qt_5 not defined in file libQt5Gui.so.5 with link time reference. So maybe i'm missing another qt module anyway?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.