├── release_version.txt ├── icons ├── lite.ico ├── main.ico ├── lite.icns └── main.icns ├── images └── thanks │ ├── ASL.png │ ├── Dazz.png │ ├── DosX.png │ ├── GPcH.png │ ├── Gray.png │ ├── KDSS.png │ ├── SReg.png │ ├── Tilt.png │ ├── Zorn.png │ ├── ajax.png │ ├── crc1.png │ ├── void.png │ ├── Adler.png │ ├── BAHEK.png │ ├── BJNFNE.png │ ├── BoRoV.png │ ├── DICIBF.png │ ├── Dan0xE.png │ ├── DrZlo.png │ ├── JMPer.png │ ├── JaviVR.png │ ├── Kaens.png │ ├── Levis.png │ ├── LinXP.png │ ├── NickSM.png │ ├── Nomade.png │ ├── Tembo.png │ ├── clayne.png │ ├── ekse0x.png │ ├── exet0l.png │ ├── hmstk.png │ ├── hypn0.png │ ├── ktgkbh.png │ ├── user_.png │ ├── 4kusNick.png │ ├── AdricNet.png │ ├── Airenikus.png │ ├── AliHadi.png │ ├── Bartosz.png │ ├── DavClark.png │ ├── DenCoder.png │ ├── Diabolic.png │ ├── DrFarFar.png │ ├── Elite_r.png │ ├── HandMill.png │ ├── Hexacorn.png │ ├── JasonHood.png │ ├── JeffreyWu.png │ ├── JoaoVitor.png │ ├── JuJu2015.png │ ├── Jupiter.png │ ├── Metabolic.png │ ├── MickGrove.png │ ├── NikolayD.png │ ├── RedBlkJck.png │ ├── Slinger.png │ ├── SpriteOvO.png │ ├── Xylit0l.png │ ├── d3dm4u5.png │ ├── deniskore.png │ ├── elastic.png │ ├── fr0zenbag.png │ ├── hellspawn.png │ ├── misonothx.png │ ├── modz2014.png │ ├── mushr00m.png │ ├── phithon.png │ ├── rmusser.png │ ├── sapdragon.png │ ├── sendersu.png │ ├── xchwarze.png │ ├── ADMINCRACK.png │ ├── AdamHenault.png │ ├── ArnaudDovi.png │ ├── DavidZimmer.png │ ├── DimitarSerg.png │ ├── ELF_7719116.png │ ├── FilipNavara.png │ ├── FrenchYeti.png │ ├── GiladReich.png │ ├── JaeHuyngLee.png │ ├── JavierNieto.png │ ├── JiriVinopal.png │ ├── Murcielago.png │ ├── NongHoangTu.png │ ├── RinatAminow.png │ ├── blue-devil.png │ ├── dartraiden.png │ ├── gurololicon.png │ ├── miT231-spec.png │ ├── AndersonLeite.png │ ├── DuncanOgilvie.png │ ├── EliseuFilipi.png │ ├── FernandoMerces.png │ ├── IntegralTech.png │ ├── JasonJackTan.png │ ├── LeandroFroes.png │ ├── ASL.json │ ├── Dazz.json │ ├── GPcH.json │ ├── SReg.json │ ├── Tilt.json │ ├── Zorn.json │ ├── ajax.json │ ├── crc1.json │ ├── void.json │ ├── Adler.json │ ├── BAHEK.json │ ├── BoRoV.json │ ├── Gray.json │ ├── JMPer.json │ ├── Levis.json │ ├── Nomade.json │ ├── Tembo.json │ ├── ekse0x.json │ ├── exet0l.json │ ├── hypn0.json │ ├── user_.json │ ├── DICIBF.json │ ├── DrZlo.json │ ├── Elite_r.json │ ├── JaviVR.json │ ├── Jupiter.json │ ├── Kaens.json │ ├── LinXP.json │ ├── NickSM.json │ ├── Slinger.json │ ├── d3dm4u5.json │ ├── ktgkbh.json │ ├── 4kusNick.json │ ├── Airenikus.json │ ├── DenCoder.json │ ├── Diabolic.json │ ├── HandMill.json │ ├── JeffreyWu.json │ ├── JuJu2015.json │ ├── Metabolic.json │ ├── MickGrove.json │ ├── NikolayD.json │ ├── RedBlkJck.json │ ├── deniskore.json │ ├── hellspawn.json │ ├── mushr00m.json │ ├── ADMINCRACK.json │ ├── BJNFNE.json │ ├── DimitarSerg.json │ ├── ELF_7719116.json │ ├── Murcielago.json │ ├── dartraiden.json │ ├── gurololicon.json │ ├── sendersu.json │ ├── EliseuFilipi.json │ ├── JaeHuyngLee.json │ ├── JavierNieto.json │ ├── JiriVinopal.json │ ├── KDSS.json │ ├── NongHoangTu.json │ ├── RinatAminow.json │ ├── clayne.json │ ├── ArnaudDovi.json │ ├── modz2014.json │ ├── Hexacorn.json │ ├── JasonHood.json │ ├── JoaoVitor.json │ ├── SpriteOvO.json │ ├── fr0zenbag.json │ ├── misonothx.json │ ├── sapdragon.json │ ├── hmstk.json │ ├── AdricNet.json │ ├── DosX.json │ ├── GiladReich.json │ ├── JasonJackTan.json │ ├── miT231-spec.json │ ├── xchwarze.json │ ├── FrenchYeti.json │ ├── Xylit0l.json │ ├── Dan0xE.json │ ├── DrFarFar.json │ ├── FilipNavara.json │ ├── elastic.json │ ├── phithon.json │ ├── AdamHenault.json │ ├── Bartosz.json │ ├── DavidZimmer.json │ ├── LeandroFroes.json │ ├── blue-devil.json │ ├── AliHadi.json │ ├── rmusser.json │ ├── DavClark.json │ ├── DuncanOgilvie.json │ ├── IntegralTech.json │ ├── AndersonLeite.json │ └── FernandoMerces.json ├── gui_source ├── icons │ ├── main.ico │ ├── Add.16.16.png │ ├── All.16.16.png │ ├── Code.16.16.png │ ├── Copy.16.16.png │ ├── DIE.16.16.png │ ├── Data.16.16.png │ ├── Debug.16.16.png │ ├── Edit.16.16.png │ ├── Entry.16.16.png │ ├── Exit.16.16.png │ ├── File.16.16.png │ ├── Goto.16.16.png │ ├── Hash.16.16.png │ ├── Image.16.16.png │ ├── Info.16.16.png │ ├── List.16.16.png │ ├── Mime.16.16.png │ ├── NFD.16.16.png │ ├── Next.16.16.png │ ├── Note.16.16.png │ ├── Open.16.16.png │ ├── Patch.16.16.png │ ├── Path.16.16.png │ ├── Reloc.16.16.png │ ├── Save.16.16.png │ ├── Size.16.16.png │ ├── TLS.16.16.png │ ├── Table.16.16.png │ ├── Tool.16.16.png │ ├── Value.16.16.png │ ├── Yara.16.16.png │ ├── Action.16.16.png │ ├── Address.16.16.png │ ├── Binary.16.16.png │ ├── Disasm.16.16.png │ ├── DotNet.16.16.png │ ├── Entropy.16.16.png │ ├── Export.16.16.png │ ├── Extract.16.16.png │ ├── Follow.16.16.png │ ├── Forward.16.16.png │ ├── Header.16.16.png │ ├── Import.16.16.png │ ├── Library.16.16.png │ ├── Offset.16.16.png │ ├── Option.16.16.png │ ├── Options.16.16.png │ ├── Overlay.16.16.png │ ├── Refresh.16.16.png │ ├── Remove.16.16.png │ ├── Resize.16.16.png │ ├── Script.16.16.png │ ├── Search.16.16.png │ ├── Section.16.16.png │ ├── Segment.16.16.png │ ├── Select.16.16.png │ ├── String.16.16.png │ ├── Structs.16.16.png │ ├── Symbol.16.16.png │ ├── Version.16.16.png │ ├── Backward.16.16.png │ ├── Backwards.16.16.png │ ├── Bookmark.16.16.png │ ├── Convertor.16.16.png │ ├── Demangle.16.16.png │ ├── Download.16.16.png │ ├── Exception.16.16.png │ ├── Forwards.16.16.png │ ├── Function.16.16.png │ ├── Inspector.16.16.png │ ├── Manifest.16.16.png │ ├── MemoryMap.16.16.png │ ├── Metadata.16.16.png │ ├── Openfile.16.16.png │ ├── Reference.16.16.png │ ├── Resource.16.16.png │ ├── Shortcut.16.16.png │ ├── Signature.16.16.png │ ├── Virustotal.16.16.png │ ├── Certificate.16.16.png │ ├── BreakpointEnabled.16.16.png │ ├── DisassemblyWindow.16.16.png │ └── BreakpointDisabled.16.16.png ├── images │ ├── about.png │ └── main.png ├── dialogoptions.ui ├── res.qrc ├── dialogselectstyle.ui ├── dialogselectstyle.h ├── dialogselectstyle.cpp ├── dialogabout.h ├── dialogabout.ui ├── gui_source.pro ├── windows.manifest.xml ├── dialogoptions.h ├── guimainwindow.h ├── dialogoptions.cpp ├── CMakeLists.txt ├── rsrc.qrc ├── main_gui.cpp ├── desktopintegrationhelper.h ├── dialogabout.cpp └── guimainwindow.ui ├── LINUX ├── screenshots │ ├── main_window_basic_view.png │ └── disassembly_window_advanced_view.png ├── hicolor │ ├── 16x16 │ │ └── apps │ │ │ └── io.github.horsicq.detect-it-easy.png │ ├── 20x20 │ │ └── apps │ │ │ └── io.github.horsicq.detect-it-easy.png │ ├── 24x24 │ │ └── apps │ │ │ └── io.github.horsicq.detect-it-easy.png │ ├── 32x32 │ │ └── apps │ │ │ └── io.github.horsicq.detect-it-easy.png │ ├── 48x48 │ │ └── apps │ │ │ └── io.github.horsicq.detect-it-easy.png │ └── 256x256 │ │ └── apps │ │ └── io.github.horsicq.detect-it-easy.png ├── io.github.horsicq.detect-it-easy.desktop └── io.github.horsicq.detect-it-easy.metainfo.xml ├── die_source.pro ├── .github └── workflows │ ├── docker-image.yml │ ├── semgrep.yml │ ├── build_arch.yml │ ├── builder_tmp.yml │ └── builder.yml ├── Dockerfile ├── README.md ├── LICENSE ├── console_source ├── console_source.pro ├── consoleoutput.h ├── consoleoutput.cpp ├── CMakeLists.txt └── windows.manifest.xml ├── lite_source ├── lite_source.pro ├── CMakeLists.txt ├── main_lite.cpp ├── litemainwindow.h ├── windows.manifest.xml ├── litemainwindow.ui └── litemainwindow.cpp ├── install.sh ├── configure.ac ├── global.h ├── CMakeLists.txt ├── create_appimage.sh ├── PKGBUILD └── .gitmodules /release_version.txt: -------------------------------------------------------------------------------- 1 | 3.11 2 | -------------------------------------------------------------------------------- /icons/lite.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/icons/lite.ico -------------------------------------------------------------------------------- /icons/main.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/icons/main.ico -------------------------------------------------------------------------------- /icons/lite.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/icons/lite.icns -------------------------------------------------------------------------------- /icons/main.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/icons/main.icns -------------------------------------------------------------------------------- /images/thanks/ASL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/ASL.png -------------------------------------------------------------------------------- /images/thanks/Dazz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Dazz.png -------------------------------------------------------------------------------- /images/thanks/DosX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/DosX.png -------------------------------------------------------------------------------- /images/thanks/GPcH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/GPcH.png -------------------------------------------------------------------------------- /images/thanks/Gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Gray.png -------------------------------------------------------------------------------- /images/thanks/KDSS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/KDSS.png -------------------------------------------------------------------------------- /images/thanks/SReg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/SReg.png -------------------------------------------------------------------------------- /images/thanks/Tilt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Tilt.png -------------------------------------------------------------------------------- /images/thanks/Zorn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Zorn.png -------------------------------------------------------------------------------- /images/thanks/ajax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/ajax.png -------------------------------------------------------------------------------- /images/thanks/crc1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/crc1.png -------------------------------------------------------------------------------- /images/thanks/void.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/void.png -------------------------------------------------------------------------------- /images/thanks/Adler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Adler.png -------------------------------------------------------------------------------- /images/thanks/BAHEK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/BAHEK.png -------------------------------------------------------------------------------- /images/thanks/BJNFNE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/BJNFNE.png -------------------------------------------------------------------------------- /images/thanks/BoRoV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/BoRoV.png -------------------------------------------------------------------------------- /images/thanks/DICIBF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/DICIBF.png -------------------------------------------------------------------------------- /images/thanks/Dan0xE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Dan0xE.png -------------------------------------------------------------------------------- /images/thanks/DrZlo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/DrZlo.png -------------------------------------------------------------------------------- /images/thanks/JMPer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/JMPer.png -------------------------------------------------------------------------------- /images/thanks/JaviVR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/JaviVR.png -------------------------------------------------------------------------------- /images/thanks/Kaens.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Kaens.png -------------------------------------------------------------------------------- /images/thanks/Levis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Levis.png -------------------------------------------------------------------------------- /images/thanks/LinXP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/LinXP.png -------------------------------------------------------------------------------- /images/thanks/NickSM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/NickSM.png -------------------------------------------------------------------------------- /images/thanks/Nomade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Nomade.png -------------------------------------------------------------------------------- /images/thanks/Tembo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Tembo.png -------------------------------------------------------------------------------- /images/thanks/clayne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/clayne.png -------------------------------------------------------------------------------- /images/thanks/ekse0x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/ekse0x.png -------------------------------------------------------------------------------- /images/thanks/exet0l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/exet0l.png -------------------------------------------------------------------------------- /images/thanks/hmstk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/hmstk.png -------------------------------------------------------------------------------- /images/thanks/hypn0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/hypn0.png -------------------------------------------------------------------------------- /images/thanks/ktgkbh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/ktgkbh.png -------------------------------------------------------------------------------- /images/thanks/user_.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/user_.png -------------------------------------------------------------------------------- /gui_source/icons/main.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/main.ico -------------------------------------------------------------------------------- /gui_source/images/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/images/about.png -------------------------------------------------------------------------------- /gui_source/images/main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/images/main.png -------------------------------------------------------------------------------- /images/thanks/4kusNick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/4kusNick.png -------------------------------------------------------------------------------- /images/thanks/AdricNet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/AdricNet.png -------------------------------------------------------------------------------- /images/thanks/Airenikus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Airenikus.png -------------------------------------------------------------------------------- /images/thanks/AliHadi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/AliHadi.png -------------------------------------------------------------------------------- /images/thanks/Bartosz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Bartosz.png -------------------------------------------------------------------------------- /images/thanks/DavClark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/DavClark.png -------------------------------------------------------------------------------- /images/thanks/DenCoder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/DenCoder.png -------------------------------------------------------------------------------- /images/thanks/Diabolic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Diabolic.png -------------------------------------------------------------------------------- /images/thanks/DrFarFar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/DrFarFar.png -------------------------------------------------------------------------------- /images/thanks/Elite_r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Elite_r.png -------------------------------------------------------------------------------- /images/thanks/HandMill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/HandMill.png -------------------------------------------------------------------------------- /images/thanks/Hexacorn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Hexacorn.png -------------------------------------------------------------------------------- /images/thanks/JasonHood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/JasonHood.png -------------------------------------------------------------------------------- /images/thanks/JeffreyWu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/JeffreyWu.png -------------------------------------------------------------------------------- /images/thanks/JoaoVitor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/JoaoVitor.png -------------------------------------------------------------------------------- /images/thanks/JuJu2015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/JuJu2015.png -------------------------------------------------------------------------------- /images/thanks/Jupiter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Jupiter.png -------------------------------------------------------------------------------- /images/thanks/Metabolic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Metabolic.png -------------------------------------------------------------------------------- /images/thanks/MickGrove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/MickGrove.png -------------------------------------------------------------------------------- /images/thanks/NikolayD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/NikolayD.png -------------------------------------------------------------------------------- /images/thanks/RedBlkJck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/RedBlkJck.png -------------------------------------------------------------------------------- /images/thanks/Slinger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Slinger.png -------------------------------------------------------------------------------- /images/thanks/SpriteOvO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/SpriteOvO.png -------------------------------------------------------------------------------- /images/thanks/Xylit0l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Xylit0l.png -------------------------------------------------------------------------------- /images/thanks/d3dm4u5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/d3dm4u5.png -------------------------------------------------------------------------------- /images/thanks/deniskore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/deniskore.png -------------------------------------------------------------------------------- /images/thanks/elastic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/elastic.png -------------------------------------------------------------------------------- /images/thanks/fr0zenbag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/fr0zenbag.png -------------------------------------------------------------------------------- /images/thanks/hellspawn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/hellspawn.png -------------------------------------------------------------------------------- /images/thanks/misonothx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/misonothx.png -------------------------------------------------------------------------------- /images/thanks/modz2014.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/modz2014.png -------------------------------------------------------------------------------- /images/thanks/mushr00m.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/mushr00m.png -------------------------------------------------------------------------------- /images/thanks/phithon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/phithon.png -------------------------------------------------------------------------------- /images/thanks/rmusser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/rmusser.png -------------------------------------------------------------------------------- /images/thanks/sapdragon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/sapdragon.png -------------------------------------------------------------------------------- /images/thanks/sendersu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/sendersu.png -------------------------------------------------------------------------------- /images/thanks/xchwarze.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/xchwarze.png -------------------------------------------------------------------------------- /images/thanks/ADMINCRACK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/ADMINCRACK.png -------------------------------------------------------------------------------- /images/thanks/AdamHenault.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/AdamHenault.png -------------------------------------------------------------------------------- /images/thanks/ArnaudDovi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/ArnaudDovi.png -------------------------------------------------------------------------------- /images/thanks/DavidZimmer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/DavidZimmer.png -------------------------------------------------------------------------------- /images/thanks/DimitarSerg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/DimitarSerg.png -------------------------------------------------------------------------------- /images/thanks/ELF_7719116.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/ELF_7719116.png -------------------------------------------------------------------------------- /images/thanks/FilipNavara.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/FilipNavara.png -------------------------------------------------------------------------------- /images/thanks/FrenchYeti.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/FrenchYeti.png -------------------------------------------------------------------------------- /images/thanks/GiladReich.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/GiladReich.png -------------------------------------------------------------------------------- /images/thanks/JaeHuyngLee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/JaeHuyngLee.png -------------------------------------------------------------------------------- /images/thanks/JavierNieto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/JavierNieto.png -------------------------------------------------------------------------------- /images/thanks/JiriVinopal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/JiriVinopal.png -------------------------------------------------------------------------------- /images/thanks/Murcielago.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/Murcielago.png -------------------------------------------------------------------------------- /images/thanks/NongHoangTu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/NongHoangTu.png -------------------------------------------------------------------------------- /images/thanks/RinatAminow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/RinatAminow.png -------------------------------------------------------------------------------- /images/thanks/blue-devil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/blue-devil.png -------------------------------------------------------------------------------- /images/thanks/dartraiden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/dartraiden.png -------------------------------------------------------------------------------- /images/thanks/gurololicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/gurololicon.png -------------------------------------------------------------------------------- /images/thanks/miT231-spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/miT231-spec.png -------------------------------------------------------------------------------- /gui_source/icons/Add.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Add.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/All.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/All.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Code.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Code.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Copy.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Copy.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/DIE.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/DIE.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Data.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Data.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Debug.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Debug.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Edit.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Edit.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Entry.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Entry.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Exit.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Exit.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/File.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/File.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Goto.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Goto.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Hash.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Hash.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Image.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Image.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Info.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Info.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/List.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/List.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Mime.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Mime.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/NFD.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/NFD.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Next.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Next.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Note.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Note.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Open.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Open.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Patch.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Patch.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Path.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Path.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Reloc.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Reloc.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Save.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Save.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Size.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Size.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/TLS.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/TLS.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Table.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Table.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Tool.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Tool.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Value.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Value.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Yara.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Yara.16.16.png -------------------------------------------------------------------------------- /images/thanks/AndersonLeite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/AndersonLeite.png -------------------------------------------------------------------------------- /images/thanks/DuncanOgilvie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/DuncanOgilvie.png -------------------------------------------------------------------------------- /images/thanks/EliseuFilipi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/EliseuFilipi.png -------------------------------------------------------------------------------- /images/thanks/FernandoMerces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/FernandoMerces.png -------------------------------------------------------------------------------- /images/thanks/IntegralTech.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/IntegralTech.png -------------------------------------------------------------------------------- /images/thanks/JasonJackTan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/JasonJackTan.png -------------------------------------------------------------------------------- /images/thanks/LeandroFroes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/images/thanks/LeandroFroes.png -------------------------------------------------------------------------------- /gui_source/icons/Action.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Action.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Address.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Address.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Binary.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Binary.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Disasm.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Disasm.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/DotNet.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/DotNet.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Entropy.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Entropy.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Export.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Export.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Extract.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Extract.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Follow.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Follow.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Forward.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Forward.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Header.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Header.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Import.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Import.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Library.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Library.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Offset.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Offset.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Option.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Option.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Options.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Options.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Overlay.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Overlay.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Refresh.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Refresh.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Remove.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Remove.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Resize.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Resize.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Script.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Script.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Search.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Search.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Section.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Section.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Segment.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Segment.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Select.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Select.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/String.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/String.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Structs.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Structs.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Symbol.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Symbol.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Version.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Version.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Backward.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Backward.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Backwards.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Backwards.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Bookmark.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Bookmark.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Convertor.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Convertor.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Demangle.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Demangle.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Download.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Download.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Exception.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Exception.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Forwards.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Forwards.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Function.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Function.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Inspector.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Inspector.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Manifest.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Manifest.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/MemoryMap.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/MemoryMap.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Metadata.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Metadata.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Openfile.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Openfile.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Reference.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Reference.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Resource.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Resource.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Shortcut.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Shortcut.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Signature.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Signature.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Virustotal.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Virustotal.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Certificate.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/Certificate.16.16.png -------------------------------------------------------------------------------- /LINUX/screenshots/main_window_basic_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/LINUX/screenshots/main_window_basic_view.png -------------------------------------------------------------------------------- /gui_source/icons/BreakpointEnabled.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/BreakpointEnabled.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/DisassemblyWindow.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/DisassemblyWindow.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/BreakpointDisabled.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/gui_source/icons/BreakpointDisabled.16.16.png -------------------------------------------------------------------------------- /LINUX/screenshots/disassembly_window_advanced_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/LINUX/screenshots/disassembly_window_advanced_view.png -------------------------------------------------------------------------------- /LINUX/hicolor/16x16/apps/io.github.horsicq.detect-it-easy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/LINUX/hicolor/16x16/apps/io.github.horsicq.detect-it-easy.png -------------------------------------------------------------------------------- /LINUX/hicolor/20x20/apps/io.github.horsicq.detect-it-easy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/LINUX/hicolor/20x20/apps/io.github.horsicq.detect-it-easy.png -------------------------------------------------------------------------------- /LINUX/hicolor/24x24/apps/io.github.horsicq.detect-it-easy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/LINUX/hicolor/24x24/apps/io.github.horsicq.detect-it-easy.png -------------------------------------------------------------------------------- /LINUX/hicolor/32x32/apps/io.github.horsicq.detect-it-easy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/LINUX/hicolor/32x32/apps/io.github.horsicq.detect-it-easy.png -------------------------------------------------------------------------------- /LINUX/hicolor/48x48/apps/io.github.horsicq.detect-it-easy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/LINUX/hicolor/48x48/apps/io.github.horsicq.detect-it-easy.png -------------------------------------------------------------------------------- /LINUX/hicolor/256x256/apps/io.github.horsicq.detect-it-easy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/DIE-engine/HEAD/LINUX/hicolor/256x256/apps/io.github.horsicq.detect-it-easy.png -------------------------------------------------------------------------------- /images/thanks/ASL.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "A.S.L.", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "ASL.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/Dazz.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Dazz", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "Dazz.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/GPcH.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "GPcH", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "GPcH.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/SReg.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "SReg", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "SReg.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/Tilt.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Tilt", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "Tilt.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/Zorn.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Zorn", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "Zorn.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/ajax.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "ajax", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "ajax.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/crc1.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "crc1", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "crc1.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/void.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "void", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "void.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/Adler.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Adler", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "Adler.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/BAHEK.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "BAHEK", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "BAHEK.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/BoRoV.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "BoRoV", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "BoRoV.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/Gray.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "graysuit", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "Gray.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/JMPer.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "JMPer", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "JMPer.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/Levis.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Levis", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "Levis.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/Nomade.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Nomade", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "Nomade.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/Tembo.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Tembo", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "Tembo.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/ekse0x.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "ekse0x", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "ekse0x.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/exet0l.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "exet0l", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "exet0l.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/hypn0.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "hypn0", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "hypn0.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/user_.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "user_", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "user_.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/DICIBF.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "DICI BF", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "DICIBF.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/DrZlo.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "==DJ==[ZLO]", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "DrZlo.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/Elite_r.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Elite_r", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "Elite_r.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/JaviVR.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Javi VR", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "JaviVR.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/Jupiter.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Jupiter", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "Jupiter.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/Kaens.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Kaens", 4 | "website": "", 5 | "github": "Kaens", 6 | "twitter": "", 7 | "avatar": "Kaens.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/LinXP.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "LinXP", 4 | "website": "", 5 | "github": "LinXP", 6 | "twitter": "", 7 | "avatar": "LinXP.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/NickSM.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Nick Sm", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "NickSM.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/Slinger.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Slinger", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "Slinger.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/d3dm4u5.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "d3dm4u5", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "d3dm4u5.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/ktgkbh.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "ktg kbh", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "ktgkbh.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/4kusNick.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "4kusNick", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "4kusNick.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/Airenikus.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Airenikus", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "Airenikus.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/DenCoder.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "DenCoder", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "DenCoder.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/Diabolic.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Diabolic", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "Diabolic.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/HandMill.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "HandMill", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "HandMill.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/JeffreyWu.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Jeffrey Wu", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "JeffreyWu.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/JuJu2015.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "JuJu2015", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "JuJu2015.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/Metabolic.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Metabolic", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "Metabolic.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/MickGrove.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Mick Grove", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "MickGrove.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/NikolayD.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "NikolayD", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "NikolayD.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/RedBlkJck.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "RedBlkJck", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "RedBlkJck.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/deniskore.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "deniskore", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "deniskore.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/hellspawn.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Hellsp@wn", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "hellspawn.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/mushr00m.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "mushr00m", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "mushr00m.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/ADMINCRACK.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "ADMIN-CRACK", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "ADMINCRACK.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/BJNFNE.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Benjamin Funke", 4 | "website": "", 5 | "github": "BJNFNE", 6 | "twitter": "", 7 | "avatar": "BJNFNE.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/DimitarSerg.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "DimitarSerg", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "DimitarSerg.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/ELF_7719116.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "ELF_7719116", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "ELF_7719116.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/Murcielago.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Murcielago", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "Murcielago.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/dartraiden.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "dartraiden", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "dartraiden.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/gurololicon.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "gurololicon", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "gurololicon.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/sendersu.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "sendersu", 4 | "website": "", 5 | "github": "greenozon", 6 | "twitter": "", 7 | "avatar": "sendersu.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/EliseuFilipi.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Eliseu Filipi", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "EliseuFilipi.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/JaeHuyngLee.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "JaeHuyng Lee", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "JaeHuyngLee.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/JavierNieto.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Javier Nieto", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "JavierNieto.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/JiriVinopal.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Jiří Vinopal", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "JiriVinopal.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/KDSS.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "KDSS", 4 | "website": "", 5 | "github": "KDSS-Research", 6 | "twitter": "KdssSupport", 7 | "avatar": "KDSS.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/NongHoangTu.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Nông Hoàng Tú", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "NongHoangTu.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/RinatAminow.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Rinat Aminow", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "RinatAminow.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/clayne.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Christopher Layne", 4 | "website": "", 5 | "github": "clayne", 6 | "twitter": "", 7 | "avatar": "clayne.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/ArnaudDovi.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Arnaud Dovi", 4 | "website": "", 5 | "github": "class101", 6 | "twitter": "", 7 | "avatar": "ArnaudDovi.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/modz2014.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "modz2014", 4 | "website": "", 5 | "github": "modz2014", 6 | "twitter": "modz2014", 7 | "avatar": "modz2014.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/Hexacorn.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Adam", 4 | "website": "https://www.hexacorn.com/", 5 | "github": "", 6 | "twitter": "Hexacorn", 7 | "avatar": "Hexacorn.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/JasonHood.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Jason Hood", 4 | "website": "", 5 | "github": "", 6 | "twitter": "", 7 | "avatar": "JasonHood.png" 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /images/thanks/JoaoVitor.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "João Vitor", 4 | "website": "http://joaovitor.gq", 5 | "github": "keowu", 6 | "twitter": "", 7 | "avatar": "JoaoVitor.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/SpriteOvO.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "SpriteOvO", 4 | "website": "", 5 | "github": "SpriteOvO", 6 | "twitter": "", 7 | "avatar": "SpriteOvO.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/fr0zenbag.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "fr0zenbag", 4 | "website": "", 5 | "github": "fr0zenbag", 6 | "twitter": "", 7 | "avatar": "fr0zenbag.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/misonothx.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "misonothx", 4 | "website": "", 5 | "github": "miso-xyz", 6 | "twitter": "", 7 | "avatar": "misonothx.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/sapdragon.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "sapdragon", 4 | "website": "", 5 | "github": "sapdragon", 6 | "twitter": "", 7 | "avatar": "sapdragon.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/hmstk.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Derick Estrada", 4 | "website": "hamsteri.co", 5 | "github": "hmstk", 6 | "twitter": "", 7 | "avatar": "hmstk.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/AdricNet.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Adric Net", 4 | "website": "http://dfirnotes.net", 5 | "github": "adricnet", 6 | "twitter": "dfirnotes", 7 | "avatar": "AdricNet.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/DosX.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "DosX", 4 | "website": "https://kay-software.ru", 5 | "github": "DosX-dev", 6 | "twitter": "", 7 | "avatar": "DosX.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/GiladReich.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Gilad Reich", 4 | "website": "https://greich.com", 5 | "github": "giladreich", 6 | "twitter": "", 7 | "avatar": "GiladReich.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/JasonJackTan.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Jason Jack Tan", 4 | "website": "", 5 | "github": "Perthys", 6 | "twitter": "", 7 | "avatar": "JasonJackTan.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/miT231-spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "miT231-spec", 4 | "website": "", 5 | "github": "miT231-spec", 6 | "twitter": "", 7 | "avatar": "miT231-spec.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/xchwarze.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "xchwarze", 4 | "website": "Indetectables.net", 5 | "github": "xchwarze", 6 | "twitter": "indetectables", 7 | "avatar": "xchwarze.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/FrenchYeti.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "FrenchYeti", 4 | "website": "", 5 | "github": "FrenchYeti", 6 | "twitter": "frenchyeti", 7 | "avatar": "FrenchYeti.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/Xylit0l.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Xylit0l", 4 | "website": "http://xylibox.com", 5 | "github": "Xyl2k", 6 | "twitter": "Xylit0l", 7 | "avatar": "Xylit0l.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/Dan0xE.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Dan0xE", 4 | "website": "https://dev.to/ubervisor", 5 | "github": "Dan0xE", 6 | "twitter": "dan0xe", 7 | "avatar": "Dan0xE.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/DrFarFar.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Dr.FarFar", 4 | "website": "https://www.dr-farfar.com", 5 | "github": "BlackHatLab-INC", 6 | "twitter": "3XS0", 7 | "avatar": "DrFarFar.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/FilipNavara.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Filip Navara", 4 | "website": "", 5 | "github": "filipnavara", 6 | "twitter": "filipnavara", 7 | "avatar": "FilipNavara.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/elastic.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "elastic", 4 | "website": "https://www.elastic.co", 5 | "github": "elastic", 6 | "twitter": "elastic", 7 | "avatar": "elastic.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/phithon.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "phithon", 4 | "website": "https://www.leavesongs.com", 5 | "github": "phith0n", 6 | "twitter": "", 7 | "avatar": "phithon.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/AdamHenault.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Adam Henault", 4 | "website": "http://adamhlt.com/", 5 | "github": "adamhlt", 6 | "twitter": "", 7 | "avatar": "AdamHenault.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/Bartosz.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Bartosz Wójcik", 4 | "website": "https://www.pelock.com", 5 | "github": "PELock", 6 | "twitter": "PELock", 7 | "avatar": "Bartosz.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/DavidZimmer.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "David Zimmer", 4 | "website": "http://sandsprite.com", 5 | "github": "dzzie", 6 | "twitter": "", 7 | "avatar": "DavidZimmer.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/LeandroFroes.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Leandro Fróes", 4 | "website": "", 5 | "github": "leandrofroes", 6 | "twitter": "leandrofr0es", 7 | "avatar": "LeandroFroes.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/blue-devil.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "blue-devil", 4 | "website": "http://www.sctzine.com", 5 | "github": "blue-devil", 6 | "twitter": "bluedevilSCT", 7 | "avatar": "blue-devil.png" 8 | } 9 | } -------------------------------------------------------------------------------- /images/thanks/AliHadi.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Ali Hadi", 4 | "website": "https://www.ashemery.com", 5 | "github": "ashemery", 6 | "twitter": "binaryz0ne", 7 | "avatar": "AliHadi.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/rmusser.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Robert Musser", 4 | "website": "https://rmusser.net/", 5 | "github": "rmusser01", 6 | "twitter": "r_o_b_e_r_t_1", 7 | "avatar": "rmusser.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/DavClark.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Dav Clark", 4 | "website": "https://www.linkedin.com/in/davclark", 5 | "github": "davclark", 6 | "twitter": "davclark", 7 | "avatar": "DavClark.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/DuncanOgilvie.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Duncan Ogilvie", 4 | "website": "http://mrexodia.re", 5 | "github": "mrexodia", 6 | "twitter": "mrexodia", 7 | "avatar": "DuncanOgilvie.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/IntegralTech.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Integral-Tech", 4 | "website": "https://integral.org.cn/", 5 | "github": "Integral-Tech", 6 | "twitter": "", 7 | "avatar": "IntegralTech.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/AndersonLeite.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Anderson Leite", 4 | "website": "https://reversing.codes", 5 | "github": "buzzer-re", 6 | "twitter": "buzz3r_", 7 | "avatar": "AndersonLeite.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /images/thanks/FernandoMerces.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": { 3 | "name": "Fernando Mercês", 4 | "website": "https://www.mentebinaria.com.br", 5 | "github": "merces", 6 | "twitter": "mer0x36", 7 | "avatar": "FernandoMerces.png" 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /LINUX/io.github.horsicq.detect-it-easy.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | Name=Detect It Easy 4 | Comment=Advanced file analyzer 5 | Exec=die %f 6 | Icon=io.github.horsicq.detect-it-easy 7 | Categories=Development; 8 | MimeType=application/octet-stream; 9 | Keywords=die; 10 | StartupWMClass=die 11 | -------------------------------------------------------------------------------- /die_source.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = subdirs 2 | SUBDIRS += build_libs 3 | SUBDIRS += console_source 4 | SUBDIRS += gui_source 5 | SUBDIRS += lite_source 6 | 7 | isEmpty(PREFIX) { 8 | PREFIX = /usr 9 | } 10 | 11 | target.path = $PWD 12 | target.commands = bash -x "$$PWD/install.sh $$PREFIX" 13 | INSTALLS += target 14 | -------------------------------------------------------------------------------- /.github/workflows/docker-image.yml: -------------------------------------------------------------------------------- 1 | name: Docker Image CI 2 | 3 | on: 4 | push: 5 | branches: [ master ] 6 | pull_request: 7 | branches: [ master ] 8 | 9 | jobs: 10 | 11 | build: 12 | 13 | runs-on: ubuntu-latest 14 | 15 | steps: 16 | - uses: actions/checkout@v2 17 | - name: Build the Docker image 18 | run: docker build . --file Dockerfile --tag my-image-name:$(date +%s) --no-cache 19 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | ARG image=ubuntu:bionic 2 | 3 | FROM ${image} as source-internet 4 | 5 | FROM source-internet as builder 6 | 7 | RUN apt-get update --quiet 8 | RUN apt-get install --quiet --assume-yes \ 9 | git \ 10 | build-essential \ 11 | qt5-default \ 12 | qtbase5-dev \ 13 | qtscript5-dev \ 14 | qttools5-dev-tools 15 | 16 | RUN git clone --recursive https://github.com/horsicq/DIE-engine.git 17 | 18 | RUN cd DIE-engine && bash -x build_dpkg.sh && bash -x install.sh -------------------------------------------------------------------------------- /.github/workflows/semgrep.yml: -------------------------------------------------------------------------------- 1 | on: 2 | workflow_dispatch: {} 3 | pull_request: {} 4 | push: 5 | branches: 6 | - main 7 | - master 8 | paths: 9 | - .github/workflows/semgrep.yml 10 | schedule: 11 | # random HH:MM to avoid a load spike on GitHub Actions at 00:00 12 | - cron: 30 0 * * * 13 | name: Semgrep 14 | jobs: 15 | semgrep: 16 | name: semgrep/ci 17 | runs-on: ubuntu-20.04 18 | env: 19 | SEMGREP_APP_TOKEN: ${{ secrets.SEMGREP_APP_TOKEN }} 20 | container: 21 | image: returntocorp/semgrep 22 | steps: 23 | - uses: actions/checkout@v3 24 | - run: semgrep ci 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=NF3FBD3KHMXDN) 2 | [![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/horsicq/DIE-engine.svg)](http://ntinfo.biz) 3 | [![GitHub All Releases](https://img.shields.io/github/downloads/horsicq/DIE-engine/total.svg)](http://ntinfo.biz) 4 | [![gitlocalized ](https://gitlocalize.com/repo/4736/whole_project/badge.svg)](https://gitlocalize.com/repo/4736/whole_project?utm_source=badge) 5 | 6 | # DIE-engine 7 | GUI & console sources for Detect It Easy(DiE): https://github.com/horsicq/Detect-It-Easy/ 8 | 9 | ## Special Thanks 10 | 11 | - [PELock Software Protection & Reverse Engineering](https://www.pelock.com) 12 | 13 | ![alt text](https://github.com/horsicq/Detect-It-Easy/blob/master/docs/logo2.png "logo") 14 | 15 | 16 | # Thanks to all the people who already contributed! 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2012-2024 hors 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /gui_source/dialogoptions.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | DialogOptions 4 | 5 | 6 | Qt::WindowModal 7 | 8 | 9 | 10 | 0 11 | 0 12 | 509 13 | 722 14 | 15 | 16 | 17 | Options 18 | 19 | 20 | true 21 | 22 | 23 | 24 | 25 | 26 | 27 | 0 28 | 0 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | XOptionsWidget 38 | QWidget 39 |
xoptionswidget.h
40 | 1 41 |
42 |
43 | 44 | 45 |
46 | -------------------------------------------------------------------------------- /console_source/console_source.pro: -------------------------------------------------------------------------------- 1 | QT += core 2 | QT -= gui 3 | 4 | XCONFIG += use_dex 5 | XCONFIG += use_archive 6 | XCONFIG += use_pdf 7 | 8 | CONFIG += c++11 9 | 10 | TARGET = diec 11 | CONFIG += console 12 | CONFIG -= app_bundle 13 | 14 | DEFINES += NOMINMAX 15 | include(../build.pri) 16 | 17 | XCONFIG += use_capstone_x86 18 | 19 | SOURCES += \ 20 | consoleoutput.cpp \ 21 | main_console.cpp 22 | 23 | HEADERS += \ 24 | consoleoutput.h 25 | 26 | !contains(XCONFIG, die_script) { 27 | XCONFIG += die_script 28 | include(../die_script/die_script.pri) 29 | } 30 | 31 | !contains(XCONFIG, entropyprocess) { 32 | XCONFIG += entropyprocess 33 | include(../XEntropyWidget/entropyprocess.pri) 34 | } 35 | 36 | !contains(XCONFIG, xfileinfo) { 37 | XCONFIG += xfileinfo 38 | include(../XFileInfo/xfileinfo.pri) 39 | } 40 | 41 | !contains(XCONFIG, xoptions) { 42 | XCONFIG += xoptions 43 | include(../XOptions/xoptions.pri) 44 | } 45 | 46 | win32 { 47 | CONFIG -= embed_manifest_exe 48 | QMAKE_MANIFEST = $$PWD/windows.manifest.xml 49 | VERSION = 3.11 50 | QMAKE_TARGET_COMPANY = NTInfo 51 | QMAKE_TARGET_PRODUCT = Detect It Easy 52 | QMAKE_TARGET_DESCRIPTION = Detect It Easy (DiE) 53 | QMAKE_TARGET_COPYRIGHT = horsicq@gmail.com 54 | } 55 | 56 | DISTFILES += \ 57 | CMakeLists.txt 58 | -------------------------------------------------------------------------------- /lite_source/lite_source.pro: -------------------------------------------------------------------------------- 1 | QT += core gui 2 | 3 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 4 | 5 | CONFIG += c++11 6 | TARGET = diel 7 | 8 | XCONFIG += use_dex 9 | XCONFIG += use_pdf 10 | XCONFIG += use_archive 11 | XCONFIG += use_die 12 | 13 | macx { 14 | TARGET = DiEL 15 | } 16 | 17 | DEFINES += NOMINMAX 18 | include(../build.pri) 19 | 20 | XCONFIG += use_capstone_x86 21 | 22 | SOURCES += \ 23 | litemainwindow.cpp \ 24 | main_lite.cpp 25 | 26 | HEADERS += \ 27 | litemainwindow.h 28 | 29 | FORMS += \ 30 | litemainwindow.ui 31 | 32 | !contains(XCONFIG, die_script) { 33 | XCONFIG += die_script 34 | include(../die_script/die_script.pri) 35 | } 36 | 37 | !contains(XCONFIG, xoptions) { 38 | XCONFIG += xoptions 39 | include(../XOptions/xoptions.pri) 40 | } 41 | 42 | !contains(XCONFIG, xcomboboxex) { 43 | XCONFIG += xcomboboxex 44 | include(../Controls/xcomboboxex.pri) 45 | } 46 | 47 | win32 { 48 | RC_ICONS = ../icons/lite.ico 49 | CONFIG -= embed_manifest_exe 50 | QMAKE_MANIFEST = $$PWD/windows.manifest.xml 51 | VERSION = 3.11 52 | QMAKE_TARGET_COMPANY = NTInfo 53 | QMAKE_TARGET_PRODUCT = Detect It Easy 54 | QMAKE_TARGET_DESCRIPTION = Detect It Easy (DiE) 55 | QMAKE_TARGET_COPYRIGHT = horsicq@gmail.com 56 | } 57 | 58 | macx { 59 | ICON = ../icons/lite.icns 60 | } 61 | 62 | DISTFILES += \ 63 | CMakeLists.txt 64 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | export X_SOURCE_PATH=$PWD 3 | 4 | if [ -z "$1" ]; then 5 | X_PREFIX="/usr" 6 | else 7 | X_PREFIX="$1" 8 | fi 9 | 10 | mkdir -p $X_PREFIX/bin 11 | mkdir -p $X_PREFIX/share/applications 12 | mkdir -p $X_PREFIX/share/icons 13 | mkdir -p $X_PREFIX/share/metainfo 14 | mkdir -p $X_PREFIX/lib/die 15 | mkdir -p $X_PREFIX/lib/die/signatures 16 | 17 | cp -f $X_SOURCE_PATH/build/release/die $X_PREFIX/bin/ 18 | cp -f $X_SOURCE_PATH/build/release/diec $X_PREFIX/bin/ 19 | cp -f $X_SOURCE_PATH/build/release/diel $X_PREFIX/bin/ 20 | cp -f $X_SOURCE_PATH/LINUX/io.github.horsicq.detect-it-easy.desktop $X_PREFIX/share/applications/ 21 | cp -Rf $X_SOURCE_PATH/LINUX/hicolor/ $X_PREFIX/share/icons/ 22 | cp -f $X_SOURCE_PATH/LINUX/io.github.horsicq.detect-it-easy.metainfo.xml $X_PREFIX/share/metainfo/ 23 | cp -Rf $X_SOURCE_PATH/XStyles/qss/ $X_PREFIX/lib/die/ 24 | cp -f $X_SOURCE_PATH/signatures/crypto.db $X_PREFIX/lib/die/signatures/ 25 | cp -Rf $X_SOURCE_PATH/XInfoDB/info/ $X_PREFIX/lib/die/ 26 | cp -Rf $X_SOURCE_PATH/Detect-It-Easy/db/ $X_PREFIX/lib/die/ 27 | cp -Rf $X_SOURCE_PATH/Detect-It-Easy/db_custom/ $X_PREFIX/lib/die/ 28 | cp -Rf $X_SOURCE_PATH/images/ $X_PREFIX/lib/die/ 29 | -------------------------------------------------------------------------------- /gui_source/res.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | images/about.png 4 | images/main.png 5 | icons/Refresh.16.16.png 6 | icons/DisassemblyWindow.16.16.png 7 | icons/Binary.16.16.png 8 | icons/BreakpointDisabled.16.16.png 9 | icons/BreakpointEnabled.16.16.png 10 | icons/Download.16.16.png 11 | icons/Image.16.16.png 12 | icons/Save.16.16.png 13 | icons/Extract.16.16.png 14 | icons/Info.16.16.png 15 | icons/MemoryMap.16.16.png 16 | icons/Search.16.16.png 17 | icons/Signature.16.16.png 18 | icons/String.16.16.png 19 | icons/Value.16.16.png 20 | icons/Entry.16.16.png 21 | icons/Copy.16.16.png 22 | icons/Entropy.16.16.png 23 | icons/Hash.16.16.png 24 | icons/Mime.16.16.png 25 | icons/Virustotal.16.16.png 26 | icons/Yara.16.16.png 27 | icons/Edit.16.16.png 28 | icons/Backwards.16.16.png 29 | icons/Forwards.16.16.png 30 | icons/Add.16.16.png 31 | icons/Options.16.16.png 32 | icons/List.16.16.png 33 | icons/Openfile.16.16.png 34 | 35 | 36 | -------------------------------------------------------------------------------- /configure.ac: -------------------------------------------------------------------------------- 1 | AC_INIT([Detect It Easy], 3.11) 2 | AC_PROG_CC 3 | AC_LANG(C++) 4 | PKG_CHECK_MODULES(Qt5Core, [Qt5Core >= 5.2.0], [], [AC_MSG_ERROR([Qt5Core >= 5.2.0] is required.)]) 5 | PKG_CHECK_MODULES(Qt5Gui, [Qt5Gui >= 5.2.0], [], [AC_MSG_ERROR([Qt5Gui >= 5.2.0] is required.)]) 6 | PKG_CHECK_MODULES(Qt5Widgets, [Qt5Widgets >= 5.2.0], [], [AC_MSG_ERROR([Qt5Widgets >= 5.2.0] is required.)]) 7 | PKG_CHECK_MODULES(Qt5Sql, [Qt5Sql >= 5.2.0], [], [AC_MSG_ERROR([Qt5Sql >= 5.2.0] is required.)]) 8 | PKG_CHECK_MODULES(Qt5Script, [Qt5Script >= 5.2.0], [], [AC_MSG_ERROR([Qt5Script >= 5.2.0] is required.)]) 9 | PKG_CHECK_MODULES(Qt5ScriptTools, [Qt5ScriptTools >= 5.2.0], [], [AC_MSG_ERROR([Qt5ScriptTools >= 5.2.0] is required.)]) 10 | PKG_CHECK_MODULES(Qt5Network, [Qt5Network >= 5.2.0], [], [AC_MSG_ERROR([Qt5Network >= 5.2.0] is required.)]) 11 | 12 | PKG_CHECK_EXISTS([Qt5Core >= 5.2.0],[PKG_CHECK_VAR(QT_QMAKE,[Qt5Core >= 5.2.0],[host_bins])]) 13 | 14 | AS_IF([test -f "$QT_QMAKE/qmake"],[QT_QMAKE="$QT_QMAKE/qmake"],[AS_IF([test -f "$QT_QMAKE/qmake-qt5"],[QT_QMAKE="$QT_QMAKE/qmake-qt5"],[QT_QMAKE=""])]) 15 | 16 | X_QMAKE_SPEC=$($QT_QMAKE -query QMAKE_SPEC) 17 | X_QT_VERSION=$($QT_QMAKE -query QT_VERSION) 18 | X_QT_PREFIX=${prefix} 19 | AC_MSG_NOTICE([Qt version: $X_QT_VERSION]) 20 | AC_MSG_NOTICE([Running qmake to generate the makefile...]) 21 | $QT_QMAKE "die_source.pro" -spec $X_QMAKE_SPEC 22 | 23 | AC_MSG_NOTICE([The configure finished. Please type "make" to compile the project.]) 24 | AS_ECHO() 25 | -------------------------------------------------------------------------------- /.github/workflows/build_arch.yml: -------------------------------------------------------------------------------- 1 | name: Build Arch 2 | 3 | on: 4 | workflow_dispatch: 5 | release: 6 | types: [created] 7 | schedule: 8 | - cron: '0 0 * * MON' 9 | 10 | # the jobs are based on these notes: 11 | # https://github.com/horsicq/Detect-It-Easy/blob/master/docs/BUILD.md 12 | jobs: 13 | build-arch: 14 | runs-on: ubuntu-latest 15 | container: archlinux:base-devel 16 | steps: 17 | - uses: actions/checkout@v4 18 | 19 | - name: Install dependencies 20 | run: | 21 | pacman -Syu --noconfirm 22 | pacman -S --noconfirm qt5-base qt5-script qt5-svg qt5-tools base-devel git 23 | pacman -S --noconfirm imagemagick 24 | 25 | - name: Create user 26 | run: | 27 | useradd builduser -m 28 | passwd -d builduser 29 | echo 'builduser ALL=(ALL) ALL' | tee -a /etc/sudoers 30 | 31 | - name: Clone DIE-engine 32 | run: | 33 | cd $HOME 34 | git clone --recursive https://github.com/horsicq/DIE-engine 35 | 36 | - name: Build 37 | run: | 38 | sudo chown -R builduser /__w/DIE-engine/DIE-engine 39 | sudo -u builduser bash -c 'bash -x build_archpkg.sh' 40 | rm -Rf /__w/DIE-engine/DIE-engine/release/*debug* 41 | 42 | - name: Upload Release as Download 43 | uses: softprops/action-gh-release@v2 44 | env: 45 | RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} 46 | with: 47 | tag_name: Beta 48 | draft: false 49 | prerelease: true 50 | files: | 51 | /__w/DIE-engine/DIE-engine/release/*.pkg.tar.zst 52 | -------------------------------------------------------------------------------- /console_source/consoleoutput.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2019-2025 hors 2 | * 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy 4 | * of this software and associated documentation files (the "Software"), to deal 5 | * in the Software without restriction, including without limitation the rights 6 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | * copies of the Software, and to permit persons to whom the Software is 8 | * furnished to do so, subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all 11 | * copies or substantial portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | * SOFTWARE. 20 | */ 21 | #ifndef CONSOLEOUTPUT_H 22 | #define CONSOLEOUTPUT_H 23 | 24 | #include 25 | 26 | class ConsoleOutput : public QObject { 27 | Q_OBJECT 28 | public: 29 | ConsoleOutput(QObject *pParent = nullptr); 30 | 31 | public slots: 32 | void errorMessage(const QString &sErrorMessage); 33 | void warningMessage(const QString &sWarningMessage); 34 | void infoMessage(const QString &sInfoMessage); 35 | }; 36 | 37 | #endif // CONSOLEOUTPUT_H 38 | -------------------------------------------------------------------------------- /global.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2020-2025 hors 2 | * 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy 4 | * of this software and associated documentation files (the "Software"), to deal 5 | * in the Software without restriction, including without limitation the rights 6 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | * copies of the Software, and to permit persons to whom the Software is 8 | * furnished to do so, subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all 11 | * copies or substantial portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | * SOFTWARE. 20 | */ 21 | #ifndef _GLOBAL_H 22 | #define _GLOBAL_H 23 | 24 | #include 25 | 26 | #define X_APPLICATIONDISPLAYNAME "Detect It Easy" 27 | #define X_APPLICATIONDISPLAYNAMELITE "Detect It Easy Lite" 28 | #define X_APPLICATIONNAME "die" 29 | #define X_APPLICATIONNAMELITE "diel" 30 | #define X_APPLICATIONVERSION "3.11" 31 | #define X_ORGANIZATIONNAME "NTInfo" 32 | #define X_ORGANIZATIONDOMAIN "ntinfo.biz" 33 | #define X_OPTIONSFILE "die.ini" 34 | #define X_OPTIONSFILELITE "diel.ini" 35 | #define X_SHORTCUTSFILE "shortcuts.ini" 36 | #define X_UPDATEPAGE "https://github.com/horsicq/DIE-engine/releases" 37 | 38 | #endif // _GLOBAL_H 39 | -------------------------------------------------------------------------------- /gui_source/dialogselectstyle.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | DialogSelectStyle 4 | 5 | 6 | 7 | 0 8 | 0 9 | 590 10 | 212 11 | 12 | 13 | 14 | Style 15 | 16 | 17 | 18 | 0 19 | 20 | 21 | 0 22 | 23 | 24 | 0 25 | 26 | 27 | 0 28 | 29 | 30 | 0 31 | 32 | 33 | 34 | 35 | 36 | 0 37 | 0 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 0 50 | 0 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /gui_source/dialogselectstyle.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2020-2025 hors 2 | * 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy 4 | * of this software and associated documentation files (the "Software"), to deal 5 | * in the Software without restriction, including without limitation the rights 6 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | * copies of the Software, and to permit persons to whom the Software is 8 | * furnished to do so, subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all 11 | * copies or substantial portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | * SOFTWARE. 20 | */ 21 | #ifndef DIALOGSELECTSTYLE_H 22 | #define DIALOGSELECTSTYLE_H 23 | 24 | #include 25 | 26 | namespace Ui { 27 | class DialogSelectStyle; 28 | } 29 | 30 | class DialogSelectStyle : public QDialog { 31 | Q_OBJECT 32 | 33 | public: 34 | explicit DialogSelectStyle(QWidget *pParent = nullptr); 35 | ~DialogSelectStyle(); 36 | 37 | qint32 getStyleCode(); 38 | 39 | private slots: 40 | void on_toolButtonStyle1_clicked(); 41 | void on_toolButtonStyle2_clicked(); 42 | 43 | private: 44 | Ui::DialogSelectStyle *ui; 45 | qint32 nStyleCode; 46 | }; 47 | 48 | #endif // DIALOGSELECTSTYLE_H 49 | -------------------------------------------------------------------------------- /console_source/consoleoutput.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2019-2025 hors 2 | * 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy 4 | * of this software and associated documentation files (the "Software"), to deal 5 | * in the Software without restriction, including without limitation the rights 6 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | * copies of the Software, and to permit persons to whom the Software is 8 | * furnished to do so, subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all 11 | * copies or substantial portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | * SOFTWARE. 20 | */ 21 | #include "consoleoutput.h" 22 | 23 | ConsoleOutput::ConsoleOutput(QObject *pParent) : QObject(pParent) 24 | { 25 | } 26 | 27 | void ConsoleOutput::errorMessage(const QString &sErrorMessage) 28 | { 29 | QString _sText = sErrorMessage; 30 | printf("%s\n", _sText.toUtf8().data()); 31 | } 32 | 33 | void ConsoleOutput::warningMessage(const QString &sWarningMessage) 34 | { 35 | QString _sText = sWarningMessage; 36 | printf("%s\n", _sText.toUtf8().data()); 37 | } 38 | 39 | void ConsoleOutput::infoMessage(const QString &sInfoMessage) 40 | { 41 | QString _sText = sInfoMessage; 42 | printf("%s\n", _sText.toUtf8().data()); 43 | } 44 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.10) 2 | 3 | project(DetectItEasy) 4 | 5 | if(WIN32) 6 | set (CMAKE_PREFIX_PATH "C:/Qt/5.15.2/msvc2019/") 7 | endif() 8 | 9 | if(APPLE) 10 | set (CMAKE_PREFIX_PATH $ENV{HOME}/Qt/5.15.2/clang_64/) 11 | set (CMAKE_OSX_ARCHITECTURES x86_64) 12 | add_compile_options(-Wno-deprecated-declarations) 13 | add_compile_options(-Wno-switch) 14 | endif() 15 | 16 | add_subdirectory(XCppfilt XCppfilt) 17 | add_subdirectory(XCapstone XCapstone) 18 | add_subdirectory(XCapstone/x86 x86) 19 | add_subdirectory(XArchive XArchive) 20 | add_subdirectory(XYara XYara) 21 | add_subdirectory(gui_source) 22 | add_subdirectory(console_source) 23 | add_subdirectory(lite_source) 24 | 25 | include(GNUInstallDirs) 26 | 27 | if(WIN32) 28 | install (TARGETS die) 29 | install (TARGETS diec) 30 | install (TARGETS diel) 31 | endif() 32 | 33 | if(CMAKE_SYSTEM_NAME MATCHES "Linux") 34 | install (TARGETS die LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) 35 | install (TARGETS diec LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) 36 | install (TARGETS diel LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) 37 | install (FILES LINUX/io.github.horsicq.detect-it-easy.metainfo.xml DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/metainfo) 38 | install (FILES LINUX/io.github.horsicq.detect-it-easy.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications/) 39 | install (DIRECTORY LINUX/hicolor DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons) 40 | install (DIRECTORY XStyles/qss DESTINATION ${CMAKE_INSTALL_LIBDIR}/die) 41 | install (DIRECTORY XInfoDB/info DESTINATION ${CMAKE_INSTALL_LIBDIR}/die) 42 | install (DIRECTORY Detect-It-Easy/db DESTINATION ${CMAKE_INSTALL_LIBDIR}/die) 43 | install (DIRECTORY XYara/yara_rules DESTINATION ${CMAKE_INSTALL_LIBDIR}/die) 44 | install (DIRECTORY images DESTINATION ${CMAKE_INSTALL_LIBDIR}/die) 45 | endif() 46 | -------------------------------------------------------------------------------- /.github/workflows/builder_tmp.yml: -------------------------------------------------------------------------------- 1 | name: Build DIE-engine tmp 2 | 3 | on: 4 | workflow_dispatch: 5 | release: 6 | types: [created] 7 | schedule: 8 | - cron: '0 0 * * MON' 9 | 10 | # The jobs are based on the official build notes: 11 | # https://github.com/horsicq/Detect-It-Easy/blob/master/docs/BUILD.md 12 | 13 | jobs: 14 | build-ubuntu: 15 | runs-on: ubuntu-latest 16 | container: 17 | image: ${{ matrix.docker_image }} 18 | strategy: 19 | matrix: 20 | docker_image: 21 | # - ubuntu:24.10 22 | - ubuntu:25.04 23 | # - ubuntu:25.10 24 | include: 25 | - docker_image: ubuntu:24.10 26 | tag: ubuntu-24.10 27 | - docker_image: ubuntu:25.04 28 | tag: ubuntu-25.04 29 | - docker_image: ubuntu:25.10 30 | tag: ubuntu-25.10 31 | steps: 32 | - name: Install dependencies 33 | run: | 34 | apt-get update 35 | apt-get upgrade -y 36 | apt-get install -y \ 37 | qtbase5-dev \ 38 | qtscript5-dev \ 39 | qttools5-dev-tools \ 40 | libqt5svg5-dev \ 41 | qtchooser \ 42 | qt5-qmake \ 43 | build-essential \ 44 | git 45 | 46 | - name: Clone DIE-engine 47 | run: | 48 | cd $HOME 49 | pwd 50 | git clone --recursive https://github.com/horsicq/DIE-engine 51 | 52 | - name: Build .deb package 53 | run: | 54 | cd /github/home/DIE-engine 55 | bash -x build_dpkg.sh 56 | 57 | - name: Upload .deb to Release 58 | if: github.event_name != 'pull_request' 59 | uses: softprops/action-gh-release@v2 60 | env: 61 | RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} 62 | with: 63 | tag_name: Beta 64 | draft: false 65 | prerelease: true 66 | files: /github/home/DIE-engine/release/*.deb 67 | -------------------------------------------------------------------------------- /gui_source/dialogselectstyle.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2020-2025 hors 2 | * 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy 4 | * of this software and associated documentation files (the "Software"), to deal 5 | * in the Software without restriction, including without limitation the rights 6 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | * copies of the Software, and to permit persons to whom the Software is 8 | * furnished to do so, subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all 11 | * copies or substantial portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | * SOFTWARE. 20 | */ 21 | #include "dialogselectstyle.h" 22 | #include "ui_dialogselectstyle.h" 23 | 24 | DialogSelectStyle::DialogSelectStyle(QWidget *pParent) : QDialog(pParent), ui(new Ui::DialogSelectStyle) 25 | { 26 | ui->setupUi(this); 27 | 28 | setWindowFlags(Qt::Window); 29 | 30 | nStyleCode = 0; 31 | } 32 | 33 | DialogSelectStyle::~DialogSelectStyle() 34 | { 35 | delete ui; 36 | } 37 | 38 | qint32 DialogSelectStyle::getStyleCode() 39 | { 40 | return nStyleCode; 41 | } 42 | 43 | void DialogSelectStyle::on_toolButtonStyle1_clicked() 44 | { 45 | nStyleCode = 1; 46 | this->close(); 47 | } 48 | 49 | void DialogSelectStyle::on_toolButtonStyle2_clicked() 50 | { 51 | nStyleCode = 2; 52 | this->close(); 53 | } 54 | -------------------------------------------------------------------------------- /gui_source/dialogabout.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2020-2025 hors 2 | * 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy 4 | * of this software and associated documentation files (the "Software"), to deal 5 | * in the Software without restriction, including without limitation the rights 6 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | * copies of the Software, and to permit persons to whom the Software is 8 | * furnished to do so, subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all 11 | * copies or substantial portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | * SOFTWARE. 20 | */ 21 | #ifndef DIALOGABOUT_H 22 | #define DIALOGABOUT_H 23 | 24 | #include "xshortcutsdialog.h" 25 | #include 26 | 27 | #include "../global.h" 28 | #include "capstone/capstone.h" 29 | #include "qwt_global.h" 30 | #include "xoptions.h" 31 | 32 | namespace Ui { 33 | class DialogAbout; 34 | } 35 | 36 | class DialogAbout : public XShortcutsDialog { 37 | Q_OBJECT 38 | 39 | public: 40 | explicit DialogAbout(QWidget *pParent = nullptr); 41 | ~DialogAbout(); 42 | 43 | virtual void adjustView(); 44 | 45 | private slots: 46 | void on_pushButtonOK_clicked(); 47 | 48 | protected: 49 | virtual void registerShortcuts(bool bState); 50 | 51 | private: 52 | Ui::DialogAbout *ui; 53 | }; 54 | 55 | #endif // DIALOGABOUT_H 56 | -------------------------------------------------------------------------------- /gui_source/dialogabout.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | DialogAbout 4 | 5 | 6 | Qt::WindowModal 7 | 8 | 9 | 10 | 0 11 | 0 12 | 584 13 | 312 14 | 15 | 16 | 17 | About 18 | 19 | 20 | true 21 | 22 | 23 | 24 | 25 | 26 | 27 | 0 28 | 0 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | Qt::Horizontal 39 | 40 | 41 | 42 | 40 43 | 20 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | OK 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | XAboutWidget 62 | QWidget 63 |
xaboutwidget.h
64 | 1 65 |
66 |
67 | 68 | 69 |
70 | -------------------------------------------------------------------------------- /create_appimage.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | export X_SOURCE_PATH=$PWD 3 | export X_RELEASE_VERSION=$(cat "release_version.txt") 4 | export VERSION=$X_RELEASE_VERSION 5 | 6 | source build_tools/linux.sh 7 | 8 | create_image_app_dir die 9 | 10 | cp -f $X_SOURCE_PATH/build/release/die $X_SOURCE_PATH/release/appDir/usr/bin/ 11 | #cp -f $X_SOURCE_PATH/build/release/diec $X_SOURCE_PATH/release/appDir/usr/bin/ 12 | #cp -f $X_SOURCE_PATH/build/release/diel $X_SOURCE_PATH/release/appDir/usr/bin/ 13 | cp -f $X_SOURCE_PATH/LINUX/io.github.horsicq.detect-it-easy.desktop $X_SOURCE_PATH/release/appDir/usr/share/applications/ 14 | cp -Rf $X_SOURCE_PATH/LINUX/hicolor/ $X_SOURCE_PATH/release/appDir/usr/share/icons/ 15 | cp -f $X_SOURCE_PATH/LINUX/io.github.horsicq.detect-it-easy.metainfo.xml $X_SOURCE_PATH/release/appDir/usr/share/metainfo/ 16 | cp -Rf $X_SOURCE_PATH/images/ $X_SOURCE_PATH/release/appDir/usr/lib/die/ 17 | cp -Rf $X_SOURCE_PATH/XStyles/qss/ $X_SOURCE_PATH/release/appDir/usr/lib/die/ 18 | cp -Rf $X_SOURCE_PATH/XInfoDB/info/ $X_SOURCE_PATH/release/appDir/usr/lib/die/ 19 | cp -Rf $X_SOURCE_PATH/Detect-It-Easy/db/ $X_SOURCE_PATH/release/appDir/usr/lib/die/ 20 | cp -Rf $X_SOURCE_PATH/Detect-It-Easy/db_custom/ $X_SOURCE_PATH/release/appDir/usr/lib/die/ 21 | cp -Rf $X_SOURCE_PATH/XYara/yara_rules/ $X_SOURCE_PATH/release/appDir/usr/lib/die/ 22 | mkdir -p $X_SOURCE_PATH/release/appDir/usr/lib/die/signatures 23 | cp -f $X_SOURCE_PATH/signatures/crypto.db $X_SOURCE_PATH/release/appDir/usr/lib/die/signatures/ 24 | 25 | cd $X_SOURCE_PATH/release 26 | 27 | linuxdeployqt $X_SOURCE_PATH/release/appDir/usr/share/applications/io.github.horsicq.detect-it-easy.desktop -appimage -always-overwrite 28 | #mv *.AppImage die_${X_RELEASE_VERSION}.AppImage 29 | 30 | cd $X_SOURCE_PATH 31 | 32 | rm -Rf $X_SOURCE_PATH/release/appDir 33 | -------------------------------------------------------------------------------- /gui_source/gui_source.pro: -------------------------------------------------------------------------------- 1 | QT += core gui 2 | 3 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 4 | 5 | CONFIG += c++11 6 | TARGET = die 7 | 8 | XCONFIG += use_dex 9 | XCONFIG += use_pdf 10 | XCONFIG += use_archive 11 | XCONFIG += use_yara 12 | XCONFIG += use_die 13 | XCONFIG += use_xsimd 14 | 15 | macx { 16 | TARGET = DiE 17 | } 18 | 19 | #linux { 20 | # TARGET = dieg 21 | #} 22 | 23 | SOURCES += \ 24 | dialogabout.cpp \ 25 | dialogoptions.cpp \ 26 | dialogselectstyle.cpp \ 27 | guimainwindow.cpp \ 28 | main_gui.cpp 29 | 30 | HEADERS += \ 31 | dialogabout.h \ 32 | dialogoptions.h \ 33 | dialogselectstyle.h \ 34 | guimainwindow.h 35 | 36 | FORMS += \ 37 | dialogabout.ui \ 38 | dialogoptions.ui \ 39 | dialogselectstyle.ui \ 40 | guimainwindow.ui 41 | 42 | DEFINES += NOMINMAX 43 | include(../build.pri) 44 | 45 | !contains(XCONFIG, xmimewidget) { 46 | XCONFIG += xmimewidget 47 | include(../XMIMEWidget/xmimewidget.pri) 48 | } 49 | 50 | !contains(XCONFIG, formatwidgets) { 51 | XCONFIG += formatwidgets 52 | include(../FormatWidgets/formatwidgets.pri) 53 | } 54 | 55 | !contains(XCONFIG, xsingleapplication) { 56 | XCONFIG += xsingleapplication 57 | include(../XSingleApplication/xsingleapplication.pri) 58 | } 59 | 60 | !contains(XCONFIG, xoptionswidget) { 61 | XCONFIG += xoptionswidget 62 | include(../XOptions/xoptionswidget.pri) 63 | } 64 | 65 | !contains(XCONFIG, xaboutwidget) { 66 | XCONFIG += xaboutwidget 67 | include(../XAboutWidget/xaboutwidget.pri) 68 | } 69 | 70 | !contains(XCONFIG, xstyles) { 71 | XCONFIG += xstyles 72 | include(../../_mylibs/XStyles/xstyles.pri) 73 | } 74 | 75 | RESOURCES += \ 76 | rsrc.qrc 77 | 78 | win32 { 79 | RC_ICONS = ../icons/main.ico 80 | CONFIG -= embed_manifest_exe 81 | QMAKE_MANIFEST = $$PWD/windows.manifest.xml 82 | VERSION = 3.11 83 | QMAKE_TARGET_COMPANY = NTInfo 84 | QMAKE_TARGET_PRODUCT = Detect It Easy 85 | QMAKE_TARGET_DESCRIPTION = Detect It Easy (DiE) 86 | QMAKE_TARGET_COPYRIGHT = horsicq@gmail.com 87 | } 88 | 89 | macx { 90 | ICON = ../icons/main.icns 91 | } 92 | 93 | DISTFILES += \ 94 | ../CMakeLists.txt \ 95 | ../README.md \ 96 | ../release_version.txt \ 97 | CMakeLists.txt 98 | -------------------------------------------------------------------------------- /lite_source/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.10) 2 | 3 | project(diel VERSION 3.10 LANGUAGES CXX) 4 | 5 | include_guard(DIRECTORY) 6 | 7 | set(CMAKE_INCLUDE_CURRENT_DIR ON) 8 | 9 | set(CMAKE_AUTOUIC ON) 10 | set(CMAKE_AUTOMOC ON) 11 | set(CMAKE_AUTORCC ON) 12 | 13 | set(CMAKE_CXX_STANDARD 11) 14 | set(CMAKE_CXX_STANDARD_REQUIRED ON) 15 | 16 | file(MAKE_DIRECTORY ../release) 17 | set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ../release) 18 | set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ../release) 19 | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ../release) 20 | 21 | find_package(QT NAMES Qt5 COMPONENTS Widgets REQUIRED) 22 | find_package(Qt5 COMPONENTS Widgets REQUIRED) 23 | find_package(Qt5 COMPONENTS Concurrent REQUIRED) 24 | find_package(Qt5 COMPONENTS Script REQUIRED) 25 | 26 | add_definitions(-DUSE_DEX) 27 | add_definitions(-DUSE_PDF) 28 | add_definitions(-DUSE_ARCHIVE) 29 | 30 | include(${PROJECT_SOURCE_DIR}/../die_script/die_script.cmake) 31 | include(${PROJECT_SOURCE_DIR}/../XOptions/xoptions.cmake) 32 | include(${PROJECT_SOURCE_DIR}/../Controls/xcomboboxex.cmake) 33 | 34 | set(PROJECT_SOURCES 35 | ${DIE_SCRIPT_SOURCES} 36 | ${XOPTIONS_SOURCES} 37 | ${XCOMBOBOXEX_SOURCES} 38 | main_lite.cpp 39 | litemainwindow.cpp 40 | litemainwindow.ui 41 | ) 42 | 43 | if(APPLE) 44 | add_library(${PROJECT_NAME} MODULE ${PROJECT_SOURCES}) 45 | set_target_properties(${PROJECT_NAME} PROPERTIES 46 | MACOSX_BUNDLE_GUI_IDENTIFIER ntinfo.die 47 | MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} 48 | MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} 49 | BUNDLE TRUE) 50 | set(MACOSX_BUNDLE_ICON_FILE ../icons/main.icns) 51 | else() 52 | add_executable(${PROJECT_NAME} WIN32 53 | ${PROJECT_SOURCES} 54 | ) 55 | endif() 56 | 57 | target_link_libraries(${PROJECT_NAME} bzip2) 58 | target_link_libraries(${PROJECT_NAME} lzma) 59 | target_link_libraries(${PROJECT_NAME} zlib) 60 | target_link_libraries(${PROJECT_NAME} capstone_x86) 61 | 62 | target_link_libraries(${PROJECT_NAME} Qt5::Widgets) 63 | target_link_libraries(${PROJECT_NAME} Qt5::Concurrent) 64 | target_link_libraries(${PROJECT_NAME} Qt5::Script) 65 | 66 | if(WIN32) 67 | target_link_libraries(${PROJECT_NAME} Wintrust) 68 | target_link_libraries(${PROJECT_NAME} Crypt32) 69 | endif() 70 | -------------------------------------------------------------------------------- /lite_source/main_lite.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2020-2025 hors 2 | * 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy 4 | * of this software and associated documentation files (the "Software"), to deal 5 | * in the Software without restriction, including without limitation the rights 6 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | * copies of the Software, and to permit persons to whom the Software is 8 | * furnished to do so, subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all 11 | * copies or substantial portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | * SOFTWARE. 20 | */ 21 | #include 22 | 23 | #include "litemainwindow.h" 24 | 25 | int main(int argc, char *argv[]) 26 | { 27 | #if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) 28 | QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); 29 | #endif 30 | #ifdef Q_OS_MAC 31 | #ifndef QT_DEBUG 32 | QString sLibraryPath = QString(argv[0]); 33 | sLibraryPath = sLibraryPath.remove("MacOS/DiEL") + "PlugIns"; 34 | QCoreApplication::setLibraryPaths(QStringList(sLibraryPath)); 35 | #endif 36 | #endif 37 | 38 | QCoreApplication::setOrganizationName(X_ORGANIZATIONNAME); 39 | QCoreApplication::setOrganizationDomain(X_ORGANIZATIONDOMAIN); 40 | QCoreApplication::setApplicationName(X_APPLICATIONNAMELITE); 41 | QCoreApplication::setApplicationVersion(X_APPLICATIONVERSION); 42 | 43 | if ((argc == 2) && ((QString(argv[1]) == "--version") || (QString(argv[1]) == "-v"))) { 44 | QString sInfo = QString("%1 v%2").arg(X_APPLICATIONDISPLAYNAMELITE, X_APPLICATIONVERSION); 45 | printf("%s\n", sInfo.toUtf8().data()); 46 | 47 | return 0; 48 | } 49 | 50 | QApplication app(argc, argv); 51 | LiteMainWindow w; 52 | w.show(); 53 | return app.exec(); 54 | } 55 | -------------------------------------------------------------------------------- /lite_source/litemainwindow.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2020-2025 hors 2 | * 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy 4 | * of this software and associated documentation files (the "Software"), to deal 5 | * in the Software without restriction, including without limitation the rights 6 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | * copies of the Software, and to permit persons to whom the Software is 8 | * furnished to do so, subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all 11 | * copies or substantial portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | * SOFTWARE. 20 | */ 21 | #ifndef LITEMAINWINDOW_H 22 | #define LITEMAINWINDOW_H 23 | 24 | #include 25 | #include 26 | 27 | #include "../global.h" 28 | #include "die_script.h" 29 | #include "xoptions.h" 30 | #include "scanitemmodel.h" 31 | 32 | QT_BEGIN_NAMESPACE 33 | namespace Ui { 34 | class LiteMainWindow; 35 | } 36 | QT_END_NAMESPACE 37 | 38 | class LiteMainWindow : public QMainWindow { 39 | Q_OBJECT 40 | 41 | public: 42 | LiteMainWindow(QWidget *pParent = nullptr); 43 | ~LiteMainWindow(); 44 | 45 | public slots: 46 | void processFile(const QString &sFileName); 47 | 48 | private slots: 49 | void on_pushButtonScan_clicked(); 50 | void on_pushButtonExit_clicked(); 51 | void on_pushButtonOpenFile_clicked(); 52 | void process(); 53 | 54 | protected: 55 | void dragEnterEvent(QDragEnterEvent *event) override; 56 | void dragMoveEvent(QDragMoveEvent *event) override; 57 | void dropEvent(QDropEvent *event) override; 58 | void keyPressEvent(QKeyEvent *pEvent) override; 59 | 60 | private: 61 | Ui::LiteMainWindow *ui; 62 | DiE_Script *g_pDieScript; 63 | XOptions g_xOptions; 64 | bool g_bInit; 65 | }; 66 | #endif // LITEMAINWINDOW_H 67 | -------------------------------------------------------------------------------- /console_source/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.10) 2 | 3 | project(diec VERSION 3.10 LANGUAGES CXX) 4 | 5 | include_guard(DIRECTORY) 6 | 7 | set(CMAKE_INCLUDE_CURRENT_DIR ON) 8 | 9 | set(CMAKE_AUTOUIC ON) 10 | set(CMAKE_AUTOMOC ON) 11 | set(CMAKE_AUTORCC ON) 12 | 13 | set(CMAKE_CXX_STANDARD 11) 14 | set(CMAKE_CXX_STANDARD_REQUIRED ON) 15 | 16 | file(MAKE_DIRECTORY ../release) 17 | set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ../release) 18 | set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ../release) 19 | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ../release) 20 | 21 | find_package(QT NAMES Qt5 COMPONENTS Core REQUIRED) 22 | find_package(Qt5 COMPONENTS Concurrent REQUIRED) 23 | find_package(Qt5 COMPONENTS Script REQUIRED) 24 | 25 | add_definitions(-DUSE_DEX) 26 | add_definitions(-DUSE_PDF) 27 | add_definitions(-DUSE_ARCHIVE) 28 | 29 | include(${PROJECT_SOURCE_DIR}/../die_script/die_script.cmake) 30 | include(${PROJECT_SOURCE_DIR}/../XOptions/xoptions.cmake) 31 | include(${PROJECT_SOURCE_DIR}/../XEntropyWidget/entropyprocess.cmake) 32 | include(${PROJECT_SOURCE_DIR}/../XFileInfo/xfileinfo.cmake) 33 | 34 | set(PROJECT_SOURCES 35 | ${DIE_SCRIPT_SOURCES} 36 | ${XOPTIONS_SOURCES} 37 | ${ENTROPYPROCESS_SOURCES} 38 | ${XFILEINFO_SOURCES} 39 | main_console.cpp 40 | consoleoutput.cpp 41 | ) 42 | 43 | if(APPLE) 44 | add_library(${PROJECT_NAME} MODULE ${PROJECT_SOURCES}) 45 | set_target_properties(${PROJECT_NAME} PROPERTIES 46 | MACOSX_BUNDLE_GUI_IDENTIFIER ntinfo.die 47 | MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} 48 | MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} 49 | BUNDLE TRUE) 50 | set(MACOSX_BUNDLE_ICON_FILE ../icons/main.icns) 51 | else() 52 | add_executable(${PROJECT_NAME} 53 | ${PROJECT_SOURCES} 54 | ) 55 | endif() 56 | 57 | target_link_libraries(${PROJECT_NAME} bzip2) 58 | target_link_libraries(${PROJECT_NAME} lzma) 59 | target_link_libraries(${PROJECT_NAME} zlib) 60 | target_link_libraries(${PROJECT_NAME} capstone_x86) 61 | 62 | target_link_libraries(${PROJECT_NAME} Qt5::Core) 63 | target_link_libraries(${PROJECT_NAME} Qt5::Concurrent) 64 | target_link_libraries(${PROJECT_NAME} Qt5::Script) 65 | 66 | if(WIN32) 67 | target_link_libraries(${PROJECT_NAME} Wintrust) 68 | target_link_libraries(${PROJECT_NAME} Crypt32) 69 | endif() 70 | 71 | 72 | -------------------------------------------------------------------------------- /LINUX/io.github.horsicq.detect-it-easy.metainfo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | io.github.horsicq.detect-it-easy 5 | io.github.horsicq.detect-it-easy.desktop 6 | CC0-1.0 7 | MIT 8 | Detect It Easy 9 | 10 | horsicq 11 | 12 | horsicq@gmail.com 13 | Advanced file analyzer 14 | 15 |

