├── .github └── FUNDING.yml ├── .gitmodules ├── CMakeLists.txt ├── Dockerfile ├── LICENSE ├── LINUX ├── hicolor │ ├── 16x16 │ │ └── apps │ │ │ └── xelfviewer.png │ ├── 20x20 │ │ └── apps │ │ │ └── xelfviewer.png │ ├── 24x24 │ │ └── apps │ │ │ └── xelfviewer.png │ ├── 256x256 │ │ └── apps │ │ │ └── xelfviewer.png │ ├── 32x32 │ │ └── apps │ │ │ └── xelfviewer.png │ └── 48x48 │ │ └── apps │ │ └── xelfviewer.png ├── xelfviewer.desktop └── xelfviewer_lc.desktop ├── README.md ├── THANKS.md ├── build.pri ├── build_dpkg.sh ├── build_libs └── build_libs.pro ├── build_linux64.sh ├── build_mac.sh ├── build_msvc_win32.bat ├── build_msvc_win64.bat ├── build_msvc_winxp.bat ├── build_win_generic.cmd ├── changelog.txt ├── configure ├── configure.ac ├── create_appimage.sh ├── docs ├── 1.png ├── 2.png ├── 3.png ├── 4.png ├── 5.png ├── BUILD.md └── RUN.md ├── global.h ├── gui_source ├── CMakeLists.txt ├── dialogabout.cpp ├── dialogabout.h ├── dialogabout.ui ├── dialogoptions.cpp ├── dialogoptions.h ├── dialogoptions.ui ├── gui_source.pro ├── gui_source_tr.pro ├── guimainwindow.cpp ├── guimainwindow.h ├── guimainwindow.ui ├── icons │ ├── Action.16.16.png │ ├── Add.16.16.png │ ├── Address.16.16.png │ ├── All.16.16.png │ ├── Backward.16.16.png │ ├── Backwards.16.16.png │ ├── Binary.16.16.png │ ├── Bookmark.16.16.png │ ├── BreakpointDisabled.16.16.png │ ├── BreakpointEnabled.16.16.png │ ├── Certificate.16.16.png │ ├── Code.16.16.png │ ├── Convertor.16.16.png │ ├── Copy.16.16.png │ ├── DIE.16.16.png │ ├── Data.16.16.png │ ├── Debug.16.16.png │ ├── Demangle.16.16.png │ ├── Disasm.16.16.png │ ├── DisassemblyWindow.16.16.png │ ├── DotNet.16.16.png │ ├── Download.16.16.png │ ├── Edit.16.16.png │ ├── Entropy.16.16.png │ ├── Entry.16.16.png │ ├── Exception.16.16.png │ ├── Exit.16.16.png │ ├── Export.16.16.png │ ├── Extract.16.16.png │ ├── File.16.16.png │ ├── Follow.16.16.png │ ├── Forward.16.16.png │ ├── Forwards.16.16.png │ ├── Function.16.16.png │ ├── Goto.16.16.png │ ├── Hash.16.16.png │ ├── Header.16.16.png │ ├── Image.16.16.png │ ├── Import.16.16.png │ ├── Info.16.16.png │ ├── Inspector.16.16.png │ ├── Library.16.16.png │ ├── List.16.16.png │ ├── Manifest.16.16.png │ ├── MemoryMap.16.16.png │ ├── Metadata.16.16.png │ ├── Mime.16.16.png │ ├── NFD.16.16.png │ ├── Next.16.16.png │ ├── Note.16.16.png │ ├── Offset.16.16.png │ ├── Open.16.16.png │ ├── Openfile.16.16.png │ ├── Option.16.16.png │ ├── Options.16.16.png │ ├── Overlay.16.16.png │ ├── Patch.16.16.png │ ├── Path.16.16.png │ ├── Reference.16.16.png │ ├── Refresh.16.16.png │ ├── Reloc.16.16.png │ ├── Remove.16.16.png │ ├── Resize.16.16.png │ ├── Resource.16.16.png │ ├── Save.16.16.png │ ├── Script.16.16.png │ ├── Search.16.16.png │ ├── Section.16.16.png │ ├── Segment.16.16.png │ ├── Select.16.16.png │ ├── Shortcut.16.16.png │ ├── Signature.16.16.png │ ├── Size.16.16.png │ ├── String.16.16.png │ ├── Structs.16.16.png │ ├── Symbol.16.16.png │ ├── TLS.16.16.png │ ├── Table.16.16.png │ ├── Tool.16.16.png │ ├── Value.16.16.png │ ├── Version.16.16.png │ ├── Virustotal.16.16.png │ └── Yara.16.16.png ├── images │ └── about.png ├── main_gui.cpp ├── rsrc.qrc ├── translation │ ├── xelfviewer_ar.ts │ ├── xelfviewer_de.ts │ ├── xelfviewer_es.ts │ ├── xelfviewer_fr.ts │ ├── xelfviewer_he.ts │ ├── xelfviewer_id.ts │ ├── xelfviewer_it.ts │ ├── xelfviewer_ja.ts │ ├── xelfviewer_ko.ts │ ├── xelfviewer_pl.ts │ ├── xelfviewer_pt_BR.ts │ ├── xelfviewer_pt_PT.ts │ ├── xelfviewer_ru.ts │ ├── xelfviewer_tr.ts │ ├── xelfviewer_uk.ts │ ├── xelfviewer_vi.ts │ ├── xelfviewer_zh.ts │ └── xelfviewer_zh_TW.ts └── windows.manifest.xml ├── icons ├── main.icns └── main.ico ├── images └── thanks │ ├── AdamHenault.json │ ├── AdamHenault.png │ ├── AdricNet.json │ ├── AdricNet.png │ ├── AliHadi.json │ ├── AliHadi.png │ ├── AndersonLeite.json │ ├── AndersonLeite.png │ ├── Bartosz.json │ ├── Bartosz.png │ ├── Dan0xE.json │ ├── Dan0xE.png │ ├── DavClark.json │ ├── DavClark.png │ ├── DavidZimmer.json │ ├── DavidZimmer.png │ ├── DuncanOgilvie.json │ ├── DuncanOgilvie.png │ ├── FernandoMerces.json │ ├── FernandoMerces.png │ ├── FilipNavara.json │ ├── FilipNavara.png │ ├── FrenchYeti.json │ ├── FrenchYeti.png │ ├── GiladReich.json │ ├── GiladReich.png │ ├── IntegralTech.json │ ├── IntegralTech.png │ ├── JasonJackTan.json │ ├── JasonJackTan.png │ ├── JoaoVitor.json │ ├── JoaoVitor.png │ ├── LeandroFroes.json │ ├── LeandroFroes.png │ ├── SpriteOvO.json │ ├── SpriteOvO.png │ ├── Xylit0l.json │ ├── Xylit0l.png │ ├── clayne.json │ ├── clayne.png │ ├── elastic.json │ ├── elastic.png │ ├── fr0zenbag.json │ ├── fr0zenbag.png │ ├── hmstk.json │ ├── hmstk.png │ ├── miT231-spec.json │ ├── miT231-spec.png │ ├── misonothx.json │ ├── misonothx.png │ ├── phithon.json │ ├── phithon.png │ ├── rmusser.json │ ├── rmusser.png │ ├── sapdragon.json │ └── sapdragon.png ├── install.iss ├── install.sh ├── mascots └── xelfviewer.png ├── release_version.txt └── xelfviewer_source.pro /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: horsicq 4 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "FormatWidgets"] 2 | path = FormatWidgets 3 | url = https://github.com/horsicq/FormatWidgets.git 4 | [submodule "Formats"] 5 | path = Formats 6 | url = https://github.com/horsicq/Formats.git 7 | [submodule "FormatDialogs"] 8 | path = FormatDialogs 9 | url = https://github.com/horsicq/FormatDialogs.git 10 | [submodule "Controls"] 11 | path = Controls 12 | url = https://github.com/horsicq/Controls.git 13 | [submodule "QHexView"] 14 | path = QHexView 15 | url = https://github.com/horsicq/QHexView.git 16 | [submodule "XMemoryMapWidget"] 17 | path = XMemoryMapWidget 18 | url = https://github.com/horsicq/XMemoryMapWidget.git 19 | [submodule "XEntropyWidget"] 20 | path = XEntropyWidget 21 | url = https://github.com/horsicq/XEntropyWidget.git 22 | [submodule "XQwt"] 23 | path = XQwt 24 | url = https://github.com/horsicq/XQwt.git 25 | [submodule "XOptions"] 26 | path = XOptions 27 | url = https://github.com/horsicq/XOptions.git 28 | [submodule "StaticScan"] 29 | path = StaticScan 30 | url = https://github.com/horsicq/StaticScan.git 31 | [submodule "SpecAbstract"] 32 | path = SpecAbstract 33 | url = https://github.com/horsicq/SpecAbstract.git 34 | [submodule "XArchive"] 35 | path = XArchive 36 | url = https://github.com/horsicq/XArchive.git 37 | [submodule "XTranslation"] 38 | path = XTranslation 39 | url = https://github.com/horsicq/XTranslation.git 40 | [submodule "XStyles"] 41 | path = XStyles 42 | url = https://github.com/horsicq/XStyles.git 43 | [submodule "XDEX"] 44 | path = XDEX 45 | url = https://github.com/horsicq/XDEX.git 46 | [submodule "XHashWidget"] 47 | path = XHashWidget 48 | url = https://github.com/horsicq/XHashWidget.git 49 | [submodule "XCapstone"] 50 | path = XCapstone 51 | url = https://github.com/horsicq/XCapstone.git 52 | [submodule "XHexView"] 53 | path = XHexView 54 | url = https://github.com/horsicq/XHexView.git 55 | [submodule "XDisasmView"] 56 | path = XDisasmView 57 | url = https://github.com/horsicq/XDisasmView.git 58 | [submodule "XShortcuts"] 59 | path = XShortcuts 60 | url = https://github.com/horsicq/XShortcuts.git 61 | [submodule "XHexEdit"] 62 | path = XHexEdit 63 | url = https://github.com/horsicq/XHexEdit.git 64 | [submodule "signatures"] 65 | path = signatures 66 | url = https://github.com/horsicq/signatures.git 67 | [submodule "XDemangle"] 68 | path = XDemangle 69 | url = https://github.com/horsicq/XDemangle.git 70 | [submodule "XDemangleWidget"] 71 | path = XDemangleWidget 72 | url = https://github.com/horsicq/XDemangleWidget.git 73 | [submodule "XLLVMDemangler"] 74 | path = XLLVMDemangler 75 | url = https://github.com/horsicq/XLLVMDemangler.git 76 | [submodule "build_tools"] 77 | path = build_tools 78 | url = https://github.com/horsicq/build_tools 79 | [submodule "XCppfilt"] 80 | path = XCppfilt 81 | url = https://github.com/horsicq/XCppfilt 82 | [submodule "XDynStructs"] 83 | path = XDynStructs 84 | url = https://github.com/horsicq/XDynStructs 85 | [submodule "XDynStructsEngine"] 86 | path = XDynStructsEngine 87 | url = https://github.com/horsicq/XDynStructsEngine 88 | [submodule "XDynStructsWidget"] 89 | path = XDynStructsWidget 90 | url = https://github.com/horsicq/XDynStructsWidget 91 | [submodule "XFileInfo"] 92 | path = XFileInfo 93 | url = https://github.com/horsicq/XFileInfo 94 | [submodule "XPDF"] 95 | path = XPDF 96 | url = https://github.com/horsicq/XPDF 97 | [submodule "XInfoDB"] 98 | path = XInfoDB 99 | url = https://github.com/horsicq/XInfoDB 100 | [submodule "XSymbolsWidget"] 101 | path = XSymbolsWidget 102 | url = https://github.com/horsicq/XSymbolsWidget 103 | [submodule "XOnlineTools"] 104 | path = XOnlineTools 105 | url = https://github.com/horsicq/XOnlineTools 106 | [submodule "XAboutWidget"] 107 | path = XAboutWidget 108 | url = https://github.com/horsicq/XAboutWidget 109 | [submodule "die_script"] 110 | path = die_script 111 | url = https://github.com/horsicq/die_script 112 | [submodule "hex_templates"] 113 | path = hex_templates 114 | url = https://github.com/horsicq/hex_templates 115 | [submodule "archive_widget"] 116 | path = archive_widget 117 | url = https://github.com/horsicq/archive_widget 118 | [submodule "XExtractorWidget"] 119 | path = XExtractorWidget 120 | url = https://github.com/horsicq/XExtractorWidget 121 | [submodule "XExtractor"] 122 | path = XExtractor 123 | url = https://github.com/horsicq/XExtractor 124 | [submodule "XUpdate"] 125 | path = XUpdate 126 | url = https://github.com/horsicq/XUpdate 127 | [submodule "XGithub"] 128 | path = XGithub 129 | url = https://github.com/horsicq/XGithub 130 | [submodule "XVisualizationWidget"] 131 | path = XVisualizationWidget 132 | url = https://github.com/horsicq/XVisualizationWidget 133 | [submodule "XDecompiler"] 134 | path = XDecompiler 135 | url = https://github.com/horsicq/XDecompiler 136 | [submodule "XYara"] 137 | path = XYara 138 | url = https://github.com/horsicq/XYara 139 | [submodule "yara_widget"] 140 | path = yara_widget 141 | url = https://github.com/horsicq/yara_widget 142 | [submodule "nfd_widget"] 143 | path = nfd_widget 144 | url = https://github.com/horsicq/nfd_widget 145 | [submodule "die_widget"] 146 | path = die_widget 147 | url = https://github.com/horsicq/die_widget 148 | [submodule "Detect-It-Easy"] 149 | path = Detect-It-Easy 150 | url = https://github.com/horsicq/Detect-It-Easy 151 | [submodule "XDataConvertorWidget"] 152 | path = XDataConvertorWidget 153 | url = https://github.com/horsicq/XDataConvertorWidget 154 | [submodule "XScanEngine"] 155 | path = XScanEngine 156 | url = https://github.com/horsicq/XScanEngine 157 | [submodule "XDisasmCore"] 158 | path = XDisasmCore 159 | url = https://github.com/horsicq/XDisasmCore.git 160 | [submodule "XRegionsWidget"] 161 | path = XRegionsWidget 162 | url = https://github.com/horsicq/XRegionsWidget.git 163 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.10) 2 | 3 | project(XELFViewer) 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) 17 | add_subdirectory(XCapstone) 18 | add_subdirectory(XArchive) 19 | add_subdirectory(XYara) 20 | add_subdirectory(gui_source) 21 | 22 | include(GNUInstallDirs) 23 | 24 | install (TARGETS xelfviewer) 25 | install (FILES LINUX/xelfviewer.desktop DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/applications/) 26 | install (DIRECTORY LINUX/hicolor DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/icons) 27 | install (DIRECTORY XStyles/qss DESTINATION ${CMAKE_INSTALL_LIBDIR}/xelfviewer) 28 | install (FILES signatures/crypto.db DESTINATION ${CMAKE_INSTALL_LIBDIR}/xelfviewer/signatures) 29 | 30 | -------------------------------------------------------------------------------- /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/XELFViewer.git 17 | 18 | RUN cd XELFViewer && bash -x build_dpkg.sh && bash -x install.sh -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019-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 | -------------------------------------------------------------------------------- /LINUX/hicolor/16x16/apps/xelfviewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/LINUX/hicolor/16x16/apps/xelfviewer.png -------------------------------------------------------------------------------- /LINUX/hicolor/20x20/apps/xelfviewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/LINUX/hicolor/20x20/apps/xelfviewer.png -------------------------------------------------------------------------------- /LINUX/hicolor/24x24/apps/xelfviewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/LINUX/hicolor/24x24/apps/xelfviewer.png -------------------------------------------------------------------------------- /LINUX/hicolor/256x256/apps/xelfviewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/LINUX/hicolor/256x256/apps/xelfviewer.png -------------------------------------------------------------------------------- /LINUX/hicolor/32x32/apps/xelfviewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/LINUX/hicolor/32x32/apps/xelfviewer.png -------------------------------------------------------------------------------- /LINUX/hicolor/48x48/apps/xelfviewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/LINUX/hicolor/48x48/apps/xelfviewer.png -------------------------------------------------------------------------------- /LINUX/xelfviewer.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=1.0 3 | Type=Application 4 | Name=XELFViewer 5 | Comment=XELFViewer is a ELF file viewer/editor. 6 | TryExec=xelfviewer 7 | Exec=xelfviewer %F 8 | Icon=xelfviewer 9 | Terminal=false 10 | Categories=Development; 11 | -------------------------------------------------------------------------------- /LINUX/xelfviewer_lc.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Version=#VERSION# 3 | Type=Application 4 | Name=XELFViewer 5 | Comment=XELFViewer is a ELF file viewer/editor. 6 | TryExec=xelfviewer 7 | Exec=xelfviewer %F 8 | Icon=xelfviewer 9 | Terminal=false 10 | Categories=Development; 11 | -------------------------------------------------------------------------------- /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/XELFViewer.svg)](https://github.com/horsicq/XELFViewer/releases) 3 | [![GitHub All Releases](https://img.shields.io/github/downloads/horsicq/XELFViewer/total.svg)](https://github.com/horsicq/XELFViewer/releases) 4 | [![gitlocalized ](https://gitlocalize.com/repo/4736/whole_project/badge.svg)](https://github.com/horsicq/XTranslation) 5 | 6 | ELF file viewer/editor for Windows, Linux and MacOS. 7 | 8 | * Download: https://github.com/horsicq/XELFViewer/releases 9 | * How to run: https://github.com/horsicq/XELFViewer/blob/master/docs/RUN.md 10 | * How to build: https://github.com/horsicq/XELFViewer/blob/master/docs/BUILD.md 11 | * Changelog: https://github.com/horsicq/XELFViewer/blob/master/changelog.txt 12 | 13 | You can help with translation: https://github.com/horsicq/XTranslation 14 | 15 | ![alt text](https://github.com/horsicq/XELFViewer/blob/master/mascots/xelfviewer.png "Mascot") 16 | 17 | ![alt text](https://github.com/horsicq/XELFViewer/blob/master/docs/1.png "1") 18 | ![alt text](https://github.com/horsicq/XELFViewer/blob/master/docs/2.png "2") 19 | ![alt text](https://github.com/horsicq/XELFViewer/blob/master/docs/3.png "3") 20 | ![alt text](https://github.com/horsicq/XELFViewer/blob/master/docs/4.png "4") 21 | ![alt text](https://github.com/horsicq/XELFViewer/blob/master/docs/5.png "5") 22 | 23 | ## Special Thanks 24 | 25 | - [PELock Software Protection & Reverse Engineering](https://www.pelock.com) 26 | -------------------------------------------------------------------------------- /THANKS.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | 15 | 16 | 17 | 18 | 32 | 33 | 34 | 35 | 49 | 50 | 51 | 52 | 66 | 67 | 68 | 69 | 83 | 84 | 85 | 86 | 94 | 95 | 96 | 97 | 111 | 112 | 113 | 114 | 128 | 129 | 130 | 131 | 142 | 143 | 144 | 145 | 159 | 160 | 161 | 162 | 176 | 177 | 178 | 179 | 193 | 194 | 195 | 196 | 207 | 208 | 209 | 210 | 218 | 219 | 220 | 221 | 232 | 233 | 234 | 235 | 246 | 247 | 248 | 249 | 260 | 261 | 262 | 263 | 274 | 275 | 276 | 277 | 285 | 286 | 287 | 288 | 299 | 300 | 301 | 302 | 313 | 314 | 315 | 316 | 324 | 325 | 326 | 327 | 335 | 336 | 337 | 338 | 349 | 350 | 351 | 352 | 366 | 367 | 368 | 369 | 377 | 378 | 379 | 380 | 388 | 389 | 390 | 391 | 405 | 406 |

