-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathformatswidget.h
153 lines (143 loc) · 5.26 KB
/
formatswidget.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
/* Copyright (c) 2020-2024 hors<horsicq@gmail.com>
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
#ifndef FORMATSWIDGET_H
#define FORMATSWIDGET_H
#include "dialogarchive.h"
#include "dialogbinary.h"
#include "dialogdex.h"
#include "dialogelf.h"
#include "dialogentropy.h"
#include "dialoghash.h"
#include "dialoghexview.h"
#include "dialogle.h"
#include "dialogmach.h"
#include "dialogmachofat.h"
#include "dialogmemorymap.h"
#include "dialogmime.h"
#include "dialogmsdos.h"
#include "dialogmultidisasm.h"
#include "dialogne.h"
#include "dialogpe.h"
#include "dialogsearchsignatures.h"
#include "dialogsearchstrings.h"
#include "dialogtextinfo.h"
#include "dialogxextractor.h"
#include "dialogxfileinfo.h"
#include "dialogxvirustotal.h"
#include "xformats.h"
#include "xshortcuts.h"
namespace Ui {
class FormatsWidget;
}
class FormatsWidget : public XShortcutsWidget {
Q_OBJECT
enum TABINFO {
TABINFO_BINARY = 0,
TABINFO_ARCHIVE,
TABINFO_COM,
TABINFO_DEX,
TABINFO_NE,
TABINFO_LE,
TABINFO_MSDOS,
TABINFO_PE,
TABINFO_ELF,
TABINFO_MACH,
};
public:
explicit FormatsWidget(QWidget *pParent = nullptr);
~FormatsWidget();
void setName(const QString &sFileName, bool bScan);
void setGlobal(XShortcuts *pShortcuts, XOptions *pXOptions);
virtual void adjustView();
void setAdvanced(bool bState);
private slots:
void on_comboBoxFileType_currentIndexChanged(int nIndex);
void on_comboBoxScanEngine_currentIndexChanged(int nIndex);
void reload();
void scan();
void on_pushButtonEntryPoint_clicked();
void on_pushButtonMemoryMap_clicked();
void on_pushButtonPE_clicked();
void on_pushButtonPEExport_clicked();
void on_pushButtonPEImport_clicked();
void on_pushButtonPEResources_clicked();
void on_pushButtonPEOverlay_clicked();
void on_pushButtonPENET_clicked();
void on_pushButtonPESections_clicked();
void on_pushButtonPEManifest_clicked();
void on_pushButtonPEVersion_clicked();
void on_pushButtonMSDOSOverlay_clicked();
void on_pushButtonMSDOS_clicked();
void on_pushButtonPETLS_clicked();
void on_pushButtonELF_clicked();
void on_pushButtonELFSections_clicked();
void on_pushButtonELFPrograms_clicked();
void on_pushButtonLE_clicked();
void on_pushButtonNE_clicked();
void on_pushButtonMACH_clicked();
void on_pushButtonMACHSegments_clicked();
void on_pushButtonMACHSections_clicked();
void on_pushButtonMACHCommands_clicked();
void on_pushButtonMACHLibraries_clicked();
void on_pushButtonDEX_clicked();
void on_pushButtonArchive_clicked();
void on_pushButtonBinary_clicked();
void showType(SBINARY::TYPE type);
static qint32 convertType(XBinary::FT fileType, SBINARY::TYPE type);
void showMSDOS(SMSDOS::TYPE type);
void showLE(SLE::TYPE type);
void showNE(SNE::TYPE type);
void showPE(SPE::TYPE type);
void showELF(SELF::TYPE type);
void showMACH(SMACH::TYPE type);
void showDEX(SDEX::TYPE type);
void showBinary(SBINARY::TYPE type);
XBinary::FT getCurrentFileType();
QString getScanEngine(const QString &sDefault);
void adjustScanTab(const QString &sIndex);
void onScanStarted();
void onScanFinished();
void on_pushButtonFileInfo_clicked();
void on_pushButtonMIME_clicked();
void on_pushButtonStrings_clicked();
void on_pushButtonSignatures_clicked();
void on_pushButtonHex_clicked();
void on_pushButtonEntropy_clicked();
void on_pushButtonVirusTotal_clicked();
void on_pushButtonHash_clicked();
void on_pushButtonExtractor_clicked();
void on_pushButtonSearch_clicked();
void on_pushButtonUnpack_clicked();
void on_pushButtonFiles_clicked();
void on_pushButtonYARA_clicked();
void on_pushButtonDisasm_clicked();
void on_pushButtonVisualization_clicked();
void _showYaraInfo();
void on_pushButtonMANIFESTMF_clicked();
void on_pushButtonAndroidManifest_clicked();
protected:
virtual void registerShortcuts(bool bState);
private:
Ui::FormatsWidget *ui;
QString g_sFileName;
bool g_bScan;
};
#endif // FORMATSWIDGET_H