Detect It Easy, or abbreviated "DIE" is a program to analyze files you load into the application.

16 |

It detects, among other things, the compiler and linker used, signatures, and other information about files.

17 |

The program has been designed specifically to reveal file signatures and how they are packed.

18 |

Some of the binary formats supported:

19 |
    20 |
  • MS-DOS: DOS MZ
  • 21 |
  • Windows: Portable Executable (PE)
  • 22 |
  • *Nix: Executable and Linkable Format (ELF)
  • 23 |
  • macOS: Mach Object (Mach-O)
  • 24 |
25 |
26 | 27 | 28 | https://raw.githubusercontent.com/horsicq/DIE-engine/13a4a65fcd8aa1f7c24f239620727008ed5e6cae/LINUX/screenshots/main_window_basic_view.png 29 | Main window (basic view) 30 | 31 | 32 | https://raw.githubusercontent.com/horsicq/DIE-engine/13a4a65fcd8aa1f7c24f239620727008ed5e6cae/LINUX/screenshots/disassembly_window_advanced_view.png 33 | Disassembly window (advanced view) 34 | 35 | 36 | https://horsicq.github.io/#detect-it-easydie 37 | https://github.com/horsicq/DIE-engine 38 | https://github.com/horsicq/Detect-It-Easy/issues 39 | 40 | 41 | 42 | https://raw.githubusercontent.com/horsicq/Detect-It-Easy/refs/heads/master/changelog.txt 43 | 44 | 45 | 46 | die 47 | diec 48 | diel 49 | 50 |
51 | -------------------------------------------------------------------------------- /gui_source/windows.manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | true 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /lite_source/windows.manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | true 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /console_source/windows.manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | true 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /gui_source/dialogoptions.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2020-2025 hors 2 | * 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy 4 | * of this software and associated documentation files (the "Software"), to deal 5 | * in the Software without restriction, including without limitation the rights 6 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | * copies of the Software, and to permit persons to whom the Software is 8 | * furnished to do so, subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all 11 | * copies or substantial portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | * SOFTWARE. 20 | */ 21 | #ifndef DIALOGOPTIONS_H 22 | #define DIALOGOPTIONS_H 23 | 24 | #include 25 | #include 26 | #include 27 | 28 | #include "../global.h" 29 | #include "dieoptionswidget.h" 30 | #include "searchsignaturesoptionswidget.h" 31 | #include "xdisasmviewoptionswidget.h" 32 | #include "xhexviewoptionswidget.h" 33 | #include "xinfodboptionswidget.h" 34 | #include "xonlinetoolsoptionswidget.h" 35 | 36 | namespace Ui { 37 | class DialogOptions; 38 | } 39 | 40 | class DialogOptions : public XShortcutsDialog { 41 | Q_OBJECT 42 | 43 | public: 44 | explicit DialogOptions(QWidget *pParent, XOptions *pOptions, XOptions::GROUPID groupId); 45 | ~DialogOptions(); 46 | void setGlobal(XShortcuts *pShortcuts, XOptions *pXOptions); 47 | 48 | virtual void adjustView(); 49 | 50 | protected: 51 | virtual void registerShortcuts(bool bState); 52 | 53 | private: 54 | Ui::DialogOptions *ui; 55 | DIEOptionsWidget *g_pDIEOptionsWidget; 56 | SearchSignaturesOptionsWidget *g_pSearchSignaturesOptionsWidget; 57 | XHexViewOptionsWidget *g_pXHexViewOptionsWidget; 58 | XDisasmViewOptionsWidget *g_pXDisasmViewOptionsWidget; 59 | XOnlineToolsOptionsWidget *g_pXOnlineToolsOptionsWidget; 60 | XInfoDBOptionsWidget *g_pXInfoDBOptionsWidget; 61 | }; 62 | 63 | #endif // DIALOGOPTIONS_H 64 | -------------------------------------------------------------------------------- /gui_source/guimainwindow.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2020-2025 hors 2 | * 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy 4 | * of this software and associated documentation files (the "Software"), to deal 5 | * in the Software without restriction, including without limitation the rights 6 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | * copies of the Software, and to permit persons to whom the Software is 8 | * furnished to do so, subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all 11 | * copies or substantial portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | * SOFTWARE. 20 | */ 21 | #ifndef GUIMAINWINDOW_H 22 | #define GUIMAINWINDOW_H 23 | 24 | #include 25 | #include 26 | 27 | #include "../global.h" 28 | #include "dialogabout.h" 29 | #include "dialogoptions.h" 30 | #include "dialogshortcuts.h" 31 | #include "dialogselectstyle.h" 32 | #include "xoptions.h" 33 | #ifdef USE_YARA 34 | #include "xyara.h" 35 | #endif 36 | 37 | QT_BEGIN_NAMESPACE 38 | namespace Ui { 39 | class GuiMainWindow; 40 | } 41 | QT_END_NAMESPACE 42 | 43 | class GuiMainWindow : public QMainWindow { 44 | Q_OBJECT 45 | 46 | enum SC { 47 | SC_OPENFILE = 0, 48 | SC_FULLSCREEN, 49 | SC_EXIT, 50 | __SC_SIZE 51 | }; 52 | 53 | public: 54 | GuiMainWindow(QWidget *pParent = nullptr); 55 | ~GuiMainWindow(); 56 | 57 | private slots: 58 | void on_toolButtonExit_clicked(); 59 | void on_toolButtonAbout_clicked(); 60 | void on_toolButtonShortcuts_clicked(); 61 | void on_toolButtonOptions_clicked(); 62 | void on_toolButtonOpenFile_clicked(); 63 | void on_toolButtonDemangle_clicked(); 64 | void on_toolButtonRecentFiles_clicked(); 65 | void on_checkBoxAdvanced_toggled(bool bChecked); 66 | void on_lineEditFileName_returnPressed(); 67 | 68 | void exitSlot(); 69 | void openFileSlot(); 70 | void fullScreenSlot(); 71 | 72 | QString getCurrentFileName(); 73 | void adjustView(); 74 | void updateShortcuts(); 75 | void adjustFile(); 76 | void setAdvanced(bool bState); 77 | void errorMessageSlot(const QString &sText); 78 | 79 | public slots: 80 | void _process(const QString &sName); 81 | 82 | protected: 83 | void dragEnterEvent(QDragEnterEvent *event) override; 84 | void dragMoveEvent(QDragMoveEvent *event) override; 85 | void dropEvent(QDropEvent *event) override; 86 | 87 | private: 88 | Ui::GuiMainWindow *ui; 89 | XOptions g_xOptions; 90 | XShortcuts g_xShortcuts; 91 | QMenu *g_pRecentFilesMenu; 92 | QShortcut *shortCuts[__SC_SIZE]; 93 | bool g_bFullScreen; 94 | }; 95 | #endif // GUIMAINWINDOW_H 96 | -------------------------------------------------------------------------------- /gui_source/dialogoptions.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2020-2025 hors 2 | * 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy 4 | * of this software and associated documentation files (the "Software"), to deal 5 | * in the Software without restriction, including without limitation the rights 6 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | * copies of the Software, and to permit persons to whom the Software is 8 | * furnished to do so, subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all 11 | * copies or substantial portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | * SOFTWARE. 20 | */ 21 | #include "dialogoptions.h" 22 | 23 | #include "ui_dialogoptions.h" 24 | 25 | DialogOptions::DialogOptions(QWidget *pParent, XOptions *pOptions, XOptions::GROUPID groupId) : XShortcutsDialog(pParent, false), ui(new Ui::DialogOptions) 26 | { 27 | ui->setupUi(this); 28 | 29 | g_pDIEOptionsWidget = new DIEOptionsWidget(this); 30 | g_pSearchSignaturesOptionsWidget = new SearchSignaturesOptionsWidget(this); 31 | g_pXHexViewOptionsWidget = new XHexViewOptionsWidget(this); 32 | g_pXDisasmViewOptionsWidget = new XDisasmViewOptionsWidget(this); 33 | g_pXOnlineToolsOptionsWidget = new XOnlineToolsOptionsWidget(this); 34 | g_pXInfoDBOptionsWidget = new XInfoDBOptionsWidget(this); 35 | 36 | ui->widgetOptions->setOptions(pOptions, X_APPLICATIONDISPLAYNAME); 37 | 38 | ui->widgetOptions->addPage(g_pDIEOptionsWidget, tr("Scan")); 39 | g_pDIEOptionsWidget->setOptions(pOptions); 40 | 41 | ui->widgetOptions->addPage(g_pSearchSignaturesOptionsWidget, tr("Signatures")); 42 | g_pSearchSignaturesOptionsWidget->setOptions(pOptions); 43 | 44 | ui->widgetOptions->addPage(g_pXHexViewOptionsWidget, tr("Hex")); 45 | g_pXHexViewOptionsWidget->setOptions(pOptions); 46 | 47 | ui->widgetOptions->addPage(g_pXDisasmViewOptionsWidget, tr("Disasm")); 48 | g_pXDisasmViewOptionsWidget->setOptions(pOptions); 49 | 50 | ui->widgetOptions->addPage(g_pXOnlineToolsOptionsWidget, tr("Online tools")); 51 | g_pXOnlineToolsOptionsWidget->setOptions(pOptions); 52 | 53 | ui->widgetOptions->addPage(g_pXInfoDBOptionsWidget, tr("Info")); 54 | g_pXInfoDBOptionsWidget->setOptions(pOptions); 55 | 56 | ui->widgetOptions->setCurrentPage(groupId); 57 | } 58 | 59 | DialogOptions::~DialogOptions() 60 | { 61 | delete ui; 62 | } 63 | 64 | void DialogOptions::setGlobal(XShortcuts *pShortcuts, XOptions *pXOptions) 65 | { 66 | ui->widgetOptions->setGlobal(pShortcuts, pXOptions); 67 | XShortcutsDialog::setGlobal(pShortcuts, pXOptions); 68 | } 69 | 70 | void DialogOptions::adjustView() 71 | { 72 | ui->widgetOptions->adjustView(); 73 | } 74 | 75 | void DialogOptions::registerShortcuts(bool bState) 76 | { 77 | Q_UNUSED(bState) 78 | } 79 | -------------------------------------------------------------------------------- /gui_source/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.10) 2 | 3 | project(die VERSION 3.10 LANGUAGES CXX) 4 | 5 | include_guard(DIRECTORY) 6 | 7 | set(CMAKE_INCLUDE_CURRENT_DIR ON) 8 | 9 | set(CMAKE_AUTOUIC ON) 10 | set(CMAKE_AUTOMOC ON) 11 | set(CMAKE_AUTORCC ON) 12 | 13 | set(CMAKE_CXX_STANDARD 11) 14 | set(CMAKE_CXX_STANDARD_REQUIRED ON) 15 | 16 | file(MAKE_DIRECTORY ../release) 17 | set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ../release) 18 | set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ../release) 19 | set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ../release) 20 | 21 | find_package(QT NAMES Qt5 COMPONENTS Widgets REQUIRED) 22 | find_package(Qt5 COMPONENTS Widgets REQUIRED) 23 | find_package(Qt5 COMPONENTS Concurrent REQUIRED) 24 | find_package(Qt5 COMPONENTS OpenGL REQUIRED) 25 | find_package(Qt5 COMPONENTS PrintSupport REQUIRED) 26 | find_package(Qt5 COMPONENTS Svg REQUIRED) 27 | find_package(Qt5 COMPONENTS Sql REQUIRED) 28 | find_package(Qt5 COMPONENTS Network REQUIRED) 29 | find_package(Qt5 COMPONENTS Script REQUIRED) 30 | find_package(Qt5 COMPONENTS ScriptTools REQUIRED) 31 | 32 | option(WITH_YARA "Use Yara" ON) 33 | 34 | add_definitions(-DUSE_DEX) 35 | add_definitions(-DUSE_PDF) 36 | add_definitions(-DUSE_ARCHIVE) 37 | add_definitions(-DUSE_DIE) 38 | 39 | if(WITH_YARA) 40 | add_definitions(-DUSE_YARA) 41 | endif() 42 | 43 | include(${PROJECT_SOURCE_DIR}/../XMIMEWidget/xmimewidget.cmake) 44 | include(${PROJECT_SOURCE_DIR}/../FormatWidgets/formatwidgets.cmake) 45 | include(${PROJECT_SOURCE_DIR}/../XSingleApplication/xsingleapplication.cmake) 46 | include(${PROJECT_SOURCE_DIR}/../XAboutWidget/xaboutwidget.cmake) 47 | 48 | set(PROJECT_SOURCES 49 | ${XMIMEWIDGET_SOURCES} 50 | ${FORMATWIDGETS_SOURCES} 51 | ${XSINGLEAPPLICATION_SOURCES} 52 | ${XABOUTWIDGET_SOURCES} 53 | dialogabout.cpp 54 | dialogabout.ui 55 | dialogoptions.cpp 56 | dialogoptions.ui 57 | dialogselectstyle.cpp 58 | dialogselectstyle.ui 59 | guimainwindow.cpp 60 | guimainwindow.ui 61 | main_gui.cpp 62 | rsrc.qrc 63 | ) 64 | 65 | if(APPLE) 66 | add_library(${PROJECT_NAME} MODULE ${PROJECT_SOURCES}) 67 | set_target_properties(${PROJECT_NAME} PROPERTIES 68 | MACOSX_BUNDLE_GUI_IDENTIFIER ntinfo.die 69 | MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} 70 | MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} 71 | BUNDLE TRUE) 72 | set(MACOSX_BUNDLE_ICON_FILE ../icons/main.icns) 73 | else() 74 | add_executable(${PROJECT_NAME} WIN32 75 | ${PROJECT_SOURCES} 76 | ) 77 | endif() 78 | 79 | target_link_libraries(${PROJECT_NAME} bzip2) 80 | target_link_libraries(${PROJECT_NAME} lzma) 81 | target_link_libraries(${PROJECT_NAME} zlib) 82 | target_link_libraries(${PROJECT_NAME} capstone) 83 | target_link_libraries(${PROJECT_NAME} cppfilt) 84 | 85 | if(WITH_YARA) 86 | target_link_libraries(${PROJECT_NAME} yara) 87 | endif() 88 | 89 | target_link_libraries(${PROJECT_NAME} Qt5::Widgets) 90 | target_link_libraries(${PROJECT_NAME} Qt5::Concurrent) 91 | target_link_libraries(${PROJECT_NAME} Qt5::OpenGL) 92 | target_link_libraries(${PROJECT_NAME} Qt5::PrintSupport) 93 | target_link_libraries(${PROJECT_NAME} Qt5::Svg) 94 | target_link_libraries(${PROJECT_NAME} Qt5::Sql) 95 | target_link_libraries(${PROJECT_NAME} Qt5::Network) 96 | target_link_libraries(${PROJECT_NAME} Qt5::Script) 97 | target_link_libraries(${PROJECT_NAME} Qt5::ScriptTools) 98 | 99 | if(WIN32) 100 | target_link_libraries(${PROJECT_NAME} Wintrust) 101 | target_link_libraries(${PROJECT_NAME} Crypt32) 102 | endif() 103 | -------------------------------------------------------------------------------- /PKGBUILD: -------------------------------------------------------------------------------- 1 | pkgname=detect-it-easy 2 | pkgver=3.11 3 | pkgrel=1 4 | pkgdesc='Detect It Easy, or abbreviated "DIE" is a program for determining types of files' 5 | arch=('x86_64') 6 | url='https://horsicq.github.io' 7 | license=(MIT) 8 | provides=( 9 | 'detect-it-easy' 10 | ) 11 | conflicts=( 12 | 'detect-it-easy' 13 | ) 14 | depends=( 15 | 'freetype2' 16 | 'gcc-libs' 17 | 'glib2' 18 | 'glibc' 19 | 'graphite' 20 | 'hicolor-icon-theme' 21 | 'icu' 22 | 'krb5' 23 | 'qt5-base' 24 | 'qt5-script' 25 | 'qt5-svg' 26 | 'systemd-libs' 27 | ) 28 | makedepends=( 29 | 'git' 30 | 'qt5-tools' 31 | ) 32 | _srcname="DIE-engine" 33 | source=( 34 | 'git+https://github.com/horsicq/DIE-engine.git' 35 | ) 36 | sha512sums=( 37 | 'SKIP' 38 | ) 39 | _pkgname="${pkgname/-git/}" 40 | _stop='\e[m' 41 | _color="\e[33m" 42 | _bold='\e[1m' 43 | _prefix=" ${_bold}${_color}==>${_stop} " 44 | 45 | prepare() { 46 | cd "$srcdir/$_srcname" 47 | git submodule update --init --recursive 48 | } 49 | 50 | build() { 51 | cd "$_srcname" || return 52 | echo -e "${_prefix}Building detect-it-easy" 53 | 54 | _subdirs="build_libs gui_source console_source lite_source" 55 | 56 | # [DEPRECATED] FIXME UPSTREAM: -Werror=format-security is causing build errors (merged upstream) 57 | #export CFLAGS+=" -Wno-format-security" 58 | #export CXXFLAGS+=" -Wno-format-security" 59 | 60 | for _subdir in $_subdirs; do 61 | pushd "$_subdir" || return 62 | echo -e "${_prefix}${_prefix}Building $_subdir" 63 | qmake-qt5 PREFIX=/usr QMAKE_CFLAGS="${CFLAGS}" QMAKE_CXXFLAGS="${CXXFLAGS}" QMAKE_LFLAGS="${LDFLAGS}" "$_subdir.pro" 64 | make -f Makefile clean 65 | make -f Makefile 66 | popd || return 67 | done 68 | 69 | echo -e "${_prefix}${_prefix}Running Qt's Linguist tool chain for gui_source" 70 | cd gui_source || return 71 | lupdate gui_source_tr.pro 72 | lrelease gui_source_tr.pro 73 | } 74 | 75 | package() { 76 | cd "$_srcname" || return 77 | 78 | echo -e "${_prefix}Creating the package base" 79 | install -d "$pkgdir"/{opt/"${_pkgname}",usr/bin,usr/share/icons} 80 | install -d "$pkgdir/opt/${_pkgname}"/{lang,qss,info,db,signatures,images,yara_rules} 81 | 82 | echo -e "${_prefix}Copying the package binaries" 83 | install -Dm 755 build/release/die -t "$pkgdir"/opt/"${_pkgname}" 84 | install -Dm 755 build/release/diec -t "$pkgdir"/opt/"${_pkgname}" 85 | install -Dm 755 build/release/diel -t "$pkgdir"/opt/"${_pkgname}" 86 | 87 | echo -e "${_prefix}Copying the package files" 88 | install -Dm 644 gui_source/translation/* -t "$pkgdir"/opt/"${_pkgname}"/lang 89 | install -Dm 644 XStyles/qss/* -t "$pkgdir"/opt/"${_pkgname}"/qss 90 | cp -r XInfoDB/info/* -t "$pkgdir"/opt/"${_pkgname}"/info/ 91 | cp -r Detect-It-Easy/db/* -t "$pkgdir"/opt/"${_pkgname}"/db/ 92 | cp -r XYara/yara_rules/* -t "$pkgdir"/opt/"${_pkgname}"/yara_rules/ 93 | install -Dm 644 signatures/crypto.db -t "$pkgdir"/opt/"${_pkgname}"/signatures 94 | cp -r images/* -t "$pkgdir"/opt/"${_pkgname}"/images/ 95 | 96 | echo -e "${_prefix}Setting up /usr/bin launchers" 97 | ln -s /opt/"${_pkgname}"/die "$pkgdir"/usr/bin/die 98 | ln -s /opt/"${_pkgname}"/diec "$pkgdir"/usr/bin/diec 99 | ln -s /opt/"${_pkgname}"/diel "$pkgdir"/usr/bin/diel 100 | 101 | echo -e "${_prefix}Setting up desktop icons" 102 | cp -r LINUX/hicolor "$pkgdir"/usr/share/icons 103 | 104 | echo -e "${_prefix}Setting up desktop shortcuts" 105 | install -Dm 644 LINUX/io.github.horsicq.detect-it-easy.desktop -t "$pkgdir"/usr/share/applications 106 | 107 | echo -e "${_prefix}Setting up metainfo file" 108 | install -Dm 644 LINUX/io.github.horsicq.detect-it-easy.metainfo.xml -t "$pkgdir"/usr/share/metainfo 109 | 110 | install -Dm 644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE" 111 | } 112 | -------------------------------------------------------------------------------- /gui_source/rsrc.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | icons/Add.16.16.png 4 | icons/Address.16.16.png 5 | icons/Backward.16.16.png 6 | icons/Binary.16.16.png 7 | icons/BreakpointDisabled.16.16.png 8 | icons/BreakpointEnabled.16.16.png 9 | icons/Certificate.16.16.png 10 | icons/Copy.16.16.png 11 | icons/Debug.16.16.png 12 | icons/Demangle.16.16.png 13 | icons/Disasm.16.16.png 14 | icons/DotNet.16.16.png 15 | icons/Download.16.16.png 16 | icons/Edit.16.16.png 17 | icons/Entropy.16.16.png 18 | icons/Entry.16.16.png 19 | icons/Exception.16.16.png 20 | icons/Exit.16.16.png 21 | icons/Extract.16.16.png 22 | icons/File.16.16.png 23 | icons/Forward.16.16.png 24 | icons/Goto.16.16.png 25 | icons/Hash.16.16.png 26 | icons/Header.16.16.png 27 | icons/Image.16.16.png 28 | icons/Info.16.16.png 29 | icons/Library.16.16.png 30 | icons/List.16.16.png 31 | icons/MemoryMap.16.16.png 32 | icons/Metadata.16.16.png 33 | icons/Mime.16.16.png 34 | icons/Offset.16.16.png 35 | icons/Open.16.16.png 36 | icons/Option.16.16.png 37 | icons/Overlay.16.16.png 38 | icons/Refresh.16.16.png 39 | icons/Resource.16.16.png 40 | icons/Save.16.16.png 41 | icons/Search.16.16.png 42 | icons/Section.16.16.png 43 | icons/Segment.16.16.png 44 | icons/Select.16.16.png 45 | icons/Shortcut.16.16.png 46 | icons/Signature.16.16.png 47 | icons/Size.16.16.png 48 | icons/String.16.16.png 49 | icons/Structs.16.16.png 50 | icons/Symbol.16.16.png 51 | icons/TLS.16.16.png 52 | icons/Table.16.16.png 53 | icons/Tool.16.16.png 54 | icons/Value.16.16.png 55 | icons/Virustotal.16.16.png 56 | icons/Yara.16.16.png 57 | icons/Export.16.16.png 58 | icons/Import.16.16.png 59 | icons/Data.16.16.png 60 | icons/NFD.16.16.png 61 | icons/DIE.16.16.png 62 | icons/Version.16.16.png 63 | icons/Manifest.16.16.png 64 | icons/Action.16.16.png 65 | icons/Follow.16.16.png 66 | icons/Reloc.16.16.png 67 | icons/Next.16.16.png 68 | icons/All.16.16.png 69 | icons/Path.16.16.png 70 | icons/Note.16.16.png 71 | icons/Function.16.16.png 72 | icons/Script.16.16.png 73 | icons/Patch.16.16.png 74 | icons/Remove.16.16.png 75 | icons/Resize.16.16.png 76 | icons/Code.16.16.png 77 | icons/Reference.16.16.png 78 | icons/Bookmark.16.16.png 79 | icons/Convertor.16.16.png 80 | icons/Inspector.16.16.png 81 | images/about.png 82 | 83 | 84 | -------------------------------------------------------------------------------- /gui_source/main_gui.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2020-2025 hors 2 | * 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy 4 | * of this software and associated documentation files (the "Software"), to deal 5 | * in the Software without restriction, including without limitation the rights 6 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | * copies of the Software, and to permit persons to whom the Software is 8 | * furnished to do so, subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all 11 | * copies or substantial portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | * SOFTWARE. 20 | */ 21 | #include 22 | #include 23 | 24 | #include "guimainwindow.h" 25 | #include "xsingleapplication.h" 26 | 27 | int main(int argc, char *argv[]) 28 | { 29 | #if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) 30 | QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); 31 | #endif 32 | #ifdef Q_OS_MAC 33 | #ifndef QT_DEBUG 34 | QString sLibraryPath = QString(argv[0]); 35 | sLibraryPath = sLibraryPath.remove("MacOS/DiE") + "PlugIns"; 36 | QCoreApplication::setLibraryPaths(QStringList(sLibraryPath)); 37 | #endif 38 | #endif 39 | 40 | QCoreApplication::setOrganizationName(X_ORGANIZATIONNAME); 41 | QCoreApplication::setOrganizationDomain(X_ORGANIZATIONDOMAIN); 42 | QCoreApplication::setApplicationName(X_APPLICATIONNAME); 43 | QCoreApplication::setApplicationVersion(X_APPLICATIONVERSION); 44 | 45 | if ((argc == 2) && ((QString(argv[1]) == "--version") || (QString(argv[1]) == "-v"))) { 46 | QString sInfo = QString("%1 v%2").arg(X_APPLICATIONDISPLAYNAME, X_APPLICATIONVERSION); 47 | printf("%s\n", sInfo.toUtf8().data()); 48 | 49 | return 0; 50 | } 51 | 52 | XSingleApplication app(argc, argv); 53 | 54 | #ifdef Q_OS_LINUX 55 | #if QT_VERSION >= QT_VERSION_CHECK(5, 7, 0) 56 | app.setDesktopFileName("io.github.horsicq.detect-it-easy"); 57 | #endif 58 | #endif 59 | 60 | #ifndef Q_OS_WIN 61 | QApplication::setWindowIcon(QIcon(":/images/main.png")); 62 | #endif 63 | 64 | XOptions xOptions; 65 | 66 | xOptions.setName(X_OPTIONSFILE); 67 | 68 | #ifdef Q_OS_WIN 69 | // xOptions.addID(XOptions::ID_VIEW_QSS, "orange_fix"); 70 | xOptions.addID(XOptions::ID_VIEW_QSS, ""); 71 | // xOptions.addID(XOptions::ID_VIEW_SELECTSTYLE, xOptions.isWritable()); 72 | xOptions.addID(XOptions::ID_VIEW_SELECTSTYLE, false); 73 | #else 74 | xOptions.addID(XOptions::ID_VIEW_QSS, ""); 75 | xOptions.addID(XOptions::ID_VIEW_SELECTSTYLE, false); 76 | #endif 77 | xOptions.addID(XOptions::ID_VIEW_LANG, "System"); 78 | xOptions.addID(XOptions::ID_VIEW_STYLE, "Fusion"); 79 | xOptions.addID(XOptions::ID_VIEW_SINGLEAPPLICATION, false); 80 | 81 | xOptions.load(); 82 | 83 | if (xOptions.isSingleApplication()) { 84 | app.enableSingleInstance(); 85 | } 86 | 87 | qint32 nResult = 0; 88 | 89 | if (app.isPrimary()) { 90 | if (xOptions.getValue(XOptions::ID_VIEW_SELECTSTYLE).toBool()) { 91 | DialogSelectStyle dialogSelectStyle; 92 | dialogSelectStyle.exec(); 93 | qint32 nStyleCode = dialogSelectStyle.getStyleCode(); 94 | 95 | if (nStyleCode == 2) { 96 | xOptions.setValue(XOptions::ID_VIEW_QSS, "orange_fix"); 97 | xOptions.setValue(XOptions::ID_VIEW_STYLE, "Fusion"); 98 | } else { 99 | xOptions.setValue(XOptions::ID_VIEW_QSS, ""); 100 | xOptions.setValue(XOptions::ID_VIEW_STYLE, "Fusion"); 101 | } 102 | 103 | xOptions.setValue(XOptions::ID_VIEW_SELECTSTYLE, false); 104 | } 105 | 106 | XOptions::adjustApplicationView(X_APPLICATIONNAME, &xOptions); 107 | 108 | xOptions.save(); 109 | 110 | GuiMainWindow mainWindow; 111 | 112 | QObject::connect(&app, SIGNAL(messageText(QString)), &mainWindow, SLOT(_process(QString))); 113 | 114 | mainWindow.show(); 115 | 116 | nResult = app.exec(); 117 | } 118 | 119 | return nResult; 120 | } 121 | -------------------------------------------------------------------------------- /gui_source/desktopintegrationhelper.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | 20 | #ifdef Q_OS_WIN 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #endif 27 | 28 | 29 | class DesktopIntegrationHelper : public QObject{ 30 | public: 31 | struct JumpListTask { 32 | std::wstring exePath; 33 | std::wstring arguments; 34 | std::wstring description; 35 | }; 36 | 37 | static bool Initialize(QWidget* widget); 38 | static void Uninitialize(); 39 | static bool IsAvailable(); 40 | static void startMonitoring(); 41 | static void stopMonitoring(); 42 | static void addPath(const QString &path); 43 | static void setCallback(std::function callback); 44 | static QStringList detectBrowserDownloadFolders(); 45 | static void SetTrayIcon(QSystemTrayIcon* trayIcon); 46 | QString normalizeFileName(const QString& fileName); 47 | static void setProgressCallback(std::function callback); 48 | QUrl getUrlForCrdownloadFile(const QString& fullPath); 49 | static qint64 getRemoteFileSize(const QUrl& url); 50 | static QString formatBytes(qint64 bytes); 51 | static QString formatSpeed(qint64 bytesPerSecond); 52 | static QString formatDownloadProgress(const QString& filePath, qint64 received, qint64 total, qint64 speed = 0); 53 | 54 | #ifdef Q_OS_WIN 55 | static void SetProgressValue(int value, int max); 56 | static void SetProgressState(TBPFLAG state); 57 | static void SetOverlayIcon(HICON hIcon, LPCWSTR description); 58 | static void ClearOverlayIcon(); 59 | static void FlashTaskbar(bool flash, int count); 60 | static bool AddThumbnailButtons(THUMBBUTTON* buttons, UINT count); 61 | static bool UpdateThumbnailButtons(THUMBBUTTON* buttons, UINT count); 62 | static void SetThumbnailTooltip(LPCWSTR tooltip); 63 | static void SetThumbnailClip(RECT* rect); 64 | static void ClearThumbnailClip(); 65 | static bool AddJumpListTasks(const std::vector& tasks); 66 | #endif 67 | 68 | static void ShowToastNotification(const QString& message, const QString& appId, QSystemTrayIcon::MessageIcon icon, int timeoutMs); 69 | 70 | private: 71 | DesktopIntegrationHelper(); 72 | ~DesktopIntegrationHelper(); 73 | DesktopIntegrationHelper(const DesktopIntegrationHelper&) = delete; 74 | DesktopIntegrationHelper& operator=(const DesktopIntegrationHelper&) = delete; 75 | static DesktopIntegrationHelper& GetInstance(); 76 | void setProgressCallbackInternal(std::function callback); 77 | QList> m_callbacks; 78 | bool InitializeInternal(QWidget* widget); 79 | void UninitializeInternal(); 80 | bool IsAvailableInternal() const; 81 | void startMonitoringInternal(); 82 | void stopMonitoringInternal(); 83 | void addPathInternal(const QString &path); 84 | void setCallbackInternal(std::function callback); 85 | void ShowToastNotificationInternal(const QString& message, const QString& appId, QSystemTrayIcon::MessageIcon icon, int timeoutMs); 86 | void addCallbackInternal(std::function callback); 87 | #ifdef Q_OS_WIN 88 | void SetProgressValueInternal(int value, int max); 89 | void SetProgressStateInternal(TBPFLAG state); 90 | void SetOverlayIconInternal(HICON hIcon, LPCWSTR description); 91 | void ClearOverlayIconInternal(); 92 | void FlashTaskbarInternal(bool flash, int count); 93 | bool AddThumbnailButtonsInternal(THUMBBUTTON* buttons, UINT count); 94 | bool UpdateThumbnailButtonsInternal(THUMBBUTTON* buttons, UINT count); 95 | void SetThumbnailTooltipInternal(LPCWSTR tooltip); 96 | void SetThumbnailClipInternal(RECT* rect); 97 | void ClearThumbnailClipInternal(); 98 | bool AddJumpListTasksInternal(const std::vector& tasks); 99 | 100 | 101 | #endif 102 | 103 | void monitorPath(const QString &path); 104 | 105 | // Members 106 | QWidget* m_widget = nullptr; 107 | #ifdef Q_OS_WIN 108 | ITaskbarList3* m_taskbarList = nullptr; 109 | bool m_comInitialized = false; 110 | #endif 111 | QSet m_activeDownloads; 112 | QSystemTrayIcon* m_trayIcon = nullptr; 113 | QStringList m_paths; 114 | QMap m_recentFiles; 115 | QSet m_knownFiles; 116 | std::function m_callback; 117 | bool m_running; 118 | }; 119 | -------------------------------------------------------------------------------- /lite_source/litemainwindow.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | LiteMainWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 613 10 | 265 11 | 12 | 13 | 14 | LiteMainWindow 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | File name 24 | 25 | 26 | 27 | 0 28 | 29 | 30 | 0 31 | 32 | 33 | 0 34 | 35 | 36 | 0 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | ... 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 120 60 | 0 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 120 70 | 0 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 120 80 | 0 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | Qt::Horizontal 89 | 90 | 91 | 92 | 40 93 | 20 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | true 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | Scan 125 | 126 | 127 | 128 | 129 | 130 | 131 | Qt::Vertical 132 | 133 | 134 | 135 | 20 136 | 40 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | Exit 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | XComboBoxEx 158 | QComboBox 159 |
xcomboboxex.h
160 |
161 |
162 | 163 | 164 |
165 | -------------------------------------------------------------------------------- /gui_source/dialogabout.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2020-2025 hors 2 | * 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy 4 | * of this software and associated documentation files (the "Software"), to deal 5 | * in the Software without restriction, including without limitation the rights 6 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | * copies of the Software, and to permit persons to whom the Software is 8 | * furnished to do so, subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all 11 | * copies or substantial portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | * SOFTWARE. 20 | */ 21 | #include "dialogabout.h" 22 | 23 | #include "ui_dialogabout.h" 24 | 25 | DialogAbout::DialogAbout(QWidget *pParent) : XShortcutsDialog(pParent, false), ui(new Ui::DialogAbout) 26 | { 27 | ui->setupUi(this); 28 | 29 | XAboutWidget::DATA _data = {}; 30 | 31 | _data.sInfo += 32 | QString("