5 |

6 | Adam Henault 7 |

8 |

9 | Website: http://adamhlt.com/ 10 |

11 |

12 | GitHub: adamhlt 13 |

14 |
19 |

20 | Adric Net 21 |

22 |

23 | Website: http://dfirnotes.net 24 |

25 |

26 | GitHub: adricnet 27 |

28 |

29 | Twitter: dfirnotes 30 |

31 |
36 |

37 | Ali Hadi 38 |

39 |

40 | Website: https://www.ashemery.com 41 |

42 |

43 | GitHub: ashemery 44 |

45 |

46 | Twitter: binaryz0ne 47 |

48 |
53 |

54 | Anderson Leite 55 |

56 |

57 | Website: https://reversing.codes 58 |

59 |

60 | GitHub: buzzer-re 61 |

62 |

63 | Twitter: buzz3r_ 64 |

65 |
70 |

71 | Bartosz Wójcik 72 |

73 |

74 | Website: https://www.pelock.com 75 |

76 |

77 | GitHub: PELock 78 |

79 |

80 | Twitter: PELock 81 |

82 |
87 |

88 | Christopher Layne 89 |

90 |

91 | GitHub: clayne 92 |

93 |
98 |

99 | Dan0xE 100 |

101 |

102 | Website: https://dev.to/ubervisor 103 |

104 |

105 | GitHub: Dan0xE 106 |

107 |

108 | Twitter: dan0xe 109 |

110 |
115 |

116 | Dav Clark 117 |

118 |

119 | Website: https://www.linkedin.com/in/davclark 120 |

121 |

122 | GitHub: davclark 123 |

124 |

125 | Twitter: davclark 126 |

127 |
132 |

133 | David Zimmer 134 |

135 |

136 | Website: http://sandsprite.com 137 |

138 |

139 | GitHub: dzzie 140 |

141 |
146 |

147 | Duncan Ogilvie 148 |

149 |

150 | Website: http://mrexodia.re 151 |

152 |

153 | GitHub: mrexodia 154 |

155 |

156 | Twitter: mrexodia 157 |

158 |
163 |

164 | elastic 165 |

166 |

167 | Website: https://www.elastic.co 168 |

169 |

170 | GitHub: elastic 171 |

172 |

173 | Twitter: elastic 174 |

175 |
180 |

181 | Fernando Mercês 182 |

183 |

184 | Website: https://www.mentebinaria.com.br 185 |

186 |

187 | GitHub: merces 188 |

189 |

190 | Twitter: mer0x36 191 |

192 |
197 |

198 | Filip Navara 199 |

200 |

201 | GitHub: filipnavara 202 |

203 |

204 | Twitter: filipnavara 205 |

206 |
211 |

212 | fr0zenbag 213 |

214 |

215 | GitHub: fr0zenbag 216 |

217 |
222 |

223 | FrenchYeti 224 |

225 |

226 | GitHub: FrenchYeti 227 |

228 |

229 | Twitter: frenchyeti 230 |

231 |
236 |

237 | Gilad Reich 238 |

239 |

240 | Website: https://greich.com 241 |

242 |

243 | GitHub: giladreich 244 |

245 |
250 |

251 | Derick Estrada 252 |

253 |

254 | Website: hamsteri.co 255 |

256 |

257 | GitHub: hmstk 258 |

259 |
264 |

265 | Integral-Tech 266 |

267 |

268 | Website: https://integral.org.cn/ 269 |

270 |

271 | GitHub: Integral-Tech 272 |

273 |
278 |

279 | Jason Jack Tan 280 |

281 |

282 | GitHub: Perthys 283 |

284 |
289 |

290 | João Vitor 291 |

292 |

293 | Website: http://joaovitor.gq 294 |

295 |

296 | GitHub: keowu 297 |

298 |
303 |

304 | Leandro Fróes 305 |

306 |

307 | GitHub: leandrofroes 308 |

309 |

310 | Twitter: leandrofr0es 311 |

312 |
317 |

318 | misonothx 319 |

320 |

321 | GitHub: miso-xyz 322 |

323 |
328 |

329 | miT231-spec 330 |

331 |

332 | GitHub: miT231-spec 333 |

334 |
339 |

340 | phithon 341 |

342 |

343 | Website: https://www.leavesongs.com 344 |

345 |

346 | GitHub: phith0n 347 |

348 |
353 |

354 | Robert Musser 355 |

356 |

357 | Website: https://rmusser.net/ 358 |

359 |

360 | GitHub: rmusser01 361 |

362 |

363 | Twitter: r_o_b_e_r_t_1 364 |

365 |
370 |

371 | sapdragon 372 |

373 |

374 | GitHub: sapdragon 375 |

376 |
381 |

382 | SpriteOvO 383 |

384 |

385 | GitHub: SpriteOvO 386 |

387 |
392 |

393 | Xylit0l 394 |

395 |

396 | Website: http://xylibox.com 397 |

398 |

399 | GitHub: Xyl2k 400 |

401 |

402 | Twitter: Xylit0l 403 |

404 |
407 | -------------------------------------------------------------------------------- /build.pri: -------------------------------------------------------------------------------- 1 | # For additional build parameters 2 | 3 | CONFIG(debug, debug|release) { 4 | DESTDIR = $$PWD/build/debug 5 | } else { 6 | DESTDIR = $$PWD/build/release 7 | } 8 | 9 | #win32-g++ { 10 | # QMAKE_CXXFLAGS += -Werror 11 | #} 12 | #win32-msvc*{ 13 | # QMAKE_CXXFLAGS += /WX 14 | #} 15 | 16 | # Windows minGW 17 | win32-g++* { 18 | QMAKE_CFLAGS += -Wno-missing-field-initializers 19 | QMAKE_CFLAGS += -Werror=format-security 20 | QMAKE_CFLAGS += -Wno-unused-parameter 21 | QMAKE_CXXFLAGS += -Wno-missing-field-initializers 22 | QMAKE_CXXFLAGS += -Werror=format-security 23 | QMAKE_CXXFLAGS += -Wno-unused-parameter 24 | } 25 | # Linux gcc 26 | unix:!macx { 27 | QMAKE_CFLAGS += -Wno-missing-field-initializers 28 | QMAKE_CFLAGS += -Werror=format-security 29 | QMAKE_CFLAGS += -Wno-unused-parameter 30 | QMAKE_CXXFLAGS += -Wno-missing-field-initializers 31 | QMAKE_CXXFLAGS += -Werror=format-security 32 | QMAKE_CXXFLAGS += -Wno-unused-parameter 33 | } 34 | # macOS clang 35 | unix:macx { 36 | QMAKE_CFLAGS += -Wno-missing-field-initializers 37 | QMAKE_CFLAGS += -Werror=format-security 38 | QMAKE_CFLAGS += -Wno-unused-parameter 39 | QMAKE_CXXFLAGS += -Wno-missing-field-initializers 40 | QMAKE_CXXFLAGS += -Werror=format-security 41 | QMAKE_CXXFLAGS += -Wno-unused-parameter 42 | } 43 | # Windows MSVC TODO check ARM/ARM64 !!! 44 | !contains(QMAKE_TARGET.arch, x86_64) { 45 | win32-msvc2013{ 46 | # VS2013 47 | # Windows XP support 48 | QMAKE_CXXFLAGS += /D_USING_V110_SDK71_ 49 | QMAKE_LFLAGS += /SUBSYSTEM:WINDOWS,5.01 50 | } 51 | win32-msvc{ 52 | # VS2017 53 | # Windows XP support 54 | QMAKE_CXXFLAGS += /D_USING_V110_SDK71_ 55 | QMAKE_LFLAGS += /SUBSYSTEM:WINDOWS,5.01 56 | } 57 | # TODO more MSVC versions 2019 58 | } 59 | 60 | contains(DEFINES, CREATE_PDB) { 61 | QMAKE_CXXFLAGS += /Zi 62 | QMAKE_LFLAGS += /DEBUG 63 | } 64 | 65 | 66 | -------------------------------------------------------------------------------- /build_dpkg.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | export QMAKE_PATH=/usr/bin/qmake 3 | 4 | export X_SOURCE_PATH=$PWD 5 | export X_BUILD_NAME=xapkdetector_linux_portable 6 | export X_RELEASE_VERSION=$(cat "release_version.txt") 7 | 8 | source build_tools/linux.sh 9 | 10 | check_file $QMAKE_PATH 11 | 12 | if [ -z "$X_ERROR" ]; then 13 | make_init 14 | make_build "$X_SOURCE_PATH/xelfviewer_source.pro" 15 | cd "$X_SOURCE_PATH/gui_source" 16 | make_translate "gui_source_tr.pro" 17 | cd "$X_SOURCE_PATH" 18 | 19 | check_file "$X_SOURCE_PATH/build/release/xelfviewer" 20 | if [ -z "$X_ERROR" ]; then 21 | create_deb_app_dir xelfviewer 22 | 23 | export X_PACKAGENAME='xelfviewer' 24 | export X_MAINTAINER='hors ' 25 | 26 | export X_HOMEPAGE='http://ntinfo.biz' 27 | export X_DESCRIPTION='XELFViewer is a ELF file viewer/editor.' 28 | 29 | BASE_DEPENDS='libqt5core5a, libqt5svg5, libqt5gui5, libqt5widgets5, libqt5opengl5, libqt5dbus5, libqt5scripttools5, libqt5script5, libqt5network5, libqt5sql5' 30 | 31 | export X_DEPENDS="$BASE_DEPENDS" 32 | 33 | create_deb_control $X_SOURCE_PATH/release/$X_BUILD_NAME/DEBIAN/control 34 | 35 | cp -f $X_SOURCE_PATH/build/release/xelfviewer $X_SOURCE_PATH/release/$X_BUILD_NAME/usr/bin/ 36 | cp -f $X_SOURCE_PATH/LINUX/xelfviewer.desktop $X_SOURCE_PATH/release/$X_BUILD_NAME/usr/share/applications/ 37 | sed -i "s/#VERSION#/$X_RELEASE_VERSION/" $X_SOURCE_PATH/release/$X_BUILD_NAME/usr/share/applications/xelfviewer.desktop 38 | cp -Rf $X_SOURCE_PATH/LINUX/hicolor/ $X_SOURCE_PATH/release/$X_BUILD_NAME/usr/share/icons/ 39 | cp -Rf $X_SOURCE_PATH/XStyles/qss/ $X_SOURCE_PATH/release/$X_BUILD_NAME/usr/lib/xelfviewer/ 40 | cp -Rf $X_SOURCE_PATH/images/ $X_SOURCE_PATH/release/$X_BUILD_NAME/usr/lib/xelfviewer/ 41 | cp -Rf $X_SOURCE_PATH/XInfoDB/info/ $X_SOURCE_PATH/release/$X_BUILD_NAME/usr/lib/xelfviewer/ 42 | cp -Rf $X_SOURCE_PATH/Detect-It-Easy/db/ $X_SOURCE_PATH/release/$X_BUILD_NAME/usr/lib/xelfviewer/ 43 | cp -Rf $X_SOURCE_PATH/XYara/yara_rules/ $X_SOURCE_PATH/release/$X_BUILD_NAME/usr/lib/xelfviewer/ 44 | mkdir -p $X_SOURCE_PATH/release/$X_BUILD_NAME/usr/lib/xelfviewer/lang/ 45 | cp -f $X_SOURCE_PATH/gui_source/translation/*.qm $X_SOURCE_PATH/release/$X_BUILD_NAME/usr/lib/xelfviewer/lang/ 46 | mkdir -p $X_SOURCE_PATH/release/$X_BUILD_NAME/usr/lib/xelfviewer/signatures 47 | cp -f $X_SOURCE_PATH/signatures/crypto.db $X_SOURCE_PATH/release/$X_BUILD_NAME/usr/lib/xelfviewer/signatures/ 48 | 49 | make_deb 50 | mv $X_SOURCE_PATH/release/$X_BUILD_NAME.deb $X_SOURCE_PATH/release/xelfviewer_${X_RELEASE_VERSION}_${X_OS_VERSION}_${X_ARCHITECTURE}.deb 51 | make_clear 52 | fi 53 | fi 54 | -------------------------------------------------------------------------------- /build_libs/build_libs.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = subdirs 2 | SUBDIRS += ../XArchive 3 | SUBDIRS += ../XCapstone 4 | SUBDIRS += ../XCppfilt 5 | SUBDIRS += ../XYara -------------------------------------------------------------------------------- /build_linux64.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash -x 2 | QT_PATH=$HOME/Qt/5.15.2/gcc_64 3 | RELEASE_VERSION=$(cat "release_version.txt") 4 | echo $RELEASE_VERSION 5 | SOURCE_PATH=$PWD 6 | 7 | BUILD_NAME=xelfviewer_lin64_portable 8 | 9 | cd $SOURCE_PATH 10 | 11 | function makeproject 12 | { 13 | cd $SOURCE_PATH/$1 14 | 15 | $QT_PATH/bin/qmake $1.pro -spec linux-g++ 16 | make -f Makefile clean 17 | make -f Makefile 18 | 19 | rm -rf Makefile 20 | rm -rf Makefile.Release 21 | rm -rf Makefile.Debug 22 | rm -rf object_script.* 23 | 24 | cd $SOURCE_PATH 25 | } 26 | 27 | rm -rf $SOURCE_PATH/build 28 | 29 | makeproject gui_source 30 | 31 | cd $SOURCE_PATH/gui_source 32 | $QT_PATH/bin/lupdate gui_source_tr.pro 33 | cd $SOURCE_PATH 34 | 35 | mkdir -p $SOURCE_PATH/release 36 | rm -rf $SOURCE_PATH/release/$BUILD_NAME 37 | mkdir -p $SOURCE_PATH/release/$BUILD_NAME 38 | mkdir -p $SOURCE_PATH/release/$BUILD_NAME/base 39 | mkdir -p $SOURCE_PATH/release/$BUILD_NAME/base/platforms 40 | mkdir -p $SOURCE_PATH/release/$BUILD_NAME/base/lang 41 | 42 | cp -R $QT_PATH/plugins/platforms/libqxcb.so $SOURCE_PATH/release/$BUILD_NAME/base/platforms/ 43 | 44 | cp -R $SOURCE_PATH/build/release/xelfviewer $SOURCE_PATH/release/$BUILD_NAME/base/ 45 | 46 | cp -R $QT_PATH/lib/libQt5Core.so.5.15.2 $SOURCE_PATH/release/$BUILD_NAME/base/ 47 | cp -R $QT_PATH/lib/libQt5Svg.so.5.15.2 $SOURCE_PATH/release/$BUILD_NAME/base/ 48 | cp -R $QT_PATH/lib/libQt5Gui.so.5.15.2 $SOURCE_PATH/release/$BUILD_NAME/base/ 49 | cp -R $QT_PATH/lib/libQt5Widgets.so.5.15.2 $SOURCE_PATH/release/$BUILD_NAME/base/ 50 | cp -R $QT_PATH/lib/libQt5OpenGL.so.5.15.2 $SOURCE_PATH/release/$BUILD_NAME/base/ 51 | cp -R $QT_PATH/lib/libQt5DBus.so.5.15.2 $SOURCE_PATH/release/$BUILD_NAME/base/ 52 | cp -R $QT_PATH/lib/libQt5XcbQpa.so.5.15.2 $SOURCE_PATH/release/$BUILD_NAME/base/ 53 | cp -R $QT_PATH/lib/libicui18n.so.56.1 $SOURCE_PATH/release/$BUILD_NAME/base/ 54 | cp -R $QT_PATH/lib/libicuuc.so.56.1 $SOURCE_PATH/release/$BUILD_NAME/base/ 55 | cp -R $QT_PATH/lib/libicudata.so.56.1 $SOURCE_PATH/release/$BUILD_NAME/base/ 56 | 57 | mv $SOURCE_PATH/release/$BUILD_NAME/base/libQt5Core.so.5.15.2 $SOURCE_PATH/release/$BUILD_NAME/base/libQt5Core.so.5 58 | mv $SOURCE_PATH/release/$BUILD_NAME/base/libQt5Svg.so.5.15.2 $SOURCE_PATH/release/$BUILD_NAME/base/libQt5Svg.so.5 59 | mv $SOURCE_PATH/release/$BUILD_NAME/base/libQt5Gui.so.5.15.2 $SOURCE_PATH/release/$BUILD_NAME/base/libQt5Gui.so.5 60 | mv $SOURCE_PATH/release/$BUILD_NAME/base/libQt5Widgets.so.5.15.2 $SOURCE_PATH/release/$BUILD_NAME/base/libQt5Widgets.so.5 61 | mv $SOURCE_PATH/release/$BUILD_NAME/base/libQt5OpenGL.so.5.15.2 $SOURCE_PATH/release/$BUILD_NAME/base/libQt5OpenGL.so.5 62 | mv $SOURCE_PATH/release/$BUILD_NAME/base/libQt5DBus.so.5.15.2 $SOURCE_PATH/release/$BUILD_NAME/base/libQt5DBus.so.5 63 | mv $SOURCE_PATH/release/$BUILD_NAME/base/libQt5XcbQpa.so.5.15.2 $SOURCE_PATH/release/$BUILD_NAME/base/libQt5XcbQpa.so.5 64 | mv $SOURCE_PATH/release/$BUILD_NAME/base/libicui18n.so.56.1 $SOURCE_PATH/release/$BUILD_NAME/base/libicui18n.so.56 65 | mv $SOURCE_PATH/release/$BUILD_NAME/base/libicuuc.so.56.1 $SOURCE_PATH/release/$BUILD_NAME/base/libicuuc.so.56 66 | mv $SOURCE_PATH/release/$BUILD_NAME/base/libicudata.so.56.1 $SOURCE_PATH/release/$BUILD_NAME/base/libicudata.so.56 67 | 68 | $QT_PATH/bin/lrelease $SOURCE_PATH/gui_source/translation/xelfviewer_de.ts -qm $SOURCE_PATH/release/$BUILD_NAME/base/lang/xelfviewer_de.qm 69 | $QT_PATH/bin/lrelease $SOURCE_PATH/gui_source/translation/xelfviewer_ja.ts -qm $SOURCE_PATH/release/$BUILD_NAME/base/lang/xelfviewer_ja.qm 70 | $QT_PATH/bin/lrelease $SOURCE_PATH/gui_source/translation/xelfviewer_pl.ts -qm $SOURCE_PATH/release/$BUILD_NAME/base/lang/xelfviewer_pl.qm 71 | $QT_PATH/bin/lrelease $SOURCE_PATH/gui_source/translation/xelfviewer_pt_BR.ts -qm $SOURCE_PATH/release/$BUILD_NAME/base/lang/xelfviewer_pt_BR.qm 72 | $QT_PATH/bin/lrelease $SOURCE_PATH/gui_source/translation/xelfviewer_fr.ts -qm $SOURCE_PATH/release/$BUILD_NAME/base/lang/xelfviewer_fr.qm 73 | $QT_PATH/bin/lrelease $SOURCE_PATH/gui_source/translation/xelfviewer_ru.ts -qm $SOURCE_PATH/release/$BUILD_NAME/base/lang/xelfviewer_ru.qm 74 | $QT_PATH/bin/lrelease $SOURCE_PATH/gui_source/translation/xelfviewer_vi.ts -qm $SOURCE_PATH/release/$BUILD_NAME/base/lang/xelfviewer_vi.qm 75 | $QT_PATH/bin/lrelease $SOURCE_PATH/gui_source/translation/xelfviewer_zh.ts -qm $SOURCE_PATH/release/$BUILD_NAME/base/lang/xelfviewer_zh.qm 76 | $QT_PATH/bin/lrelease $SOURCE_PATH/gui_source/translation/xelfviewer_zh_TW.ts -qm $SOURCE_PATH/release/$BUILD_NAME/base/lang/xelfviewer_zh_TW.qm 77 | $QT_PATH/bin/lrelease $SOURCE_PATH/gui_source/translation/xelfviewer_es.ts -qm $SOURCE_PATH/release/$BUILD_NAME/base/lang/xelfviewer_es.qm 78 | $QT_PATH/bin/lrelease $SOURCE_PATH/gui_source/translation/xelfviewer_it.ts -qm $SOURCE_PATH/release/$BUILD_NAME/base/lang/xelfviewer_it.qm 79 | $QT_PATH/bin/lrelease $SOURCE_PATH/gui_source/translation/xelfviewer_ko.ts -qm $SOURCE_PATH/release/$BUILD_NAME/base/lang/xelfviewer_ko.qm 80 | $QT_PATH/bin/lrelease $SOURCE_PATH/gui_source/translation/xelfviewer_tr.ts -qm $SOURCE_PATH/release/$BUILD_NAME/base/lang/xelfviewer_tr.qm 81 | $QT_PATH/bin/lrelease $SOURCE_PATH/gui_source/translation/xelfviewer_he.ts -qm $SOURCE_PATH/release/$BUILD_NAME/base/lang/xelfviewer_he.qm 82 | 83 | mkdir -p $SOURCE_PATH/release/$BUILD_NAME/base/signatures 84 | cp -R $SOURCE_PATH/signatures/crypto.db $SOURCE_PATH/release/$BUILD_NAME/base/signatures 85 | 86 | echo "#!/bin/sh" >> release/$BUILD_NAME/xelfviewer.sh 87 | echo "CWD=\$(dirname \$0)" >> release/$BUILD_NAME/xelfviewer.sh 88 | echo "export LD_LIBRARY_PATH=\"\$CWD/base:\$LD_LIBRARY_PATH\"" >> release/$BUILD_NAME/xelfviewer.sh 89 | echo "\$CWD/base/xelfviewer \$*" >> release/$BUILD_NAME/xelfviewer.sh 90 | 91 | chmod +x release/$BUILD_NAME/xelfviewer.sh 92 | 93 | rm -rf $SOURCE_PATH/release/${BUILD_NAME}_${RELEASE_VERSION}.tar.gz 94 | rm -rf $SOURCE_PATH/release/${BUILD_NAME}_${RELEASE_VERSION}.tar 95 | 96 | cd release 97 | 98 | tar -cvf ${BUILD_NAME}_${RELEASE_VERSION}.tar $BUILD_NAME 99 | gzip --best ${BUILD_NAME}_${RELEASE_VERSION}.tar 100 | 101 | cd .. 102 | 103 | rm -rf release/$BUILD_NAME 104 | -------------------------------------------------------------------------------- /build_mac.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh -x 2 | export QMAKE_PATH=$HOME/Qt/5.15.2/clang_64/bin/qmake 3 | 4 | export X_SOURCE_PATH=$PWD 5 | export X_BUILD_NAME=xelfviewer_mac 6 | export X_RELEASE_VERSION=$(cat "release_version.txt") 7 | 8 | source build_tools/mac.sh 9 | 10 | check_file $QMAKE_PATH 11 | 12 | if [ -z "$X_ERROR" ]; then 13 | make_init 14 | make_build "$X_SOURCE_PATH/xelfviewer_source.pro" 15 | cd "$X_SOURCE_PATH/gui_source" 16 | make_translate "gui_source_tr.pro" xelfviewer 17 | cd "$X_SOURCE_PATH" 18 | 19 | check_file "$X_SOURCE_PATH/build/release/XELFViewer.app/Contents/MacOS/XELFViewer" 20 | if [ -z "$X_ERROR" ]; then 21 | cp -R "$X_SOURCE_PATH/build/release/XELFViewer.app" "$X_SOURCE_PATH/release/$X_BUILD_NAME" 22 | 23 | mkdir -p $X_SOURCE_PATH/release/$X_BUILD_NAME/XELFViewer.app/Contents/Resources/signatures 24 | cp -R $X_SOURCE_PATH/signatures/crypto.db $X_SOURCE_PATH/release/$X_BUILD_NAME/XELFViewer.app/Contents/Resources/signatures 25 | cp -Rf $X_SOURCE_PATH/XStyles/qss $X_SOURCE_PATH/release/$X_BUILD_NAME/XELFViewer.app/Contents/Resources/ 26 | cp -Rf $X_SOURCE_PATH/XInfoDB/info $X_SOURCE_PATH/release/$X_BUILD_NAME/XELFViewer.app/Contents/Resources/ 27 | cp -Rf $X_SOURCE_PATH/Detect-It-Easy/db $X_SOURCE_PATH/release/$X_BUILD_NAME/XELFViewer.app/Contents/Resources/ 28 | cp -Rf $X_SOURCE_PATH/images $X_SOURCE_PATH/release/$X_BUILD_NAME/XELFViewer.app/Contents/Resources/ 29 | cp -Rf $X_SOURCE_PATH/XYara/yara_rules $X_SOURCE_PATH/release/$X_BUILD_NAME/XELFViewer.app/Contents/Resources/ 30 | 31 | fiximport "$X_SOURCE_PATH/build/release/XELFViewer.app/Contents/MacOS/XELFViewer" 32 | 33 | deploy_qt XELFViewer 34 | 35 | make_release XELFViewer 36 | make_clear 37 | fi 38 | fi 39 | -------------------------------------------------------------------------------- /build_msvc_win32.bat: -------------------------------------------------------------------------------- 1 | set VSVARS_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat" 2 | set QMAKE_PATH="C:\Qt\5.15.2\msvc2019\bin\qmake.exe" 3 | set SEVENZIP_PATH="C:\Program Files\7-Zip\7z.exe" 4 | set INNOSETUP_PATH="C:\Program Files (x86)\Inno Setup 6\ISCC.exe" 5 | 6 | set X_SOURCE_PATH=%~dp0 7 | set X_BUILD_NAME=xelfviewer 8 | set X_BUILD_PREFIX=win32 9 | set /p X_RELEASE_VERSION=<%X_SOURCE_PATH%\release_version.txt 10 | 11 | call %X_SOURCE_PATH%\build_win_generic.cmd -------------------------------------------------------------------------------- /build_msvc_win64.bat: -------------------------------------------------------------------------------- 1 | set VSVARS_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" 2 | set QMAKE_PATH="C:\Qt\5.15.2\msvc2019_64\bin\qmake.exe" 3 | set SEVENZIP_PATH="C:\Program Files\7-Zip\7z.exe" 4 | set INNOSETUP_PATH="C:\Program Files (x86)\Inno Setup 6\ISCC.exe" 5 | 6 | set X_SOURCE_PATH=%~dp0 7 | set X_BUILD_NAME=xelfviewer 8 | set X_BUILD_PREFIX=win64 9 | set /p X_RELEASE_VERSION=<%X_SOURCE_PATH%\release_version.txt 10 | 11 | call %X_SOURCE_PATH%\build_win_generic.cmd -------------------------------------------------------------------------------- /build_msvc_winxp.bat: -------------------------------------------------------------------------------- 1 | set VSVARS_PATH="C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat" 2 | set QMAKE_PATH="C:\Qt5.6.3\5.6.3\msvc2013\bin\qmake.exe" 3 | set SEVENZIP_PATH="C:\Program Files\7-Zip\7z.exe" 4 | 5 | set X_SOURCE_PATH=%~dp0 6 | set X_BUILD_NAME=xelfviewer 7 | set X_BUILD_PREFIX=winxp 8 | set /p X_RELEASE_VERSION=<%X_SOURCE_PATH%\release_version.txt 9 | 10 | call %X_SOURCE_PATH%\build_win_generic.cmd -------------------------------------------------------------------------------- /build_win_generic.cmd: -------------------------------------------------------------------------------- 1 | call %X_SOURCE_PATH%\build_tools\windows.cmd make_init 2 | 3 | IF NOT [%X_ERROR%] == [] goto exit 4 | 5 | call %X_SOURCE_PATH%\build_tools\windows.cmd make_build %X_SOURCE_PATH%\xelfviewer_source.pro 6 | 7 | cd %X_SOURCE_PATH%\gui_source 8 | call %X_SOURCE_PATH%\build_tools\windows.cmd make_translate gui_source_tr.pro 9 | cd %X_SOURCE_PATH% 10 | 11 | call %X_SOURCE_PATH%\build_tools\windows.cmd check_file %X_SOURCE_PATH%\build\release\xelfviewer.exe 12 | 13 | IF NOT [%X_ERROR%] == [] goto exit 14 | 15 | mkdir %X_SOURCE_PATH%\release\%X_BUILD_NAME%\signatures 16 | 17 | copy %X_SOURCE_PATH%\build\release\xelfviewer.exe %X_SOURCE_PATH%\release\%X_BUILD_NAME%\ 18 | xcopy %X_SOURCE_PATH%\XStyles\qss %X_SOURCE_PATH%\release\%X_BUILD_NAME%\qss /E /I 19 | xcopy %X_SOURCE_PATH%\images %X_SOURCE_PATH%\release\%X_BUILD_NAME%\images /E /I 20 | xcopy %X_SOURCE_PATH%\signatures\crypto.db %X_SOURCE_PATH%\release\%X_BUILD_NAME%\signatures\ 21 | xcopy %X_SOURCE_PATH%\Detect-It-Easy\db %X_SOURCE_PATH%\release\%X_BUILD_NAME%\db /E /I 22 | xcopy %X_SOURCE_PATH%\XYara\yara_rules %X_SOURCE_PATH%\release\%X_BUILD_NAME%\yara_rules /E /I 23 | 24 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_qt_library Qt5Widgets 25 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_qt_library Qt5Gui 26 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_qt_library Qt5Core 27 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_qt_library Qt5OpenGL 28 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_qt_library Qt5Svg 29 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_qt_library Qt5Sql 30 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_qt_library Qt5PrintSupport 31 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_qt_library Qt5Script 32 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_qt_library Qt5ScriptTools 33 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_qt_library Qt5Network 34 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_qt_plugin platforms qwindows 35 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_qt_plugin imageformats qjpeg 36 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_qt_plugin imageformats qtiff 37 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_qt_plugin imageformats qico 38 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_qt_plugin imageformats qgif 39 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_qt_plugin sqldrivers qsqlite 40 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_redist 41 | call %X_SOURCE_PATH%\build_tools\windows.cmd deploy_openssl 42 | 43 | call %X_SOURCE_PATH%\build_tools\windows.cmd make_release 44 | :exit 45 | call %X_SOURCE_PATH%\build_tools\windows.cmd make_clear -------------------------------------------------------------------------------- /changelog.txt: -------------------------------------------------------------------------------- 1 | 0.05 2 | ----------------------------------------------------------------------- 3 | [+] Bundle for Ubuntu 22.04 4 | [+] Bundle for Apple M1 processor 5 | [+] New disasm features 6 | [+] Many bugs have been fixed 7 | ####################################################################### 8 | 0.04 9 | ----------------------------------------------------------------------- 10 | [+] CMAKE build system 11 | [+] New info file widget 12 | [+] Many bugs have been fixed 13 | ####################################################################### 14 | 0.03 15 | ----------------------------------------------------------------------- 16 | [+] Linux AppImage 17 | [+] Autotools build system 18 | [+] PKG installer for OSX 19 | [+] RISCV disassembler 20 | [+] Many bugs have been fixed 21 | ####################################################################### 22 | 0.02 23 | ----------------------------------------------------------------------- 24 | [+] Qt 5.15.2 25 | [+] x64 version for Windows 26 | [+] Name demangling 27 | [+] Disassemblers(x86,MIPS,ARM ...) 28 | [+] Crypto search 29 | [+] Many bugs have been fixed 30 | ####################################################################### 31 | 0.01 32 | ----------------------------------------------------------------------- 33 | [+] Init 34 | ####################################################################### 35 | -------------------------------------------------------------------------------- /configure.ac: -------------------------------------------------------------------------------- 1 | AC_INIT([XELFViewer], 0.06) 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 "xelfviewer_source.pro" -spec $X_QMAKE_SPEC PREFIX=$X_QT_PREFIX 22 | 23 | AC_MSG_NOTICE([The configure finished. Please type "make" to compile the project.]) 24 | AS_ECHO() 25 | -------------------------------------------------------------------------------- /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 xelfviewer 9 | 10 | cp -f $X_SOURCE_PATH/build/release/xelfviewer $X_SOURCE_PATH/release/appDir/usr/bin/ 11 | cp -f $X_SOURCE_PATH/LINUX/xelfviewer.desktop $X_SOURCE_PATH/release/appDir/usr/share/applications/ 12 | sed -i "s/#VERSION#/1.0/" $X_SOURCE_PATH/release/appDir/usr/share/applications/xelfviewer.desktop 13 | cp -Rf $X_SOURCE_PATH/LINUX/hicolor/ $X_SOURCE_PATH/release/appDir/usr/share/icons/ 14 | cp -Rf $X_SOURCE_PATH/XStyles/qss/ $X_SOURCE_PATH/release/appDir/usr/lib/xelfviewer/ 15 | cp -Rf $X_SOURCE_PATH/XInfoDB/info/ $X_SOURCE_PATH/release/appDir/usr/lib/xelfviewer/ 16 | cp -Rf $X_SOURCE_PATH/Detect-It-Easy/db/ $X_SOURCE_PATH/release/appDir/usr/lib/xelfviewer/ 17 | mkdir -p $X_SOURCE_PATH/release/appDir/usr/lib/xelfviewer/signatures 18 | cp -f $X_SOURCE_PATH/signatures/crypto.db $X_SOURCE_PATH/release/appDir/usr/lib/xelfviewer/signatures/ 19 | cp -Rf $X_SOURCE_PATH/images/ $X_SOURCE_PATH/release/appDir/usr/lib/xelfviewer/ 20 | 21 | cd $X_SOURCE_PATH/release 22 | 23 | linuxdeployqt $X_SOURCE_PATH/release/appDir/usr/share/applications/xelfviewer.desktop -appimage -always-overwrite 24 | #mv *.AppImage die_${X_RELEASE_VERSION}.AppImage 25 | 26 | cd $X_SOURCE_PATH 27 | 28 | rm -Rf $X_SOURCE_PATH/release/appDir 29 | -------------------------------------------------------------------------------- /docs/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/docs/1.png -------------------------------------------------------------------------------- /docs/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/docs/2.png -------------------------------------------------------------------------------- /docs/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/docs/3.png -------------------------------------------------------------------------------- /docs/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/docs/4.png -------------------------------------------------------------------------------- /docs/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/docs/5.png -------------------------------------------------------------------------------- /docs/BUILD.md: -------------------------------------------------------------------------------- 1 | How to build on Docker 2 | ======= 3 | git clone --recursive https://github.com/horsicq/XELFViewer.git 4 | 5 | cd XELFViewer 6 | 7 | docker build . 8 | 9 | How to build on Linux(Debian package, tested on Ubuntu 14.04-20.04) 10 | ======= 11 | 12 | Install packages: 13 | 14 | - sudo apt-get install --quiet --assume-yes git 15 | - sudo apt-get install --quiet --assume-yes build-essential 16 | - sudo apt-get install --quiet --assume-yes qt5-default qtbase5-dev qttools5-dev-tools qtscript5-dev 17 | 18 | git clone --recursive https://github.com/horsicq/XELFViewer.git 19 | 20 | cd XELFViewer 21 | 22 | Run build script: bash -x build_dpkg.sh 23 | 24 | How to build on Linux(Automake) 25 | ======= 26 | 27 | Qt framework has to be installed on the system. 28 | 29 | - (Ubuntu) Install GIT: sudo apt-get install --quiet --assume-yes git 30 | - (Ubuntu 20.04)Install Qt Framework: sudo apt-get install --quiet --assume-yes build-essential qt5-default qtbase5-dev qttools5-dev-tools 31 | 32 | Clone project: git clone --recursive https://github.com/horsicq/XELFViewer.git 33 | 34 | cd XELFViewer 35 | 36 | - chmod a+x configure 37 | - ./configure 38 | - make 39 | - sudo make install 40 | 41 | How to build on OSX 42 | ======= 43 | 44 | Install Qt 5.15.2: https://github.com/horsicq/build_tools 45 | 46 | Clone project: git clone --recursive https://github.com/horsicq/XELFViewer.git 47 | 48 | cd XELFViewer 49 | 50 | Edit build_mac.bat ( check QT_PATH variable) 51 | 52 | Run build_mac.bat 53 | 54 | How to build on Windows(XP) 55 | ======= 56 | 57 | Install Visual Studio 2013: https://github.com/horsicq/build_tools 58 | 59 | Install Qt 5.6.3 for VS2013: https://github.com/horsicq/build_tools 60 | 61 | Install 7-Zip: https://www.7-zip.org/ 62 | 63 | Clone project: git clone --recursive https://github.com/horsicq/XELFViewer.git 64 | 65 | cd XELFViewer 66 | 67 | Edit build_winxp.bat ( check VS_PATH, SEVENZIP_PATH, QT_PATH variables) 68 | 69 | Run build_winxp.bat 70 | 71 | How to build on Windows(7-10) 72 | ======= 73 | 74 | Install Visual Studio 2019: https://github.com/horsicq/build_tools 75 | 76 | Install Qt 5.15.2 for VS2019: https://github.com/horsicq/build_tools 77 | 78 | Install 7-Zip: https://www.7-zip.org/ 79 | 80 | Install Inno Setup: https://github.com/horsicq/build_tools 81 | 82 | Clone project: git clone --recursive https://github.com/horsicq/XELFViewer.git 83 | 84 | cd XELFViewer 85 | 86 | Edit build_msvc_win32.bat ( check VSVARS_PATH, SEVENZIP_PATH, INNOSETUP_PATH, QMAKE_PATH variables) 87 | 88 | Edit build_msvc_win64.bat ( check VSVARS_PATH, SEVENZIP_PATH, INNOSETUP_PATH, QMAKE_PATH variables) 89 | 90 | Run build_win32.bat 91 | 92 | Run build_win64.bat 93 | 94 | How to build with CMAKE 95 | ======= 96 | git clone --recursive https://github.com/horsicq/XELFViewer.git 97 | 98 | cd XELFViewer 99 | 100 | cmake . 101 | 102 | make -j$(nproc) 103 | 104 | sudo make install 105 | -------------------------------------------------------------------------------- /docs/RUN.md: -------------------------------------------------------------------------------- 1 | **xelfviewer** - GUI version 2 | 3 | How to run portable version on Linux 4 | ======= 5 | 6 | * download an appImage file https://github.com/horsicq/XELFViewer/releases/download/0.06/XELFViewer-0.06-x86_64.AppImage 7 | * make the file executable (chmod +x XELFViewer-0.06-x86_64.AppImage) 8 | * run it (./XELFViewer-0.06-x86_64.AppImage) 9 | -------------------------------------------------------------------------------- /global.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2019-2024 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 "XELFViewer" 27 | #define X_APPLICATIONNAME "xelfviewer" 28 | #define X_APPLICATIONVERSION "0.06" 29 | #define X_ORGANIZATIONNAME "NTInfo" 30 | #define X_ORGANIZATIONDOMAIN "ntinfo.biz" 31 | #define X_OPTIONSFILE "xelfviewer.ini" 32 | #define X_SHORTCUTSFILE "shortcuts.ini" 33 | 34 | #endif // _GLOBAL_H 35 | -------------------------------------------------------------------------------- /gui_source/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.10) 2 | 3 | project(xelfviewer VERSION 0.06 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 | add_definitions(-DUSE_DEX) 33 | add_definitions(-DUSE_PDF) 34 | add_definitions(-DUSE_ARCHIVE) 35 | 36 | include(${PROJECT_SOURCE_DIR}/../archive_widget/archive_widget.cmake) 37 | include(${PROJECT_SOURCE_DIR}/../XAboutWidget/xaboutwidget.cmake) 38 | 39 | set(PROJECT_SOURCES 40 | ${ARCHIVE_WIDGET_SOURCES} 41 | ${XABOUTWIDGET_SOURCES} 42 | dialogabout.cpp 43 | dialogabout.ui 44 | dialogoptions.cpp 45 | dialogoptions.ui 46 | guimainwindow.cpp 47 | guimainwindow.ui 48 | main_gui.cpp 49 | rsrc.qrc 50 | ) 51 | 52 | if(APPLE) 53 | add_library(${PROJECT_NAME} MODULE ${PROJECT_SOURCES}) 54 | set_target_properties(${PROJECT_NAME} PROPERTIES 55 | MACOSX_BUNDLE_GUI_IDENTIFIER ntinfo.xelfviewer 56 | MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} 57 | MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} 58 | BUNDLE TRUE) 59 | set(MACOSX_BUNDLE_ICON_FILE ../icons/main.icns) 60 | else() 61 | if(WIN32) 62 | add_executable(${PROJECT_NAME} WIN32 63 | ${PROJECT_SOURCES} 64 | ) 65 | else() 66 | add_executable(${PROJECT_NAME} 67 | ${PROJECT_SOURCES} 68 | ) 69 | endif() 70 | endif() 71 | 72 | target_link_libraries(${PROJECT_NAME} bzip2) 73 | target_link_libraries(${PROJECT_NAME} lzma) 74 | target_link_libraries(${PROJECT_NAME} zlib) 75 | target_link_libraries(${PROJECT_NAME} capstone) 76 | target_link_libraries(${PROJECT_NAME} cppfilt) 77 | target_link_libraries(${PROJECT_NAME} yara) 78 | 79 | target_link_libraries(${PROJECT_NAME} Qt5::Widgets) 80 | target_link_libraries(${PROJECT_NAME} Qt5::Concurrent) 81 | target_link_libraries(${PROJECT_NAME} Qt5::OpenGL) 82 | target_link_libraries(${PROJECT_NAME} Qt5::PrintSupport) 83 | target_link_libraries(${PROJECT_NAME} Qt5::Svg) 84 | target_link_libraries(${PROJECT_NAME} Qt5::Sql) 85 | target_link_libraries(${PROJECT_NAME} Qt5::Network) 86 | target_link_libraries(${PROJECT_NAME} Qt5::Script) 87 | target_link_libraries(${PROJECT_NAME} Qt5::ScriptTools) 88 | 89 | 90 | if(WIN32) 91 | target_link_libraries(${PROJECT_NAME} Wintrust) 92 | target_link_libraries(${PROJECT_NAME} Crypt32) 93 | endif() 94 | 95 | target_link_libraries(${PROJECT_NAME} yara) 96 | -------------------------------------------------------------------------------- /gui_source/dialogabout.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 "dialogabout.h" 22 | 23 | #include "ui_dialogabout.h" 24 | 25 | DialogAbout::DialogAbout(QWidget *pParent) : QDialog(pParent), ui(new Ui::DialogAbout) 26 | { 27 | ui->setupUi(this); 28 | 29 | XAboutWidget::DATA _data = {}; 30 | 31 | _data.sInfo += QString("