%1

").arg(XOptions::getTitle(X_APPLICATIONDISPLAYNAME, X_APPLICATIONVERSION, false)); 33 | _data.sInfo += QString("

Copyright (C) 2006-2008 Hellsp@wn

"); 34 | _data.sInfo += QString("

Copyright (C) 2012-%1 Hors

").arg(QDate::currentDate().year()); 35 | _data.sInfo += QString( 36 | "

%1: horsicq@gmail.com

") 38 | .arg(tr("Bugreports")); 39 | _data.sInfo += QString( 40 | "

%1: http://ntinfo.biz

") 42 | .arg(tr("Website")); 43 | _data.sInfo += 44 | QString( 45 | "

%1(Paypal): ntinfo.re@gmail.com

") 47 | .arg(tr("Donate")); 48 | _data.sInfo += 49 | QString( 50 | "

%1(BTC): 3DqddVBX9PKqMvNPXZ3gPHBNNRtD9CnmJo

") 52 | .arg(tr("Donate")); 53 | _data.sInfo += 54 | QString( 55 | "

%1: https://github.com/horsicq/DIE-engine

") 57 | .arg(tr("Source code")); 58 | 59 | _data.sLibraries += 60 | QString( 61 | "

QT Library %1 http://qt-project.org

") 63 | .arg(QT_VERSION_STR); 64 | _data.sLibraries += 65 | QString( 66 | "