%1

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

Copyright (C) 2019-2025 Hors

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

%1: horsicq@gmail.com

") 36 | .arg(tr("Bugreports")); 37 | _data.sInfo += QString( 38 | "

%1: http://ntinfo.biz

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

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

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

%1(BTC): 3DqddVBX9PKqMvNPXZ3gPHBNNRtD9CnmJo

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

%1: https://github.com/horsicq/XELFViewer

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

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

") 61 | .arg(QT_VERSION_STR); 62 | _data.sLibraries += 63 | QString( 64 | "

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

") 66 | .arg(QWT_VERSION_STR); 67 | _data.sLibraries += QString( 68 | "

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

") 70 | .arg(QString::number(CS_VERSION_MAJOR), QString::number(CS_VERSION_MINOR), QString::number(CS_VERSION_EXTRA)); 71 | 72 | _data.sLogoPath = ":/images/about.png"; 73 | _data.sUpdatesLink = "https://github.com/horsicq/XELFViewer/releases"; 74 | _data.sThanksLink = "https://github.com/horsicq/XELFViewer/blob/master/THANKS.md"; 75 | 76 | ui->widgetAbout->setData(_data); 77 | } 78 | 79 | DialogAbout::~DialogAbout() 80 | { 81 | delete ui; 82 | } 83 | 84 | void DialogAbout::on_pushButtonOK_clicked() 85 | { 86 | this->close(); 87 | } 88 | -------------------------------------------------------------------------------- /gui_source/dialogabout.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2019-2024 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 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 QDialog { 37 | Q_OBJECT 38 | 39 | public: 40 | explicit DialogAbout(QWidget *pParent = nullptr); 41 | ~DialogAbout(); 42 | 43 | private slots: 44 | void on_pushButtonOK_clicked(); 45 | 46 | private: 47 | Ui::DialogAbout *ui; 48 | }; 49 | 50 | #endif // DIALOGABOUT_H 51 | -------------------------------------------------------------------------------- /gui_source/dialogabout.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | DialogAbout 4 | 5 | 6 | Qt::ApplicationModal 7 | 8 | 9 | 10 | 0 11 | 0 12 | 666 13 | 427 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 | -------------------------------------------------------------------------------- /gui_source/dialogoptions.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2019-2024 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) : QDialog(pParent), 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 | -------------------------------------------------------------------------------- /gui_source/dialogoptions.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2019-2024 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 | #include 28 | #include 29 | 30 | #include "../global.h" 31 | #include "searchsignaturesoptionswidget.h" 32 | #include "dieoptionswidget.h" 33 | #include "xbinary.h" 34 | #include "xdisasmviewoptionswidget.h" 35 | #include "xhexviewoptionswidget.h" 36 | #include "xinfodboptionswidget.h" 37 | #include "xonlinetoolsoptionswidget.h" 38 | #include "xoptions.h" 39 | 40 | namespace Ui { 41 | class DialogOptions; 42 | } 43 | 44 | class DialogOptions : public QDialog { 45 | Q_OBJECT 46 | 47 | public: 48 | explicit DialogOptions(QWidget *pParent, XOptions *pOptions, XOptions::GROUPID groupId); 49 | ~DialogOptions(); 50 | 51 | private: 52 | Ui::DialogOptions *ui; 53 | DIEOptionsWidget *g_pDIEOptionsWidget; 54 | SearchSignaturesOptionsWidget *g_pSearchSignaturesOptionsWidget; 55 | XHexViewOptionsWidget *g_pXHexViewOptionsWidget; 56 | XDisasmViewOptionsWidget *g_pXDisasmViewOptionsWidget; 57 | XOnlineToolsOptionsWidget *g_pXOnlineToolsOptionsWidget; 58 | XInfoDBOptionsWidget *g_pXInfoDBOptionsWidget; 59 | }; 60 | 61 | #endif // DIALOGOPTIONS_H 62 | -------------------------------------------------------------------------------- /gui_source/dialogoptions.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | DialogOptions 4 | 5 | 6 | Qt::ApplicationModal 7 | 8 | 9 | 10 | 0 11 | 0 12 | 434 13 | 424 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 | -------------------------------------------------------------------------------- /gui_source/gui_source.pro: -------------------------------------------------------------------------------- 1 | QT += core gui widgets sql 2 | 3 | TARGET = xelfviewer 4 | 5 | macx { 6 | TARGET = XELFViewer 7 | } 8 | 9 | TEMPLATE = app 10 | 11 | CONFIG += c++11 12 | 13 | SOURCES += \ 14 | guimainwindow.cpp \ 15 | main_gui.cpp \ 16 | dialogoptions.cpp \ 17 | dialogabout.cpp 18 | 19 | HEADERS += \ 20 | ../global.h \ 21 | dialogoptions.h \ 22 | dialogabout.h \ 23 | guimainwindow.h 24 | 25 | FORMS += \ 26 | dialogoptions.ui \ 27 | dialogabout.ui \ 28 | guimainwindow.ui 29 | 30 | include(../build.pri) 31 | 32 | XCONFIG += use_disasm 33 | XCONFIG += use_extrabuttons 34 | 35 | !contains(XCONFIG, archive_widget) { 36 | XCONFIG += archive_widget 37 | include(../archive_widget/archive_widget.pri) 38 | } 39 | 40 | !contains(XCONFIG, xaboutwidget) { 41 | XCONFIG += xaboutwidget 42 | include(../XAboutWidget/xaboutwidget.pri) 43 | } 44 | 45 | win32 { 46 | RC_ICONS = ../icons/main.ico 47 | CONFIG -= embed_manifest_exe 48 | QMAKE_MANIFEST = windows.manifest.xml 49 | VERSION = 0.06.0.0 50 | QMAKE_TARGET_COMPANY = NTInfo 51 | QMAKE_TARGET_PRODUCT = XELFViewer 52 | QMAKE_TARGET_DESCRIPTION = XELFViewer is a ELF file viewer/editor. 53 | QMAKE_TARGET_COPYRIGHT = horsicq@gmail.com 54 | } 55 | macx { 56 | ICON = ../icons/main.icns 57 | } 58 | 59 | RESOURCES += \ 60 | rsrc.qrc 61 | 62 | DISTFILES += \ 63 | ../CMakeLists.txt \ 64 | ../LICENSE \ 65 | ../README.md \ 66 | ../changelog.txt \ 67 | ../release_version.txt \ 68 | CMakeLists.txt 69 | -------------------------------------------------------------------------------- /gui_source/gui_source_tr.pro: -------------------------------------------------------------------------------- 1 | TRANSLATIONS = \ 2 | translation/xelfviewer_ar.ts \ 3 | translation/xelfviewer_de.ts \ 4 | translation/xelfviewer_es.ts \ 5 | translation/xelfviewer_fr.ts \ 6 | translation/xelfviewer_he.ts \ 7 | translation/xelfviewer_id.ts \ 8 | translation/xelfviewer_it.ts \ 9 | translation/xelfviewer_ja.ts \ 10 | translation/xelfviewer_ko.ts \ 11 | translation/xelfviewer_pl.ts \ 12 | translation/xelfviewer_pt_BR.ts \ 13 | translation/xelfviewer_pt_PT.ts \ 14 | translation/xelfviewer_ru.ts \ 15 | translation/xelfviewer_tr.ts \ 16 | translation/xelfviewer_uk.ts \ 17 | translation/xelfviewer_vi.ts \ 18 | translation/xelfviewer_zh.ts \ 19 | translation/xelfviewer_zh_TW.ts 20 | 21 | FORMS += \ 22 | ../FormatDialogs/dialogdump.ui \ 23 | ../FormatDialogs/dialogdumpprocess.ui \ 24 | ../FormatDialogs/dialoggotoaddress.ui \ 25 | ../FormatDialogs/dialoghexsignature.ui \ 26 | ../FormatDialogs/dialogsearch.ui \ 27 | ../FormatDialogs/dialogsearchprocess.ui \ 28 | ../FormatDialogs/dialogtextinfo.ui \ 29 | ../FormatWidgets/Binary/binarywidget.ui \ 30 | ../FormatWidgets/Binary/dialogbinary.ui \ 31 | ../FormatWidgets/DEX/dexsectionheaderwidget.ui \ 32 | ../FormatWidgets/DEX/dexwidget.ui \ 33 | ../FormatWidgets/DEX/dialogdex.ui \ 34 | ../FormatWidgets/ELF/dialogelf.ui \ 35 | ../FormatWidgets/ELF/elfsectionheaderwidget.ui \ 36 | ../FormatWidgets/ELF/elfwidget.ui \ 37 | ../FormatWidgets/LE/dialogle.ui \ 38 | ../FormatWidgets/LE/lesectionheaderwidget.ui \ 39 | ../FormatWidgets/LE/lewidget.ui \ 40 | ../FormatWidgets/MACH/dialogmach.ui \ 41 | ../FormatWidgets/MACH/machsectionheaderwidget.ui \ 42 | ../FormatWidgets/MACH/machwidget.ui \ 43 | ../FormatWidgets/MACHOFAT/machofatwidget.ui \ 44 | ../FormatWidgets/MSDOS/dialogmsdos.ui \ 45 | ../FormatWidgets/MSDOS/msdoswidget.ui \ 46 | ../FormatWidgets/MultiSearch/dialogmultisearchprocess.ui \ 47 | ../FormatWidgets/NE/dialogne.ui \ 48 | ../FormatWidgets/NE/nesectionheaderwidget.ui \ 49 | ../FormatWidgets/NE/newidget.ui \ 50 | ../FormatWidgets/PE/dialogpe.ui \ 51 | ../FormatWidgets/PE/pesectionheaderwidget.ui \ 52 | ../FormatWidgets/PE/pewidget.ui \ 53 | ../FormatWidgets/SearchSignatures/dialogsearchsignatures.ui \ 54 | ../FormatWidgets/SearchSignatures/searchsignaturesoptionswidget.ui \ 55 | ../FormatWidgets/SearchSignatures/searchsignatureswidget.ui \ 56 | ../FormatWidgets/SearchStrings/dialogsearchstrings.ui \ 57 | ../FormatWidgets/SearchStrings/searchstringswidget.ui \ 58 | ../FormatWidgets/dialogmodelinfo.ui \ 59 | ../FormatWidgets/dialogprocessdata.ui \ 60 | ../FormatWidgets/dialogsectionheader.ui \ 61 | ../FormatWidgets/formatswidget.ui \ 62 | ../FormatWidgets/toolswidget.ui \ 63 | ../QHexView/dialoghex.ui \ 64 | ../QHexView/qhexviewwidget.ui \ 65 | ../StaticScan/dialogstaticscan.ui \ 66 | ../StaticScan/dialogstaticscandirectory.ui \ 67 | ../StaticScan/dialogstaticscanprocess.ui \ 68 | ../StaticScan/formresult.ui \ 69 | ../StaticScan/formstaticscan.ui \ 70 | ../StaticScan/heurwidget.ui \ 71 | ../StaticScan/staticscanoptionswidget.ui \ 72 | ../XDemangleWidget/dialogdemangle.ui \ 73 | ../XDemangleWidget/xdemanglewidget.ui \ 74 | ../XDisasm/dialogasmsignature.ui \ 75 | ../XDisasm/dialogdisasm.ui \ 76 | ../XDisasm/dialogdisasmlabels.ui \ 77 | ../XDisasm/dialogdisasmprocess.ui \ 78 | ../XDisasm/xdisasmwidget.ui \ 79 | ../XDisasmView/dialogmultidisasm.ui \ 80 | ../XDisasmView/dialogmultidisasmsignature.ui \ 81 | ../XDisasmView/xdisasmviewoptionswidget.ui \ 82 | ../XDisasmView/xmultidisasmwidget.ui \ 83 | ../XDynStructsWidget/dialogxdynstructs.ui \ 84 | ../XDynStructsWidget/xdynstructswidget.ui \ 85 | ../XEntropyWidget/dialogentropy.ui \ 86 | ../XEntropyWidget/dialogentropyprocess.ui \ 87 | ../XEntropyWidget/xentropywidget.ui \ 88 | ../XFileInfo/dialogxfileinfo.ui \ 89 | ../XFileInfo/dialogxfileinfoprocess.ui \ 90 | ../XFileInfo/xfileinfowidget.ui \ 91 | ../XHashWidget/dialoghash.ui \ 92 | ../XHashWidget/dialoghashprocess.ui \ 93 | ../XHashWidget/xhashwidget.ui \ 94 | ../XHexView/dialoghexview.ui \ 95 | ../XHexView/xhexviewoptionswidget.ui \ 96 | ../XHexView/xhexviewwidget.ui \ 97 | ../XMemoryMapWidget/dialogmemorymap.ui \ 98 | ../XMemoryMapWidget/xmemorymapwidget.ui \ 99 | ../XOptions/xoptionswidget.ui \ 100 | ../XShortcuts/dialogshortcuts.ui \ 101 | dialogabout.ui \ 102 | dialogoptions.ui \ 103 | guimainwindow.ui 104 | 105 | SOURCES += \ 106 | ../Controls/hexvalidator.cpp \ 107 | ../Controls/subclassofqstyleditemdelegate.cpp \ 108 | ../Controls/xabstracttableview.cpp \ 109 | ../Controls/xcomboboxex.cpp \ 110 | ../Controls/xdatetimeeditx.cpp \ 111 | ../Controls/xdevicetableview.cpp \ 112 | ../Controls/xhtml.cpp \ 113 | ../Controls/xlineedithex.cpp \ 114 | ../FormatDialogs/dialogdumpprocess.cpp \ 115 | ../FormatDialogs/dialoggotoaddress.cpp \ 116 | ../FormatDialogs/dialoghexsignature.cpp \ 117 | ../FormatDialogs/dialogsearch.cpp \ 118 | ../FormatDialogs/dialogsearchprocess.cpp \ 119 | ../FormatDialogs/dialogtextinfo.cpp \ 120 | ../FormatDialogs/dumpprocess.cpp \ 121 | ../FormatDialogs/searchprocess.cpp \ 122 | ../FormatWidgets/Binary/binary_defs.cpp \ 123 | ../FormatWidgets/Binary/binarywidget.cpp \ 124 | ../FormatWidgets/Binary/dialogbinary.cpp \ 125 | ../FormatWidgets/DEX/dex_defs.cpp \ 126 | ../FormatWidgets/DEX/dexprocessdata.cpp \ 127 | ../FormatWidgets/DEX/dexsectionheaderwidget.cpp \ 128 | ../FormatWidgets/DEX/dexwidget.cpp \ 129 | ../FormatWidgets/DEX/dialogdex.cpp \ 130 | ../FormatWidgets/ELF/dialogelf.cpp \ 131 | ../FormatWidgets/ELF/elf_defs.cpp \ 132 | ../FormatWidgets/ELF/elfprocessdata.cpp \ 133 | ../FormatWidgets/ELF/elfsectionheaderwidget.cpp \ 134 | ../FormatWidgets/ELF/elfwidget.cpp \ 135 | ../FormatWidgets/LE/dialogle.cpp \ 136 | ../FormatWidgets/LE/le_defs.cpp \ 137 | ../FormatWidgets/LE/leprocessdata.cpp \ 138 | ../FormatWidgets/LE/lesectionheaderwidget.cpp \ 139 | ../FormatWidgets/LE/lewidget.cpp \ 140 | ../FormatWidgets/MACH/dialogmach.cpp \ 141 | ../FormatWidgets/MACH/mach_defs.cpp \ 142 | ../FormatWidgets/MACH/machprocessdata.cpp \ 143 | ../FormatWidgets/MACH/machsectionheaderwidget.cpp \ 144 | ../FormatWidgets/MACH/machwidget.cpp \ 145 | ../FormatWidgets/MACHOFAT/machofatwidget.cpp \ 146 | ../FormatWidgets/MSDOS/dialogmsdos.cpp \ 147 | ../FormatWidgets/MSDOS/msdos_defs.cpp \ 148 | ../FormatWidgets/MSDOS/msdoswidget.cpp \ 149 | ../FormatWidgets/MultiSearch/dialogmultisearchprocess.cpp \ 150 | ../FormatWidgets/MultiSearch/multisearch.cpp \ 151 | ../FormatWidgets/NE/dialogne.cpp \ 152 | ../FormatWidgets/NE/ne_defs.cpp \ 153 | ../FormatWidgets/NE/neprocessdata.cpp \ 154 | ../FormatWidgets/NE/nesectionheaderwidget.cpp \ 155 | ../FormatWidgets/NE/newidget.cpp \ 156 | ../FormatWidgets/PE/dialogpe.cpp \ 157 | ../FormatWidgets/PE/pe_defs.cpp \ 158 | ../FormatWidgets/PE/peprocessdata.cpp \ 159 | ../FormatWidgets/PE/pesectionheaderwidget.cpp \ 160 | ../FormatWidgets/PE/pewidget.cpp \ 161 | ../FormatWidgets/SearchSignatures/dialogsearchsignatures.cpp \ 162 | ../FormatWidgets/SearchSignatures/searchsignaturesoptionswidget.cpp \ 163 | ../FormatWidgets/SearchSignatures/searchsignatureswidget.cpp \ 164 | ../FormatWidgets/SearchStrings/dialogsearchstrings.cpp \ 165 | ../FormatWidgets/SearchStrings/searchstringswidget.cpp \ 166 | ../FormatWidgets/dialogmodelinfo.cpp \ 167 | ../FormatWidgets/dialogprocessdata.cpp \ 168 | ../FormatWidgets/dialogsectionheader.cpp \ 169 | ../FormatWidgets/formatswidget.cpp \ 170 | ../FormatWidgets/formatwidget.cpp \ 171 | ../FormatWidgets/invwidget.cpp \ 172 | ../FormatWidgets/processdata.cpp \ 173 | ../FormatWidgets/toolswidget.cpp \ 174 | ../Formats/scanitem.cpp \ 175 | ../Formats/scanitemmodel.cpp \ 176 | ../Formats/subdevice.cpp \ 177 | ../Formats/xbinary.cpp \ 178 | ../Formats/xcom.cpp \ 179 | ../Formats/xelf.cpp \ 180 | ../Formats/xformats.cpp \ 181 | ../Formats/xle.cpp \ 182 | ../Formats/xmach.cpp \ 183 | ../Formats/xmsdos.cpp \ 184 | ../Formats/xne.cpp \ 185 | ../Formats/xpe.cpp \ 186 | ../QHexView/dialoghex.cpp \ 187 | ../QHexView/qhexview.cpp \ 188 | ../QHexView/qhexviewwidget.cpp \ 189 | ../SpecAbstract/signatures.cpp \ 190 | ../SpecAbstract/specabstract.cpp \ 191 | ../StaticScan/dialogstaticscan.cpp \ 192 | ../StaticScan/dialogstaticscandirectory.cpp \ 193 | ../StaticScan/dialogstaticscanprocess.cpp \ 194 | ../StaticScan/formresult.cpp \ 195 | ../StaticScan/formstaticscan.cpp \ 196 | ../StaticScan/heurwidget.cpp \ 197 | ../StaticScan/staticscan.cpp \ 198 | ../StaticScan/staticscanitem.cpp \ 199 | ../StaticScan/staticscanitemmodel.cpp \ 200 | ../StaticScan/staticscanoptionswidget.cpp \ 201 | ../XArchive/xarchive.cpp \ 202 | ../XArchive/xarchives.cpp \ 203 | ../XArchive/xcab.cpp \ 204 | ../XArchive/xmachofat.cpp \ 205 | ../XArchive/xrar.cpp \ 206 | ../XArchive/xsevenzip.cpp \ 207 | ../XArchive/xzip.cpp \ 208 | ../XCapstone/xcapstone.cpp \ 209 | ../XCppfilt/xcppfilt.cpp \ 210 | ../XDEX/xandroidbinary.cpp \ 211 | ../XDEX/xdex.cpp \ 212 | ../XDemangle/xdemangle.cpp \ 213 | ../XDemangleWidget/dialogdemangle.cpp \ 214 | ../XDemangleWidget/xdemanglewidget.cpp \ 215 | ../XDisasm/dialogasmsignature.cpp \ 216 | ../XDisasm/dialogdisasm.cpp \ 217 | ../XDisasm/dialogdisasmlabels.cpp \ 218 | ../XDisasm/dialogdisasmprocess.cpp \ 219 | ../XDisasm/xdisasm.cpp \ 220 | ../XDisasm/xdisasmmodel.cpp \ 221 | ../XDisasm/xdisasmwidget.cpp \ 222 | ../XDisasmView/dialogmultidisasm.cpp \ 223 | ../XDisasmView/dialogmultidisasmsignature.cpp \ 224 | ../XDisasmView/xdisasmview.cpp \ 225 | ../XDisasmView/xdisasmviewoptionswidget.cpp \ 226 | ../XDisasmView/xmultidisasmwidget.cpp \ 227 | ../XDynStructsEngine/xdynstructsengine.cpp \ 228 | ../XDynStructsWidget/dialogxdynstructs.cpp \ 229 | ../XDynStructsWidget/xdynstructswidget.cpp \ 230 | ../XEntropyWidget/dialogentropy.cpp \ 231 | ../XEntropyWidget/dialogentropyprocess.cpp \ 232 | ../XEntropyWidget/entropyprocess.cpp \ 233 | ../XEntropyWidget/xentropywidget.cpp \ 234 | ../XFileInfo/dialogxfileinfo.cpp \ 235 | ../XFileInfo/dialogxfileinfoprocess.cpp \ 236 | ../XFileInfo/xfileinfo.cpp \ 237 | ../XFileInfo/xfileinfowidget.cpp \ 238 | ../XHashWidget/dialoghash.cpp \ 239 | ../XHashWidget/dialoghashprocess.cpp \ 240 | ../XHashWidget/hashprocess.cpp \ 241 | ../XHashWidget/xhashwidget.cpp \ 242 | ../XHexEdit/xhexedit.cpp \ 243 | ../XHexView/dialoghexview.cpp \ 244 | ../XHexView/xhexview.cpp \ 245 | ../XHexView/xhexviewoptionswidget.cpp \ 246 | ../XHexView/xhexviewwidget.cpp \ 247 | ../XLLVMDemangler/3rdparty/llvm/Demangle/Demangle.cpp \ 248 | ../XLLVMDemangler/3rdparty/llvm/Demangle/ItaniumDemangle.cpp \ 249 | ../XLLVMDemangler/3rdparty/llvm/Demangle/MicrosoftDemangle.cpp \ 250 | ../XLLVMDemangler/3rdparty/llvm/Demangle/MicrosoftDemangleNodes.cpp \ 251 | ../XMemoryMapWidget/dialogmemorymap.cpp \ 252 | ../XMemoryMapWidget/xmemorymapwidget.cpp \ 253 | ../XOptions/xoptions.cpp \ 254 | ../XOptions/xoptionswidget.cpp \ 255 | ../XQwt/3rdparty/qwt/src/qwt_abstract_legend.cpp \ 256 | ../XQwt/3rdparty/qwt/src/qwt_abstract_scale.cpp \ 257 | ../XQwt/3rdparty/qwt/src/qwt_abstract_scale_draw.cpp \ 258 | ../XQwt/3rdparty/qwt/src/qwt_abstract_slider.cpp \ 259 | ../XQwt/3rdparty/qwt/src/qwt_analog_clock.cpp \ 260 | ../XQwt/3rdparty/qwt/src/qwt_arrow_button.cpp \ 261 | ../XQwt/3rdparty/qwt/src/qwt_clipper.cpp \ 262 | ../XQwt/3rdparty/qwt/src/qwt_color_map.cpp \ 263 | ../XQwt/3rdparty/qwt/src/qwt_column_symbol.cpp \ 264 | ../XQwt/3rdparty/qwt/src/qwt_compass.cpp \ 265 | ../XQwt/3rdparty/qwt/src/qwt_compass_rose.cpp \ 266 | ../XQwt/3rdparty/qwt/src/qwt_counter.cpp \ 267 | ../XQwt/3rdparty/qwt/src/qwt_curve_fitter.cpp \ 268 | ../XQwt/3rdparty/qwt/src/qwt_date.cpp \ 269 | ../XQwt/3rdparty/qwt/src/qwt_date_scale_draw.cpp \ 270 | ../XQwt/3rdparty/qwt/src/qwt_date_scale_engine.cpp \ 271 | ../XQwt/3rdparty/qwt/src/qwt_dial.cpp \ 272 | ../XQwt/3rdparty/qwt/src/qwt_dial_needle.cpp \ 273 | ../XQwt/3rdparty/qwt/src/qwt_dyngrid_layout.cpp \ 274 | ../XQwt/3rdparty/qwt/src/qwt_event_pattern.cpp \ 275 | ../XQwt/3rdparty/qwt/src/qwt_graphic.cpp \ 276 | ../XQwt/3rdparty/qwt/src/qwt_interval.cpp \ 277 | ../XQwt/3rdparty/qwt/src/qwt_interval_symbol.cpp \ 278 | ../XQwt/3rdparty/qwt/src/qwt_knob.cpp \ 279 | ../XQwt/3rdparty/qwt/src/qwt_legend.cpp \ 280 | ../XQwt/3rdparty/qwt/src/qwt_legend_data.cpp \ 281 | ../XQwt/3rdparty/qwt/src/qwt_legend_label.cpp \ 282 | ../XQwt/3rdparty/qwt/src/qwt_magnifier.cpp \ 283 | ../XQwt/3rdparty/qwt/src/qwt_math.cpp \ 284 | ../XQwt/3rdparty/qwt/src/qwt_matrix_raster_data.cpp \ 285 | ../XQwt/3rdparty/qwt/src/qwt_null_paintdevice.cpp \ 286 | ../XQwt/3rdparty/qwt/src/qwt_painter.cpp \ 287 | ../XQwt/3rdparty/qwt/src/qwt_painter_command.cpp \ 288 | ../XQwt/3rdparty/qwt/src/qwt_panner.cpp \ 289 | ../XQwt/3rdparty/qwt/src/qwt_picker.cpp \ 290 | ../XQwt/3rdparty/qwt/src/qwt_picker_machine.cpp \ 291 | ../XQwt/3rdparty/qwt/src/qwt_pixel_matrix.cpp \ 292 | ../XQwt/3rdparty/qwt/src/qwt_plot.cpp \ 293 | ../XQwt/3rdparty/qwt/src/qwt_plot_abstract_barchart.cpp \ 294 | ../XQwt/3rdparty/qwt/src/qwt_plot_axis.cpp \ 295 | ../XQwt/3rdparty/qwt/src/qwt_plot_barchart.cpp \ 296 | ../XQwt/3rdparty/qwt/src/qwt_plot_canvas.cpp \ 297 | ../XQwt/3rdparty/qwt/src/qwt_plot_curve.cpp \ 298 | ../XQwt/3rdparty/qwt/src/qwt_plot_dict.cpp \ 299 | ../XQwt/3rdparty/qwt/src/qwt_plot_directpainter.cpp \ 300 | ../XQwt/3rdparty/qwt/src/qwt_plot_glcanvas.cpp \ 301 | ../XQwt/3rdparty/qwt/src/qwt_plot_grid.cpp \ 302 | ../XQwt/3rdparty/qwt/src/qwt_plot_histogram.cpp \ 303 | ../XQwt/3rdparty/qwt/src/qwt_plot_intervalcurve.cpp \ 304 | ../XQwt/3rdparty/qwt/src/qwt_plot_item.cpp \ 305 | ../XQwt/3rdparty/qwt/src/qwt_plot_layout.cpp \ 306 | ../XQwt/3rdparty/qwt/src/qwt_plot_legenditem.cpp \ 307 | ../XQwt/3rdparty/qwt/src/qwt_plot_magnifier.cpp \ 308 | ../XQwt/3rdparty/qwt/src/qwt_plot_marker.cpp \ 309 | ../XQwt/3rdparty/qwt/src/qwt_plot_multi_barchart.cpp \ 310 | ../XQwt/3rdparty/qwt/src/qwt_plot_panner.cpp \ 311 | ../XQwt/3rdparty/qwt/src/qwt_plot_picker.cpp \ 312 | ../XQwt/3rdparty/qwt/src/qwt_plot_rasteritem.cpp \ 313 | ../XQwt/3rdparty/qwt/src/qwt_plot_renderer.cpp \ 314 | ../XQwt/3rdparty/qwt/src/qwt_plot_rescaler.cpp \ 315 | ../XQwt/3rdparty/qwt/src/qwt_plot_scaleitem.cpp \ 316 | ../XQwt/3rdparty/qwt/src/qwt_plot_seriesitem.cpp \ 317 | ../XQwt/3rdparty/qwt/src/qwt_plot_shapeitem.cpp \ 318 | ../XQwt/3rdparty/qwt/src/qwt_plot_spectrocurve.cpp \ 319 | ../XQwt/3rdparty/qwt/src/qwt_plot_spectrogram.cpp \ 320 | ../XQwt/3rdparty/qwt/src/qwt_plot_svgitem.cpp \ 321 | ../XQwt/3rdparty/qwt/src/qwt_plot_textlabel.cpp \ 322 | ../XQwt/3rdparty/qwt/src/qwt_plot_tradingcurve.cpp \ 323 | ../XQwt/3rdparty/qwt/src/qwt_plot_xml.cpp \ 324 | ../XQwt/3rdparty/qwt/src/qwt_plot_zoneitem.cpp \ 325 | ../XQwt/3rdparty/qwt/src/qwt_plot_zoomer.cpp \ 326 | ../XQwt/3rdparty/qwt/src/qwt_point_3d.cpp \ 327 | ../XQwt/3rdparty/qwt/src/qwt_point_data.cpp \ 328 | ../XQwt/3rdparty/qwt/src/qwt_point_mapper.cpp \ 329 | ../XQwt/3rdparty/qwt/src/qwt_point_polar.cpp \ 330 | ../XQwt/3rdparty/qwt/src/qwt_raster_data.cpp \ 331 | ../XQwt/3rdparty/qwt/src/qwt_round_scale_draw.cpp \ 332 | ../XQwt/3rdparty/qwt/src/qwt_sampling_thread.cpp \ 333 | ../XQwt/3rdparty/qwt/src/qwt_scale_div.cpp \ 334 | ../XQwt/3rdparty/qwt/src/qwt_scale_draw.cpp \ 335 | ../XQwt/3rdparty/qwt/src/qwt_scale_engine.cpp \ 336 | ../XQwt/3rdparty/qwt/src/qwt_scale_map.cpp \ 337 | ../XQwt/3rdparty/qwt/src/qwt_scale_widget.cpp \ 338 | ../XQwt/3rdparty/qwt/src/qwt_series_data.cpp \ 339 | ../XQwt/3rdparty/qwt/src/qwt_slider.cpp \ 340 | ../XQwt/3rdparty/qwt/src/qwt_spline.cpp \ 341 | ../XQwt/3rdparty/qwt/src/qwt_symbol.cpp \ 342 | ../XQwt/3rdparty/qwt/src/qwt_system_clock.cpp \ 343 | ../XQwt/3rdparty/qwt/src/qwt_text.cpp \ 344 | ../XQwt/3rdparty/qwt/src/qwt_text_engine.cpp \ 345 | ../XQwt/3rdparty/qwt/src/qwt_text_label.cpp \ 346 | ../XQwt/3rdparty/qwt/src/qwt_thermo.cpp \ 347 | ../XQwt/3rdparty/qwt/src/qwt_transform.cpp \ 348 | ../XQwt/3rdparty/qwt/src/qwt_wheel.cpp \ 349 | ../XQwt/3rdparty/qwt/src/qwt_widget_overlay.cpp \ 350 | ../XShortcuts/dialogshortcuts.cpp \ 351 | ../XShortcuts/xshortcuts.cpp \ 352 | ../XShortcuts/xshortcutsdialog.cpp \ 353 | ../XShortcuts/xshortcutstscrollarea.cpp \ 354 | ../XShortcuts/xshortcutswidget.cpp \ 355 | dialogabout.cpp \ 356 | dialogoptions.cpp \ 357 | guimainwindow.cpp \ 358 | main_gui.cpp 359 | 360 | 361 | -------------------------------------------------------------------------------- /gui_source/guimainwindow.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2019-2024 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 "guimainwindow.h" 22 | 23 | #include "ui_guimainwindow.h" 24 | 25 | GuiMainWindow::GuiMainWindow(QWidget *pParent) : QMainWindow(pParent), ui(new Ui::GuiMainWindow) 26 | { 27 | ui->setupUi(this); 28 | #ifdef USE_YARA 29 | XYara::initialize(); 30 | #endif 31 | g_pFile = nullptr; 32 | g_pTempFile = nullptr; 33 | g_pXInfo = nullptr; 34 | 35 | ui->stackedWidget->setCurrentIndex(0); 36 | 37 | setWindowTitle(XOptions::getTitle(X_APPLICATIONDISPLAYNAME, X_APPLICATIONVERSION)); 38 | 39 | setAcceptDrops(true); 40 | 41 | g_xOptions.setName(X_OPTIONSFILE); 42 | 43 | g_xOptions.addID(XOptions::ID_VIEW_STYLE, "Fusion"); 44 | g_xOptions.addID(XOptions::ID_VIEW_QSS, ""); 45 | g_xOptions.addID(XOptions::ID_VIEW_LANG, "System"); 46 | g_xOptions.addID(XOptions::ID_VIEW_FONT, ""); 47 | g_xOptions.addID(XOptions::ID_VIEW_STAYONTOP, false); 48 | g_xOptions.addID(XOptions::ID_VIEW_SHOWLOGO, false); 49 | g_xOptions.addID(XOptions::ID_FILE_SAVELASTDIRECTORY, true); 50 | g_xOptions.addID(XOptions::ID_FILE_SAVEBACKUP, true); 51 | g_xOptions.addID(XOptions::ID_FILE_SAVERECENTFILES, true); 52 | 53 | #ifdef Q_OS_WIN 54 | g_xOptions.addID(XOptions::ID_FILE_CONTEXT, "*"); 55 | #endif 56 | 57 | DIEOptionsWidget::setDefaultValues(&g_xOptions); 58 | SearchSignaturesOptionsWidget::setDefaultValues(&g_xOptions); 59 | XHexViewOptionsWidget::setDefaultValues(&g_xOptions); 60 | XDisasmViewOptionsWidget::setDefaultValues(&g_xOptions); 61 | XOnlineToolsOptionsWidget::setDefaultValues(&g_xOptions); 62 | XInfoDBOptionsWidget::setDefaultValues(&g_xOptions); 63 | #ifdef USE_YARA 64 | g_xOptions.addID(XOptions::ID_SCAN_YARARULESPATH, "$data/yara_rules"); 65 | #endif 66 | g_xOptions.load(); 67 | 68 | g_xShortcuts.setName(X_SHORTCUTSFILE); 69 | g_xShortcuts.setNative(g_xOptions.isNative()); 70 | 71 | // TODO add open file 72 | // TODO exit 73 | // TODO full screen 74 | 75 | g_xShortcuts.addGroup(XShortcuts::GROUPID_STRINGS); 76 | g_xShortcuts.addGroup(XShortcuts::GROUPID_SIGNATURE); 77 | g_xShortcuts.addGroup(XShortcuts::GROUPID_HEX); 78 | g_xShortcuts.addGroup(XShortcuts::GROUPID_DISASM); 79 | 80 | g_xShortcuts.load(); 81 | 82 | ui->widgetViewer->setGlobal(&g_xShortcuts, &g_xOptions); 83 | 84 | connect(&g_xOptions, SIGNAL(openFile(QString)), this, SLOT(processFile(QString))); 85 | connect(&g_xOptions, SIGNAL(errorMessage(QString)), this, SLOT(errorMessageSlot(QString))); 86 | 87 | createMenus(); 88 | 89 | adjustWindow(); 90 | 91 | if (QCoreApplication::arguments().count() > 1) { 92 | QString sFileName = QCoreApplication::arguments().at(1); 93 | 94 | processFile(sFileName); 95 | } 96 | } 97 | 98 | GuiMainWindow::~GuiMainWindow() 99 | { 100 | closeCurrentFile(); 101 | g_xOptions.save(); 102 | g_xShortcuts.save(); 103 | 104 | DialogXInfoDBTransferProcess::saveDatabase(g_pXInfo); 105 | 106 | delete ui; 107 | #ifdef USE_YARA 108 | XYara::finalize(); 109 | #endif 110 | } 111 | 112 | void GuiMainWindow::createMenus() 113 | { 114 | QMenu *pMenuFile = new QMenu(tr("File"), ui->menubar); 115 | QMenu *pMenuTools = new QMenu(tr("Tools"), ui->menubar); 116 | QMenu *pMenuHelp = new QMenu(tr("Help"), ui->menubar); 117 | 118 | ui->menubar->addAction(pMenuFile->menuAction()); 119 | ui->menubar->addAction(pMenuTools->menuAction()); 120 | ui->menubar->addAction(pMenuHelp->menuAction()); 121 | 122 | QAction *pActionOpen = new QAction(tr("Open"), this); 123 | QAction *pActionClose = new QAction(tr("Close"), this); 124 | QAction *pActionExit = new QAction(tr("Exit"), this); 125 | QAction *pActionOptions = new QAction(tr("Options"), this); 126 | QAction *pActionAbout = new QAction(tr("About"), this); 127 | QAction *pActionShortcuts = new QAction(tr("Shortcuts"), this); 128 | QAction *pActionDemangle = new QAction(tr("Demangle"), this); 129 | 130 | pMenuFile->addAction(pActionOpen); 131 | pMenuFile->addMenu(g_xOptions.createRecentFilesMenu(this)); 132 | pMenuFile->addAction(pActionClose); 133 | pMenuFile->addAction(pActionExit); 134 | pMenuTools->addAction(pActionDemangle); 135 | pMenuTools->addAction(pActionShortcuts); 136 | pMenuTools->addAction(pActionOptions); 137 | pMenuHelp->addAction(pActionAbout); 138 | 139 | connect(pActionOpen, SIGNAL(triggered()), this, SLOT(actionOpenSlot())); 140 | connect(pActionClose, SIGNAL(triggered()), this, SLOT(actionCloseSlot())); 141 | connect(pActionExit, SIGNAL(triggered()), this, SLOT(actionExitSlot())); 142 | connect(pActionOptions, SIGNAL(triggered()), this, SLOT(actionOptionsSlot())); 143 | connect(pActionAbout, SIGNAL(triggered()), this, SLOT(actionAboutSlot())); 144 | connect(pActionShortcuts, SIGNAL(triggered()), this, SLOT(actionShortcutsSlot())); 145 | connect(pActionDemangle, SIGNAL(triggered()), this, SLOT(actionDemangleSlot())); 146 | } 147 | 148 | void GuiMainWindow::actionOpenSlot() 149 | { 150 | QString sDirectory = g_xOptions.getLastDirectory(); 151 | 152 | QString sFileName = QFileDialog::getOpenFileName(this, tr("Open file") + QString("..."), sDirectory, tr("All files") + QString(" (*)")); 153 | 154 | if (!sFileName.isEmpty()) { 155 | processFile(sFileName); 156 | } 157 | } 158 | 159 | void GuiMainWindow::actionCloseSlot() 160 | { 161 | closeCurrentFile(); 162 | } 163 | 164 | void GuiMainWindow::actionExitSlot() 165 | { 166 | this->close(); 167 | } 168 | 169 | void GuiMainWindow::actionOptionsSlot() 170 | { 171 | DialogOptions dialogOptions(this, &g_xOptions, XOptions::GROUPID_FILE); 172 | dialogOptions.exec(); 173 | 174 | adjustWindow(); 175 | } 176 | 177 | void GuiMainWindow::actionAboutSlot() 178 | { 179 | DialogAbout dialogAbout(this); 180 | dialogAbout.exec(); 181 | } 182 | 183 | void GuiMainWindow::adjustWindow() 184 | { 185 | ui->widgetViewer->adjustView(); 186 | 187 | g_xOptions.adjustWindow(this); 188 | 189 | if (g_xOptions.isShowLogo()) { 190 | ui->labelLogo->show(); 191 | } else { 192 | ui->labelLogo->hide(); 193 | } 194 | } 195 | 196 | void GuiMainWindow::processFile(const QString &sFileName) 197 | { 198 | bool bIsFile = XBinary::isFileExists(sFileName); 199 | bool bIsDirectory = XBinary::isDirectoryExists(sFileName); 200 | 201 | QString sTitle = sFileName; 202 | 203 | if ((sFileName != "") && (bIsFile || bIsDirectory)) { 204 | QIODevice *pOpenDevice = nullptr; 205 | 206 | g_xOptions.setLastFileName(sFileName); 207 | 208 | closeCurrentFile(); 209 | 210 | if (bIsFile) { 211 | g_pFile = new QFile; 212 | g_pXInfo = new XInfoDB; 213 | 214 | g_pFile->setFileName(sFileName); 215 | 216 | if (!g_pFile->open(QIODevice::ReadWrite)) { 217 | if (!g_pFile->open(QIODevice::ReadOnly)) { 218 | closeCurrentFile(); 219 | } 220 | } 221 | 222 | pOpenDevice = g_pFile; 223 | } 224 | 225 | QSet ftArchiveAvailable; 226 | 227 | ftArchiveAvailable.insert(XBinary::FT_AR); 228 | 229 | if (XArchives::isArchiveOpenValid(g_pFile, ftArchiveAvailable) || bIsDirectory) { 230 | bool bError = false; 231 | 232 | QSet ftOpenAvailable; 233 | 234 | ftOpenAvailable.insert(XBinary::FT_ELF); 235 | ftOpenAvailable.insert(XBinary::FT_ELF32); 236 | ftOpenAvailable.insert(XBinary::FT_ELF64); 237 | 238 | FW_DEF::OPTIONS options = {}; 239 | options.sTitle = sFileName; 240 | options.bFilter = true; 241 | options.bNoWindowOpen = true; 242 | 243 | DialogArchive dialogArchive(this); 244 | dialogArchive.setGlobal(&g_xShortcuts, &g_xOptions); 245 | 246 | if (bIsFile) { 247 | dialogArchive.setDevice(g_pFile, XBinary::FT_UNKNOWN, options, ftOpenAvailable); 248 | } else if (bIsDirectory) { 249 | dialogArchive.setDirectory(sFileName, options, ftOpenAvailable); 250 | } 251 | 252 | if (dialogArchive.exec() == QDialog::Accepted) { 253 | QString sRecordName = dialogArchive.getCurrentRecordFileName(); 254 | 255 | if (bIsFile) { 256 | g_pTempFile = new QTemporaryFile; 257 | g_pTempFile->open(); 258 | 259 | if (XArchives::decompressToFile(XBinary::getDeviceFileName(g_pFile), sRecordName, g_pTempFile->fileName())) { 260 | pOpenDevice = g_pTempFile; 261 | } else { 262 | bError = true; 263 | } 264 | } else { 265 | // Directory 266 | g_pFile = new QFile; 267 | sTitle = sRecordName; 268 | 269 | g_pFile->setFileName(sRecordName); 270 | 271 | if (!g_pFile->open(QIODevice::ReadWrite)) { 272 | if (!g_pFile->open(QIODevice::ReadOnly)) { 273 | closeCurrentFile(); 274 | } 275 | } 276 | 277 | pOpenDevice = g_pFile; 278 | } 279 | } else { 280 | bError = true; 281 | } 282 | 283 | if (bError) { 284 | close(); 285 | return; 286 | } 287 | } 288 | 289 | if (pOpenDevice) { 290 | XELF elf(pOpenDevice); 291 | if (elf.isValid(pOpenDevice)) { 292 | g_pXInfo->setData(g_pFile, elf.getFileType()); 293 | 294 | ui->stackedWidget->setCurrentIndex(1); 295 | g_formatOptions.bIsImage = false; 296 | g_formatOptions.nImageBase = -1; 297 | g_formatOptions.nStartType = SMACH::TYPE_INFO; 298 | ui->widgetViewer->setGlobal(&g_xShortcuts, &g_xOptions); 299 | ui->widgetViewer->setData(pOpenDevice, g_formatOptions, 0, 0, 0); 300 | ui->widgetViewer->setXInfoDB(g_pXInfo); 301 | 302 | ui->widgetViewer->reload(); 303 | 304 | adjustWindow(); 305 | 306 | setWindowTitle(sTitle); 307 | } else { 308 | QMessageBox::critical(this, tr("Error"), tr("It is not a valid file")); 309 | } 310 | } else { 311 | QMessageBox::critical(this, tr("Error"), tr("Cannot open file")); 312 | } 313 | } else { 314 | QMessageBox::critical(this, tr("Error"), tr("Cannot open file")); 315 | } 316 | } 317 | 318 | void GuiMainWindow::closeCurrentFile() 319 | { 320 | if (g_pXInfo) { 321 | delete g_pXInfo; 322 | g_pXInfo = nullptr; 323 | } 324 | 325 | if (g_pFile) { 326 | g_pFile->close(); 327 | delete g_pFile; 328 | g_pFile = nullptr; 329 | } 330 | 331 | if (g_pTempFile) { 332 | g_pTempFile->close(); 333 | delete g_pTempFile; 334 | g_pTempFile = nullptr; 335 | } 336 | 337 | ui->stackedWidget->setCurrentIndex(0); 338 | ui->widgetViewer->cleanup(); 339 | 340 | setWindowTitle(XOptions::getTitle(X_APPLICATIONDISPLAYNAME, X_APPLICATIONVERSION)); 341 | } 342 | 343 | void GuiMainWindow::errorMessageSlot(const QString &sText) 344 | { 345 | QMessageBox::critical(this, tr("Error"), sText); 346 | } 347 | 348 | void GuiMainWindow::dragEnterEvent(QDragEnterEvent *pEvent) 349 | { 350 | pEvent->acceptProposedAction(); 351 | } 352 | 353 | void GuiMainWindow::dragMoveEvent(QDragMoveEvent *pEvent) 354 | { 355 | pEvent->acceptProposedAction(); 356 | } 357 | 358 | void GuiMainWindow::dropEvent(QDropEvent *pEvent) 359 | { 360 | const QMimeData *mimeData = pEvent->mimeData(); 361 | 362 | if (mimeData->hasUrls()) { 363 | QList urlList = mimeData->urls(); 364 | 365 | if (urlList.count()) { 366 | QString sFileName = urlList.at(0).toLocalFile(); 367 | 368 | sFileName = XBinary::convertFileName(sFileName); 369 | 370 | processFile(sFileName); 371 | } 372 | } 373 | } 374 | 375 | void GuiMainWindow::actionShortcutsSlot() 376 | { 377 | DialogShortcuts dialogShortcuts(this); 378 | 379 | dialogShortcuts.setData(&g_xShortcuts); 380 | 381 | dialogShortcuts.exec(); 382 | 383 | adjustWindow(); 384 | } 385 | 386 | void GuiMainWindow::actionDemangleSlot() 387 | { 388 | DialogDemangle dialogDemangle(this); 389 | 390 | dialogDemangle.exec(); 391 | } 392 | -------------------------------------------------------------------------------- /gui_source/guimainwindow.h: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2019-2024 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 | #include 27 | #include 28 | 29 | #include "../global.h" 30 | #include "dialogabout.h" 31 | #include "dialogarchive.h" 32 | #include "dialogoptions.h" 33 | #include "dialogshortcuts.h" 34 | #include "elfwidget.h" 35 | #ifdef USE_YARA 36 | #include "xyara.h" 37 | #endif 38 | 39 | namespace Ui { 40 | class GuiMainWindow; 41 | } 42 | 43 | class GuiMainWindow : public QMainWindow { 44 | Q_OBJECT 45 | 46 | public: 47 | explicit GuiMainWindow(QWidget *pParent = nullptr); 48 | ~GuiMainWindow(); 49 | 50 | private slots: 51 | void createMenus(); 52 | void actionOpenSlot(); 53 | void actionCloseSlot(); 54 | void actionExitSlot(); 55 | void actionDemangleSlot(); 56 | void actionShortcutsSlot(); 57 | void actionOptionsSlot(); 58 | void actionAboutSlot(); 59 | void adjustWindow(); 60 | void processFile(const QString &sFileName); 61 | void closeCurrentFile(); 62 | void errorMessageSlot(const QString &sText); 63 | 64 | protected: 65 | void dragEnterEvent(QDragEnterEvent *pEvent) override; 66 | void dragMoveEvent(QDragMoveEvent *pEvent) override; 67 | void dropEvent(QDropEvent *pEvent) override; 68 | 69 | private: 70 | Ui::GuiMainWindow *ui; 71 | XOptions g_xOptions; 72 | XShortcuts g_xShortcuts; 73 | FW_DEF::OPTIONS g_formatOptions; 74 | 75 | QFile *g_pFile; 76 | QTemporaryFile *g_pTempFile; 77 | XInfoDB *g_pXInfo; 78 | }; 79 | 80 | #endif // GUIMAINWINDOW_H 81 | -------------------------------------------------------------------------------- /gui_source/guimainwindow.ui: -------------------------------------------------------------------------------- 1 | 2 | 3 | GuiMainWindow 4 | 5 | 6 | 7 | 0 8 | 0 9 | 1250 10 | 596 11 | 12 | 13 | 14 | MainWindow 15 | 16 | 17 | 18 | 19 | 0 20 | 21 | 22 | 0 23 | 24 | 25 | 0 26 | 27 | 28 | 0 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 0 39 | 0 40 | 41 | 42 | 43 | 44 | 45 | 46 | :/images/about.png 47 | 48 | 49 | Qt::AlignCenter 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 0 59 | 60 | 61 | 0 62 | 63 | 64 | 0 65 | 66 | 67 | 0 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 0 82 | 0 83 | 1250 84 | 22 85 | 86 | 87 | 88 | 89 | 90 | 91 | ELFWidget 92 | QWidget 93 |
elfwidget.h
94 | 1 95 |
96 |
97 | 98 | 99 | 100 | 101 |
102 | -------------------------------------------------------------------------------- /gui_source/icons/Action.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Action.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Add.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Add.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Address.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Address.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/All.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/All.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Backward.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Backward.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Backwards.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Backwards.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Binary.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Binary.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Bookmark.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Bookmark.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/BreakpointDisabled.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/BreakpointDisabled.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/BreakpointEnabled.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/BreakpointEnabled.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Certificate.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Certificate.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Code.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Code.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Convertor.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Convertor.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Copy.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Copy.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/DIE.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/DIE.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Data.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Data.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Debug.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Debug.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Demangle.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Demangle.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Disasm.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Disasm.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/DisassemblyWindow.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/DisassemblyWindow.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/DotNet.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/DotNet.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Download.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Download.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Edit.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Edit.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Entropy.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Entropy.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Entry.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Entry.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Exception.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Exception.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Exit.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Exit.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Export.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Export.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Extract.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Extract.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/File.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/File.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Follow.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Follow.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Forward.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Forward.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Forwards.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Forwards.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Function.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Function.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Goto.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Goto.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Hash.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Hash.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Header.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Header.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Image.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Image.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Import.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Import.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Info.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Info.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Inspector.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Inspector.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Library.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Library.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/List.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/List.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Manifest.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Manifest.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/MemoryMap.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/MemoryMap.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Metadata.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Metadata.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Mime.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Mime.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/NFD.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/NFD.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Next.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Next.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Note.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Note.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Offset.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Offset.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Open.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Open.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Openfile.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Openfile.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Option.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Option.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Options.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Options.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Overlay.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Overlay.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Patch.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Patch.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Path.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Path.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Reference.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Reference.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Refresh.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Refresh.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Reloc.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Reloc.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Remove.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Remove.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Resize.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Resize.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Resource.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Resource.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Save.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Save.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Script.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Script.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Search.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Search.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Section.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Section.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Segment.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Segment.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Select.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Select.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Shortcut.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Shortcut.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Signature.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Signature.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Size.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Size.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/String.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/String.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Structs.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Structs.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Symbol.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Symbol.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/TLS.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/TLS.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Table.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Table.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Tool.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Tool.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Value.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Value.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Version.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Version.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Virustotal.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Virustotal.16.16.png -------------------------------------------------------------------------------- /gui_source/icons/Yara.16.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/icons/Yara.16.16.png -------------------------------------------------------------------------------- /gui_source/images/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/gui_source/images/about.png -------------------------------------------------------------------------------- /gui_source/main_gui.cpp: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2019-2024 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 | 26 | int main(int argc, char *argv[]) 27 | { 28 | #if QT_VERSION >= QT_VERSION_CHECK(5, 6, 0) 29 | QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); 30 | #endif 31 | #ifdef Q_OS_MAC 32 | #ifndef QT_DEBUG 33 | QCoreApplication::setLibraryPaths(QStringList(QString(argv[0]).remove("MacOS/XELFViewer") + "PlugIns")); 34 | #endif 35 | #endif 36 | QCoreApplication::setOrganizationName(X_ORGANIZATIONNAME); 37 | QCoreApplication::setOrganizationDomain(X_ORGANIZATIONDOMAIN); 38 | QCoreApplication::setApplicationName(X_APPLICATIONNAME); 39 | QCoreApplication::setApplicationVersion(X_APPLICATIONVERSION); 40 | 41 | if ((argc == 2) && ((QString(argv[1]) == "--version") || (QString(argv[1]) == "-v"))) { 42 | QString sInfo = QString("%1 v%2").arg(X_APPLICATIONDISPLAYNAME, X_APPLICATIONVERSION); 43 | printf("%s\n", sInfo.toUtf8().data()); 44 | 45 | return 0; 46 | } 47 | 48 | QApplication a(argc, argv); 49 | 50 | #ifdef Q_OS_LINUX 51 | #if QT_VERSION >= QT_VERSION_CHECK(5, 7, 0) 52 | a.setDesktopFileName("xelfviewer"); 53 | #endif 54 | #endif 55 | // TODO set main image 56 | 57 | XOptions xOptions; 58 | 59 | xOptions.setName(X_OPTIONSFILE); 60 | 61 | xOptions.addID(XOptions::ID_VIEW_FONT, ""); 62 | xOptions.addID(XOptions::ID_VIEW_LANG, "System"); 63 | xOptions.addID(XOptions::ID_VIEW_QSS); 64 | xOptions.addID(XOptions::ID_VIEW_STYLE, "Fusion"); 65 | 66 | xOptions.load(); 67 | 68 | XOptions::adjustApplicationView(X_APPLICATIONNAME, &xOptions); 69 | 70 | GuiMainWindow w; 71 | w.show(); 72 | 73 | return a.exec(); 74 | } 75 | -------------------------------------------------------------------------------- /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/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 | -------------------------------------------------------------------------------- /icons/main.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/icons/main.icns -------------------------------------------------------------------------------- /icons/main.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/icons/main.ico -------------------------------------------------------------------------------- /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/AdamHenault.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/AdamHenault.png -------------------------------------------------------------------------------- /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/AdricNet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/AdricNet.png -------------------------------------------------------------------------------- /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/AliHadi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/AliHadi.png -------------------------------------------------------------------------------- /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/AndersonLeite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/AndersonLeite.png -------------------------------------------------------------------------------- /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/Bartosz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/Bartosz.png -------------------------------------------------------------------------------- /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/Dan0xE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/Dan0xE.png -------------------------------------------------------------------------------- /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/DavClark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/DavClark.png -------------------------------------------------------------------------------- /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/DavidZimmer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/DavidZimmer.png -------------------------------------------------------------------------------- /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/DuncanOgilvie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/DuncanOgilvie.png -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /images/thanks/FernandoMerces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/FernandoMerces.png -------------------------------------------------------------------------------- /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/FilipNavara.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/FilipNavara.png -------------------------------------------------------------------------------- /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/FrenchYeti.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/FrenchYeti.png -------------------------------------------------------------------------------- /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/GiladReich.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/GiladReich.png -------------------------------------------------------------------------------- /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/IntegralTech.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/IntegralTech.png -------------------------------------------------------------------------------- /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/JasonJackTan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/JasonJackTan.png -------------------------------------------------------------------------------- /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/JoaoVitor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/JoaoVitor.png -------------------------------------------------------------------------------- /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/LeandroFroes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/LeandroFroes.png -------------------------------------------------------------------------------- /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/SpriteOvO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/SpriteOvO.png -------------------------------------------------------------------------------- /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/Xylit0l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/Xylit0l.png -------------------------------------------------------------------------------- /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/clayne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/clayne.png -------------------------------------------------------------------------------- /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/elastic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/elastic.png -------------------------------------------------------------------------------- /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/fr0zenbag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/fr0zenbag.png -------------------------------------------------------------------------------- /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/hmstk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/hmstk.png -------------------------------------------------------------------------------- /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/miT231-spec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/miT231-spec.png -------------------------------------------------------------------------------- /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/misonothx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/misonothx.png -------------------------------------------------------------------------------- /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/phithon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/phithon.png -------------------------------------------------------------------------------- /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/rmusser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/rmusser.png -------------------------------------------------------------------------------- /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/sapdragon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/images/thanks/sapdragon.png -------------------------------------------------------------------------------- /install.iss: -------------------------------------------------------------------------------- 1 | #define MyAppName "XELFViewer" 2 | #define MyAppVersion "0.06" 3 | #define MyAppPublisher "NTInfo" 4 | #define MyAppURL "ntinfo.biz" 5 | #define MyAppExeName "xelfviewer.exe" 6 | 7 | [Setup] 8 | AppId={{E175FE98-9EAA-446B-80DE-389DA7E1C97B} 9 | AppName={#MyAppName} 10 | AppVersion={#MyAppVersion} 11 | AppPublisher={#MyAppPublisher} 12 | AppPublisherURL={#MyAppURL} 13 | AppSupportURL={#MyAppURL} 14 | AppUpdatesURL={#MyAppURL} 15 | DefaultDirName={userpf}\{#MyAppName} 16 | DefaultGroupName={#MyAppName} 17 | OutputDir=release 18 | OutputBaseFilename=install 19 | Compression=lzma 20 | SolidCompression=yes 21 | LicenseFile=LICENSE 22 | PrivilegesRequired=lowest 23 | 24 | [Languages] 25 | Name: "english"; MessagesFile: "compiler:Default.isl" 26 | 27 | [Tasks] 28 | Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; 29 | 30 | [Files] 31 | Source: "release\xapkdetector\*"; DestDir: "{app}\"; Flags: ignoreversion recursesubdirs createallsubdirs 32 | 33 | [Icons] 34 | Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" 35 | Name: "{group}\Uninstall"; Filename: "{app}\unins000.exe" 36 | Name: "{userdesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon 37 | 38 | [InstallDelete] 39 | Type: filesandordirs; Name: {app}\*; 40 | 41 | [Run] 42 | Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall 43 | 44 | -------------------------------------------------------------------------------- /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/lib/bin 11 | mkdir -p $X_PREFIX/lib/share/applications 12 | mkdir -p $X_PREFIX/lib/share/icons 13 | mkdir -p $X_PREFIX/lib/xelfviewer 14 | mkdir -p $X_PREFIX/lib/xelfviewer/signatures 15 | 16 | cp -f $X_SOURCE_PATH/build/release/xelfviewer $X_PREFIX/bin/ 17 | cp -f $X_SOURCE_PATH/LINUX/xelfviewer.desktop $X_PREFIX/share/applications/ 18 | cp -Rf $X_SOURCE_PATH/LINUX/hicolor/ $X_PREFIX/share/icons/ 19 | cp -Rf $X_SOURCE_PATH/XStyles/qss/ $X_PREFIX/lib/xelfviewer/ 20 | cp -f $X_SOURCE_PATH/signatures/crypto.db $X_PREFIX/lib/xelfviewer/signatures/ 21 | cp -Rf $X_SOURCE_PATH/XInfoDB/info/ $X_PREFIX/lib/xelfviewer/ 22 | cp -Rf $X_SOURCE_PATH/Detect-It-Easy/db/ $X_PREFIX/lib/xelfviewer/ 23 | cp -Rf $X_SOURCE_PATH/images/ $X_PREFIX/lib/xelfviewer/ 24 | -------------------------------------------------------------------------------- /mascots/xelfviewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/horsicq/XELFViewer/530a3db42038fe30eecc2e10c73524c6047f1536/mascots/xelfviewer.png -------------------------------------------------------------------------------- /release_version.txt: -------------------------------------------------------------------------------- 1 | 0.06 -------------------------------------------------------------------------------- /xelfviewer_source.pro: -------------------------------------------------------------------------------- 1 | TEMPLATE = subdirs 2 | 3 | SUBDIRS += build_libs 4 | SUBDIRS += gui_source 5 | 6 | isEmpty(PREFIX) { 7 | PREFIX = /usr 8 | } 9 | 10 | target.path = $PWD 11 | target.commands = bash -x "$$PWD/install.sh $$PREFIX" 12 | INSTALLS += target 13 | --------------------------------------------------------------------------------