QWT Library %1 http://qwt.sourceforge.net

") 68 | .arg(QWT_VERSION_STR); 69 | _data.sLibraries += QString( 70 | "

Capstone %1.%2.%3 http://www.capstone-engine.org

") 72 | .arg(QString::number(CS_VERSION_MAJOR), QString::number(CS_VERSION_MINOR), QString::number(CS_VERSION_EXTRA)); 73 | 74 | _data.sLogoPath = ":/images/about.png"; 75 | _data.sUpdatesLink = "https://github.com/horsicq/DIE-engine/releases"; 76 | _data.sThanksLink = "https://github.com/horsicq/DIE-engine/blob/master/THANKS.md"; 77 | 78 | ui->widgetAbout->setData(_data); 79 | } 80 | 81 | DialogAbout::~DialogAbout() 82 | { 83 | delete ui; 84 | } 85 | 86 | void DialogAbout::adjustView() 87 | { 88 | } 89 | 90 | void DialogAbout::on_pushButtonOK_clicked() 91 | { 92 | this->close(); 93 | } 94 | 95 | void DialogAbout::registerShortcuts(bool bState) 96 | { 97 | Q_UNUSED(bState) 98 | } 99 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "Detect-It-Easy"] 2 | path = Detect-It-Easy 3 | url = https://github.com/horsicq/Detect-It-Easy.git 4 | [submodule "Formats"] 5 | path = Formats 6 | url = https://github.com/horsicq/Formats.git 7 | [submodule "SpecAbstract"] 8 | path = SpecAbstract 9 | url = https://github.com/horsicq/SpecAbstract.git 10 | [submodule "StaticScan"] 11 | path = StaticScan 12 | url = https://github.com/horsicq/StaticScan.git 13 | [submodule "XArchive"] 14 | path = XArchive 15 | url = https://github.com/horsicq/XArchive.git 16 | [submodule "XQwt"] 17 | path = XQwt 18 | url = https://github.com/horsicq/XQwt.git 19 | [submodule "XOptions"] 20 | path = XOptions 21 | url = https://github.com/horsicq/XOptions.git 22 | [submodule "XStyles"] 23 | path = XStyles 24 | url = https://github.com/horsicq/XStyles.git 25 | [submodule "XTranslation"] 26 | path = XTranslation 27 | url = https://github.com/horsicq/XTranslation.git 28 | [submodule "XDEX"] 29 | path = XDEX 30 | url = https://github.com/horsicq/XDEX.git 31 | [submodule "FormatDialogs"] 32 | path = FormatDialogs 33 | url = https://github.com/horsicq/FormatDialogs.git 34 | [submodule "FormatWidgets"] 35 | path = FormatWidgets 36 | url = https://github.com/horsicq/FormatWidgets.git 37 | [submodule "Controls"] 38 | path = Controls 39 | url = https://github.com/horsicq/Controls.git 40 | [submodule "XMemoryMapWidget"] 41 | path = XMemoryMapWidget 42 | url = https://github.com/horsicq/XMemoryMapWidget.git 43 | [submodule "XEntropyWidget"] 44 | path = XEntropyWidget 45 | url = https://github.com/horsicq/XEntropyWidget.git 46 | [submodule "XCapstone"] 47 | path = XCapstone 48 | url = https://github.com/horsicq/XCapstone.git 49 | [submodule "XHashWidget"] 50 | path = XHashWidget 51 | url = https://github.com/horsicq/XHashWidget.git 52 | [submodule "die_script"] 53 | path = die_script 54 | url = https://github.com/horsicq/die_script.git 55 | [submodule "die_widget"] 56 | path = die_widget 57 | url = https://github.com/horsicq/die_widget.git 58 | [submodule "nfd_widget"] 59 | path = nfd_widget 60 | url = https://github.com/horsicq/nfd_widget.git 61 | [submodule "archive_widget"] 62 | path = archive_widget 63 | url = https://github.com/horsicq/archive_widget.git 64 | [submodule "XMIME"] 65 | path = XMIME 66 | url = https://github.com/horsicq/XMIME.git 67 | [submodule "XSingleApplication"] 68 | path = XSingleApplication 69 | url = https://github.com/horsicq/XSingleApplication.git 70 | [submodule "XMIMEWidget"] 71 | path = XMIMEWidget 72 | url = https://github.com/horsicq/XMIMEWidget.git 73 | [submodule "XHexView"] 74 | path = XHexView 75 | url = https://github.com/horsicq/XHexView.git 76 | [submodule "XDisasmView"] 77 | path = XDisasmView 78 | url = https://github.com/horsicq/XDisasmView.git 79 | [submodule "XGithub"] 80 | path = XGithub 81 | url = https://github.com/horsicq/XGithub.git 82 | [submodule "XShortcuts"] 83 | path = XShortcuts 84 | url = https://github.com/horsicq/XShortcuts.git 85 | [submodule "XHexEdit"] 86 | path = XHexEdit 87 | url = https://github.com/horsicq/XHexEdit.git 88 | [submodule "signatures"] 89 | path = signatures 90 | url = https://github.com/horsicq/signatures.git 91 | [submodule "XDemangle"] 92 | path = XDemangle 93 | url = https://github.com/horsicq/XDemangle.git 94 | [submodule "XDemangleWidget"] 95 | path = XDemangleWidget 96 | url = https://github.com/horsicq/XDemangleWidget.git 97 | [submodule "build_tools"] 98 | path = build_tools 99 | url = https://github.com/horsicq/build_tools 100 | [submodule "XCppfilt"] 101 | path = XCppfilt 102 | url = https://github.com/horsicq/XCppfilt 103 | [submodule "XDynStructs"] 104 | path = XDynStructs 105 | url = https://github.com/horsicq/XDynStructs 106 | [submodule "XDynStructsEngine"] 107 | path = XDynStructsEngine 108 | url = https://github.com/horsicq/XDynStructsEngine 109 | [submodule "XDynStructsWidget"] 110 | path = XDynStructsWidget 111 | url = https://github.com/horsicq/XDynStructsWidget 112 | [submodule "XFileInfo"] 113 | path = XFileInfo 114 | url = https://github.com/horsicq/XFileInfo 115 | [submodule "XPDF"] 116 | path = XPDF 117 | url = https://github.com/horsicq/XPDF 118 | [submodule "XInfoDB"] 119 | path = XInfoDB 120 | url = https://github.com/horsicq/XInfoDB 121 | [submodule "XSymbolsWidget"] 122 | path = XSymbolsWidget 123 | url = https://github.com/horsicq/XSymbolsWidget 124 | [submodule "XOnlineTools"] 125 | path = XOnlineTools 126 | url = https://github.com/horsicq/XOnlineTools 127 | [submodule "XAboutWidget"] 128 | path = XAboutWidget 129 | url = https://github.com/horsicq/XAboutWidget 130 | [submodule "hex_templates"] 131 | path = hex_templates 132 | url = https://github.com/horsicq/hex_templates 133 | [submodule "XExtractorWidget"] 134 | path = XExtractorWidget 135 | url = https://github.com/horsicq/XExtractorWidget 136 | [submodule "XExtractor"] 137 | path = XExtractor 138 | url = https://github.com/horsicq/XExtractor 139 | [submodule "XUpdate"] 140 | path = XUpdate 141 | url = https://github.com/horsicq/XUpdate 142 | [submodule "XVisualizationWidget"] 143 | path = XVisualizationWidget 144 | url = https://github.com/horsicq/XVisualizationWidget 145 | [submodule "XDecompiler"] 146 | path = XDecompiler 147 | url = https://github.com/horsicq/XDecompiler 148 | [submodule "XYara"] 149 | path = XYara 150 | url = https://github.com/horsicq/XYara 151 | [submodule "yara_widget"] 152 | path = yara_widget 153 | url = https://github.com/horsicq/yara_widget 154 | [submodule "XDataConvertorWidget"] 155 | path = XDataConvertorWidget 156 | url = https://github.com/horsicq/XDataConvertorWidget 157 | [submodule "XScanEngine"] 158 | path = XScanEngine 159 | url = https://github.com/horsicq/XScanEngine 160 | [submodule "XDisasmCore"] 161 | path = XDisasmCore 162 | url = https://github.com/horsicq/XDisasmCore.git 163 | [submodule "XRegionsWidget"] 164 | path = XRegionsWidget 165 | url = https://github.com/horsicq/XRegionsWidget.git 166 | [submodule "XStaticUnpacker"] 167 | path = XStaticUnpacker 168 | url = https://github.com/horsicq/XStaticUnpacker 169 | -------------------------------------------------------------------------------- /lite_source/litemainwindow.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2020-2025 hors 2 | * 3 | * Permission is hereby granted, free of charge, to any person obtaining a copy 4 | * of this software and associated documentation files (the "Software"), to deal 5 | * in the Software without restriction, including without limitation the rights 6 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | * copies of the Software, and to permit persons to whom the Software is 8 | * furnished to do so, subject to the following conditions: 9 | * 10 | * The above copyright notice and this permission notice shall be included in all 11 | * copies or substantial portions of the Software. 12 | * 13 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | * SOFTWARE. 20 | */ 21 | #include "litemainwindow.h" 22 | 23 | #include "ui_litemainwindow.h" 24 | 25 | LiteMainWindow::LiteMainWindow(QWidget *pParent) : QMainWindow(pParent), ui(new Ui::LiteMainWindow) 26 | { 27 | ui->setupUi(this); 28 | 29 | g_bInit = false; 30 | 31 | XOptions::registerCodecs(); 32 | 33 | setWindowTitle(XOptions::getTitle(X_APPLICATIONDISPLAYNAME, X_APPLICATIONVERSION)); 34 | 35 | g_xOptions.setName(X_OPTIONSFILELITE); 36 | 37 | g_xOptions.addID(XOptions::ID_SCAN_FLAG_RECURSIVE, true); 38 | g_xOptions.addID(XOptions::ID_SCAN_FLAG_DEEP, true); 39 | g_xOptions.addID(XOptions::ID_SCAN_FLAG_HEURISTIC, false); 40 | g_xOptions.addID(XOptions::ID_SCAN_FLAG_VERBOSE, true); 41 | g_xOptions.addID(XOptions::ID_SCAN_FLAG_ALLTYPES, false); 42 | g_xOptions.addID(XOptions::ID_SCAN_DATABASE_MAIN_PATH, "$data/db"); 43 | g_xOptions.addID(XOptions::ID_SCAN_DATABASE_EXTRA_PATH, "$data/db_extra"); 44 | g_xOptions.addID(XOptions::ID_SCAN_DATABASE_CUSTOM_PATH, "$data/db_custom"); 45 | 46 | g_xOptions.load(); 47 | 48 | ui->comboBoxFlags->setData(XScanEngine::getScanFlags(), XComboBoxEx::CBTYPE_FLAGS, 0, tr("Flags")); 49 | ui->comboBoxFlags->setValue(XScanEngine::getScanFlagsFromGlobalOptions(&g_xOptions)); 50 | 51 | ui->comboBoxDatabases->setData(XScanEngine::getDatabases(), XComboBoxEx::CBTYPE_FLAGS, 0, tr("Databases")); 52 | ui->comboBoxDatabases->setValue(XScanEngine::getDatabasesFromGlobalOptions(&g_xOptions)); 53 | 54 | ui->comboBoxDatabases->setItemEnabled(1, false); 55 | 56 | setAcceptDrops(true); 57 | installEventFilter(this); 58 | 59 | XOptions::setMonoFont(ui->plainTextEditResult); 60 | 61 | g_pDieScript = new DiE_Script; 62 | 63 | if (QCoreApplication::arguments().count() > 1) { 64 | QString sFileName = QCoreApplication::arguments().at(1); 65 | 66 | processFile(sFileName); 67 | } 68 | } 69 | 70 | LiteMainWindow::~LiteMainWindow() 71 | { 72 | XScanEngine::setScanFlagsToGlobalOptions(&g_xOptions, ui->comboBoxFlags->getValue().toULongLong()); 73 | XScanEngine::setDatabasesToGlobalOptions(&g_xOptions, ui->comboBoxDatabases->getValue().toULongLong()); 74 | 75 | g_xOptions.save(); 76 | 77 | delete ui; 78 | delete g_pDieScript; 79 | } 80 | 81 | void LiteMainWindow::processFile(const QString &sFileName) 82 | { 83 | QString _sFileName = sFileName; 84 | 85 | ui->plainTextEditResult->clear(); 86 | 87 | _sFileName = QDir().toNativeSeparators(_sFileName); 88 | 89 | ui->lineEditFileName->setText(_sFileName); 90 | 91 | XFormats::setFileTypeComboBox(XBinary::FT_UNKNOWN, _sFileName, ui->comboBoxType); 92 | 93 | process(); 94 | } 95 | 96 | void LiteMainWindow::on_pushButtonScan_clicked() 97 | { 98 | process(); 99 | } 100 | 101 | void LiteMainWindow::on_pushButtonExit_clicked() 102 | { 103 | this->close(); 104 | } 105 | 106 | void LiteMainWindow::on_pushButtonOpenFile_clicked() 107 | { 108 | QString sDirectory = ""; // mb TODO 109 | 110 | QString sFileName = QFileDialog::getOpenFileName(this, tr("Open file") + QString("..."), sDirectory, tr("All files") + QString(" (*)")); 111 | 112 | if (!sFileName.isEmpty()) { 113 | processFile(sFileName); 114 | } 115 | } 116 | 117 | void LiteMainWindow::process() 118 | { 119 | QString _sFileName = ui->lineEditFileName->text().trimmed(); 120 | 121 | if (_sFileName != "") { 122 | XScanEngine::SCAN_OPTIONS scanOptions = {}; 123 | 124 | scanOptions.bUseCustomDatabase = true; 125 | scanOptions.bUseExtraDatabase = true; 126 | scanOptions.bShowType = true; 127 | scanOptions.bShowVersion = true; 128 | scanOptions.bShowInfo = true; 129 | scanOptions.fileType = (XBinary::FT)(ui->comboBoxType->currentData().toInt()); 130 | 131 | XScanEngine::setScanFlags(&scanOptions, ui->comboBoxFlags->getValue().toULongLong()); 132 | XScanEngine::setDatabases(&scanOptions, ui->comboBoxDatabases->getValue().toULongLong()); 133 | 134 | if (!g_bInit) { 135 | g_bInit = g_pDieScript->loadDatabaseFromGlobalOptions(&g_xOptions); 136 | } 137 | 138 | XScanEngine::SCAN_RESULT scanResult = g_pDieScript->scanFile(_sFileName, &scanOptions); 139 | 140 | ScanItemModel model(&scanOptions, &(scanResult.listRecords), 1); 141 | 142 | ui->plainTextEditResult->setPlainText(model.toFormattedString()); 143 | 144 | ui->labelScanTime->setText(QString("%1 %2").arg(scanResult.nScanTime).arg(tr("msec"))); 145 | } 146 | } 147 | 148 | void LiteMainWindow::dragEnterEvent(QDragEnterEvent *event) 149 | { 150 | event->acceptProposedAction(); 151 | } 152 | 153 | void LiteMainWindow::dragMoveEvent(QDragMoveEvent *event) 154 | { 155 | event->acceptProposedAction(); 156 | } 157 | 158 | void LiteMainWindow::dropEvent(QDropEvent *event) 159 | { 160 | const QMimeData *mimeData = event->mimeData(); 161 | 162 | if (mimeData->hasUrls()) { 163 | QList urlList = mimeData->urls(); 164 | 165 | if (urlList.count()) { 166 | QString sFileName = urlList.at(0).toLocalFile(); 167 | 168 | sFileName = XBinary::convertFileName(sFileName); 169 | 170 | processFile(sFileName); 171 | } 172 | } 173 | } 174 | 175 | void LiteMainWindow::keyPressEvent(QKeyEvent *pEvent) 176 | { 177 | if (pEvent->key() == Qt::Key_Escape) { 178 | this->close(); 179 | } 180 | 181 | QWidget::keyPressEvent(pEvent); 182 | } 183 | -------------------------------------------------------------------------------- /gui_source/guimainwindow.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | GuiMainWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 720 10 | 500 11 | 12 | 13 | 14 | GuiMainWindow 15 | 16 | 17 | 18 | 19 | 20 | 21 | File name 22 | 23 | 24 | 25 | 0 26 | 27 | 28 | 0 29 | 30 | 31 | 0 32 | 33 | 34 | 0 35 | 36 | 37 | 38 | 39 | > 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 0 51 | 0 52 | 53 | 54 | 55 | 56 | 80 57 | 0 58 | 59 | 60 | 61 | ... 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 0 75 | 0 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 6 87 | 88 | 89 | 0 90 | 91 | 92 | 0 93 | 94 | 95 | 0 96 | 97 | 98 | 0 99 | 100 | 101 | 102 | 103 | Advanced 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 0 112 | 0 113 | 114 | 115 | 116 | Demangle 117 | 118 | 119 | 120 | 121 | 122 | 123 | Qt::Vertical 124 | 125 | 126 | 127 | 20 128 | 40 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 0 138 | 0 139 | 140 | 141 | 142 | Shortcuts 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 0 151 | 0 152 | 153 | 154 | 155 | Options 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 0 164 | 0 165 | 166 | 167 | 168 | About 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 0 177 | 0 178 | 179 | 180 | 181 | Exit 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | FormatsWidget 198 | QWidget 199 |
formatswidget.h
200 | 1 201 |
202 |
203 | 204 | 205 |
206 | -------------------------------------------------------------------------------- /.github/workflows/builder.yml: -------------------------------------------------------------------------------- 1 | name: Build DIE-engine 2 | 3 | on: 4 | workflow_dispatch: 5 | release: 6 | types: [created] 7 | schedule: 8 | - cron: '0 0 * * *' 9 | pull_request: 10 | types: [opened, synchronize, reopened] 11 | 12 | env: 13 | SRC_PATH: ${{ github.workspace }}/src 14 | SRC_PATH_WIN: ${{ github.workspace }}\src 15 | RELEASE_PATH: ${{ github.workspace }}/src/release 16 | 17 | # the jobs are based on these notes: 18 | # https://github.com/horsicq/Detect-It-Easy/blob/master/docs/BUILD.md 19 | jobs: 20 | build-ubuntu-24: 21 | runs-on: ubuntu-24.04 22 | steps: 23 | - uses: actions/checkout@v4 24 | with: 25 | submodules: 'recursive' 26 | path: ${{ env.SRC_PATH }} 27 | 28 | - name: Install dependencies 29 | run: | 30 | sudo apt-get update 31 | sudo apt-get install qtbase5-dev qtscript5-dev qttools5-dev-tools libqt5svg5-dev qtchooser qt5-qmake build-essential -y 32 | 33 | - name: Build 34 | working-directory: ${{ env.SRC_PATH }} 35 | run: | 36 | bash -x build_dpkg.sh 37 | 38 | - name: Upload Release as Download 39 | if: github.event_name != 'pull_request' 40 | uses: softprops/action-gh-release@v2 41 | env: 42 | RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} 43 | with: 44 | tag_name: Beta 45 | draft: false 46 | prerelease: true 47 | files: | 48 | ${{ env.RELEASE_PATH }}/*.deb 49 | 50 | build-ubuntu-24-arm: 51 | runs-on: ubuntu-24.04-arm 52 | steps: 53 | - uses: actions/checkout@v4 54 | with: 55 | submodules: 'recursive' 56 | path: ${{ env.SRC_PATH }} 57 | 58 | - name: Install dependencies 59 | run: | 60 | sudo apt-get update 61 | sudo apt-get install qtbase5-dev qtscript5-dev qttools5-dev-tools libqt5svg5-dev qtchooser qt5-qmake build-essential -y 62 | 63 | - name: Build 64 | working-directory: ${{ env.SRC_PATH }} 65 | run: | 66 | bash -x build_dpkg.sh 67 | 68 | - name: Upload Release as Download 69 | if: github.event_name != 'pull_request' 70 | uses: softprops/action-gh-release@v2 71 | env: 72 | RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} 73 | with: 74 | tag_name: Beta 75 | draft: false 76 | prerelease: true 77 | files: | 78 | ${{ env.RELEASE_PATH }}/*.deb 79 | 80 | build-ubuntu-22: 81 | runs-on: ubuntu-22.04 82 | steps: 83 | - uses: actions/checkout@v4 84 | with: 85 | submodules: 'recursive' 86 | path: ${{ env.SRC_PATH }} 87 | 88 | - name: Install dependencies 89 | run: | 90 | sudo apt-get update 91 | sudo apt-get install qtbase5-dev qtscript5-dev qttools5-dev-tools libqt5svg5-dev qtchooser qt5-qmake build-essential -y 92 | 93 | - name: Build 94 | working-directory: ${{ env.SRC_PATH }} 95 | run: | 96 | bash -x build_dpkg.sh 97 | 98 | - name: Upload Release as Download 99 | if: github.event_name != 'pull_request' 100 | uses: softprops/action-gh-release@v2 101 | env: 102 | RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} 103 | with: 104 | tag_name: Beta 105 | draft: false 106 | prerelease: true 107 | files: | 108 | ${{ env.RELEASE_PATH }}/*.deb 109 | 110 | build-windows-32: 111 | runs-on: windows-2022 112 | steps: 113 | - uses: actions/checkout@v4 114 | with: 115 | submodules: 'recursive' 116 | path: ${{ env.SRC_PATH }} 117 | 118 | - name: Setup MSVC 119 | uses: ilammy/msvc-dev-cmd@v1 120 | with: 121 | arch: x86 122 | 123 | - name: Install Qt 124 | uses: jurplel/install-qt-action@v4 125 | with: 126 | version: '5.15.2' 127 | host: 'windows' 128 | target: 'desktop' 129 | arch: 'win32_msvc2019' 130 | dir: ${{ github.workspace }} 131 | modules: qtscript 132 | 133 | - name: Build 134 | shell: cmd 135 | working-directory: ${{ env.SRC_PATH }} 136 | run: | 137 | set VSVARS_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars32.bat" 138 | set QMAKE_PATH="${{ github.workspace }}\Qt\5.15.2\msvc2019\bin\qmake.exe" 139 | set SEVENZIP_PATH="C:\Program Files\7-Zip\7z.exe" 140 | set INNOSETUP_PATH="C:\Program Files (x86)\Inno Setup 6\ISCC.exe" 141 | 142 | set X_BUILD_NAME=die 143 | set X_BUILD_PREFIX=win32 144 | set X_SOURCE_PATH=${{ env.SRC_PATH_WIN }} 145 | for /f "delims=" %%x in ('type "%X_SOURCE_PATH%\release_version.txt"') do set X_RELEASE_VERSION=%%x 146 | 147 | echo on 148 | call "%X_SOURCE_PATH%\build_win_generic_check.cmd" 149 | 150 | dir "%X_SOURCE_PATH%\release\*.zip" >nul 2>&1 151 | if %ERRORLEVEL% neq 0 ( 152 | echo "ZIP file does not exist" 153 | exit /b 1 154 | ) 155 | 156 | - name: Upload Release as Download 157 | if: github.event_name != 'pull_request' 158 | uses: softprops/action-gh-release@v2 159 | env: 160 | RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} 161 | with: 162 | tag_name: Beta 163 | draft: false 164 | prerelease: true 165 | files: | 166 | ${{ env.RELEASE_PATH }}/*.zip 167 | 168 | build-windows-64: 169 | runs-on: windows-2022 170 | steps: 171 | - uses: actions/checkout@v4 172 | with: 173 | submodules: 'recursive' 174 | path: ${{ env.SRC_PATH }} 175 | 176 | - name: Setup MSVC 177 | uses: ilammy/msvc-dev-cmd@v1 178 | with: 179 | arch: x64 180 | 181 | - name: Install Qt 182 | uses: jurplel/install-qt-action@v4 183 | with: 184 | version: '5.15.2' 185 | host: 'windows' 186 | target: 'desktop' 187 | arch: 'win64_msvc2019_64' 188 | dir: ${{ github.workspace }} 189 | modules: qtscript 190 | 191 | - name: Build 192 | shell: cmd 193 | working-directory: ${{ env.SRC_PATH }} 194 | run: | 195 | set VSVARS_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat" 196 | set QMAKE_PATH="${{ github.workspace }}\Qt\5.15.2\msvc2019_64\bin\qmake.exe" 197 | set SEVENZIP_PATH="C:\Program Files\7-Zip\7z.exe" 198 | set INNOSETUP_PATH="C:\Program Files (x86)\Inno Setup 6\ISCC.exe" 199 | 200 | set X_BUILD_NAME=die 201 | set X_BUILD_PREFIX=win64 202 | set X_SOURCE_PATH=${{ env.SRC_PATH_WIN }} 203 | for /f "delims=" %%x in ('type "%X_SOURCE_PATH%\release_version.txt"') do set X_RELEASE_VERSION=%%x 204 | 205 | echo on 206 | call "%X_SOURCE_PATH%\build_win_generic_check.cmd" 207 | 208 | dir "%X_SOURCE_PATH%\release\*.zip" >nul 2>&1 209 | if %ERRORLEVEL% neq 0 ( 210 | echo "ZIP file does not exist" 211 | exit /b 1 212 | ) 213 | 214 | - name: Upload Release as Download 215 | if: github.event_name != 'pull_request' 216 | uses: softprops/action-gh-release@v2 217 | env: 218 | RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} 219 | with: 220 | tag_name: Beta 221 | draft: false 222 | prerelease: true 223 | files: | 224 | ${{ env.RELEASE_PATH }}/*.zip 225 | 226 | build-windows-64-qt6: 227 | runs-on: windows-2022 228 | steps: 229 | - uses: actions/checkout@v4 230 | with: 231 | submodules: 'recursive' 232 | path: ${{ env.SRC_PATH }} 233 | 234 | - name: Setup MSVC 235 | uses: ilammy/msvc-dev-cmd@v1 236 | with: 237 | arch: x64 238 | 239 | - name: Install Qt 240 | uses: jurplel/install-qt-action@v4 241 | with: 242 | version: '6.8.3' 243 | host: 'windows' 244 | target: 'desktop' 245 | arch: 'win64_msvc2022_64' 246 | dir: ${{ github.workspace }} 247 | modules: qt5compat 248 | 249 | - name: Build 250 | shell: cmd 251 | working-directory: ${{ env.SRC_PATH }} 252 | run: | 253 | set VSVARS_PATH="C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" 254 | set QMAKE_PATH="${{ github.workspace }}\Qt\6.8.3\msvc2022_64\bin\qmake.exe" 255 | set SEVENZIP_PATH="C:\Program Files\7-Zip\7z.exe" 256 | set INNOSETUP_PATH="C:\Program Files (x86)\Inno Setup 6\ISCC.exe" 257 | 258 | set X_BUILD_NAME=die 259 | set X_BUILD_PREFIX=win64_qt6 260 | set X_SOURCE_PATH=${{ env.SRC_PATH_WIN }} 261 | for /f "delims=" %%x in ('type "%X_SOURCE_PATH%\release_version.txt"') do set X_RELEASE_VERSION=%%x 262 | 263 | echo on 264 | call "%X_SOURCE_PATH%\build_win_generic_qt6.cmd" 265 | 266 | dir "%X_SOURCE_PATH%\release\*.zip" >nul 2>&1 267 | if %ERRORLEVEL% neq 0 ( 268 | echo "ZIP file does not exist" 269 | exit /b 1 270 | ) 271 | 272 | - name: Upload Release as Download 273 | if: github.event_name != 'pull_request' 274 | uses: softprops/action-gh-release@v2 275 | env: 276 | RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} 277 | with: 278 | tag_name: Beta 279 | draft: false 280 | prerelease: true 281 | files: | 282 | ${{ env.RELEASE_PATH }}/*.zip 283 | 284 | 285 | build-arch: 286 | runs-on: ubuntu-latest 287 | container: archlinux:base-devel 288 | steps: 289 | - name: Install dependencies 290 | run: | 291 | pacman -Syu --noconfirm 292 | pacman -S --noconfirm qt5-base qt5-script qt5-svg qt5-tools base-devel git 293 | pacman -S --noconfirm imagemagick 294 | 295 | - name: Create user 296 | run: | 297 | useradd builduser -m 298 | passwd -d builduser 299 | echo 'builduser ALL=(ALL) ALL' | tee -a /etc/sudoers 300 | 301 | - name: Clone DIE-engine 302 | run: | 303 | cd $HOME 304 | pwd 305 | git clone --recursive https://github.com/horsicq/DIE-engine 306 | 307 | - name: Build 308 | run: | 309 | sudo chown -R builduser /__w/DIE-engine/DIE-engine 310 | sudo chown -R builduser /github/home/DIE-engine 311 | cd /github/home/DIE-engine 312 | pwd 313 | sudo -u builduser bash -c 'bash -x build_archpkg.sh' 314 | rm -Rf /__w/DIE-engine/DIE-engine/release/*debug* 315 | rm -Rf /github/home/DIE-engine/release/*debug* 316 | 317 | - name: Upload Release as Download 318 | if: github.event_name != 'pull_request' 319 | uses: softprops/action-gh-release@v2 320 | env: 321 | RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }} 322 | with: 323 | tag_name: Beta 324 | draft: false 325 | prerelease: true 326 | files: | 327 | /github/home/DIE-engine/release/*.pkg.tar.zst 328 | 329 | # build-osx: 330 | # runs-on: macos-latest 331 | # steps: 332 | # - uses: actions/checkout@v4 333 | # with: 334 | # submodules: 'recursive' 335 | # path: ${{ env.SRC_PATH }} 336 | 337 | # - name: Install Qt 338 | # uses: jurplel/install-qt-action@v4 339 | # with: 340 | # version: '5.15.2' 341 | # host: 'mac' 342 | # target: 'desktop' 343 | # arch: 'clang_64' 344 | # # I make it match what build_mac.sh expects. Although I could also use Qt5_DIR 345 | # #dir: ${{ env.HOME }} 346 | # dir: /Users/runner 347 | # modules: qtscript 348 | 349 | # - name: Build 350 | # working-directory: ${{ env.SRC_PATH }} 351 | # run: | 352 | # bash -x build_mac.sh 353 | --------------------------------------------------------------------------------