PE Malware Analysis
PE Malware Analysis
ABSTRACT
Malware or malicious software is an intrusive software that infects or performs harmful
activities on a computer under attack. Malware has been a threat to individuals and
organizations since the dawn of computers and the research community has been
struggling to develop efficient methods to detect malware. In this work, we present
a static malware detection system to detect Portable Executable (PE) malware in
Windows environment and classify them as benign or malware with high accuracy.
First, we collect a total of 27,920 Windows PE malware samples divided into six
categories and create a new dataset by extracting four types of information including
the list of imported DLLs and API functions called by these samples, values of 52
attributes from PE Header and 100 attributes of PE Section. We also amalgamate this
information to create two integrated feature sets. Second, we apply seven machine
learning models; gradient boosting, decision tree, random forest, support vector
machine, K-nearest neighbor, naive Bayes, and nearest centroid, and three ensemble
learning techniques including Majority Voting, Stack Generalization, and AdaBoost
to classify the malware. Third, to further improve the performance of our malware
Submitted 23 November 2022 detection system, we also deploy two dimensionality reduction techniques: Information
Accepted 9 March 2023 Gain and Principal Component Analysis. We perform a number of experiments to test
Published 21 April 2023 the performance and robustness of our system on both raw and selected features and
Corresponding author show its supremacy over previous studies. By combining machine learning, ensemble
Muhammad Irfan Yousuf, learning and dimensionality reduction techniques, we construct a static malware
irfan.yousuf@uet.edu.pk,
dr.yousuf.irfan@gmail.com
detection system which achieves a detection rate of 99.5% and error rate of only 0.47%.
Academic editor
Nz Jhanjhi
Subjects Data Mining and Machine Learning, Security and Privacy
Additional Information and Keywords Static malware analysis, Windows PE, Machine learning, Multiple features
Declarations can be found on
page 23
DOI 10.7717/peerj-cs.1319 INTRODUCTION
Copyright Malicious software, commonly called malware, can be classified into viruses, worms,
2023 Yousuf et al. Trojans, spyware, ransomware, logic bomb, etc. based on their behavior and
Distributed under characteristics (Gibert, Mateu & Planes, 2020). Computer malware pose a major threat
Creative Commons CC-BY 4.0
to computer and network security. This is the reason that research on developing new
OPEN ACCESS systems to detect malware is a hot topic in data mining, machine learning, and deep
How to cite this article Yousuf MI, Anwer I, Riasat A, Zia KT, Kim S. 2023. Windows malware detection based on static analysis with
multiple features. PeerJ Comput. Sci. 9:e1319 http://doi.org/10.7717/peerj-cs.1319
learning. Our work is aimed at developing a static malware detection system to detect
Portable Executable (PE) malware using multiple features. We not only extract multiple
features from PE malware but also combine these features to create integrated features in
a bid to improve the accuracy of our malware detection system. Presumably, the multiple
and integrated features used in this work have never been considered together in detecting
malware.
Most commercial anti-virus software rely on signature-based detection of malware,
however, it is not effective against unknown malware or zero-day attacks. In the last
decade or so, the research on malware detection has focused on finding generalized and
scalable features to identify previously unknown malware and counter zero-day attacks
effectively (Guo, 2023). There are two basic types of malware analyses; static analysis and
dynamic analysis (Damaševičius et al., 2021). In static analysis, features are extracted from
the code and structure of a program without actually running it whereas in dynamic
analysis features are gathered after running the program in a virtual environment.
During the last decade, machine learning has solved many problems in different sectors
including cyber security. It is now believed that AI-powered anti-virus tools can help in
detecting zero-day attacks (Alhaidari et al., 2022). A typical machine learning workflow in
detecting malware involves data collection, data cleaning and pre-processing, building and
training models, validating, and deploying into production. In this regard, the success of
supervised machine learning models depends on two factors: (1) the amount of labeled
data used to train the model and (2) the features extracted from the malware. There have
been numerous studies (Sharma, Rama Krishna & Sahay, 2019; Chowdhury, Rahman &
Islam, 2017; Kim et al., 2021; Patidar & Khandelwal, 2019; Zhang, Kuo & Yang, 2019) on
static malware analysis using machine learning but most of these studies train their models
on one or two types of features and have their own limitations.
In this work, we propose a malware detection system for detecting Portable Executable
(PE) malware based on static analysis with multiple features. We extract four types of feature
sets and also merge them to create two additional feature sets. The research contributions
made by the authors are listed below.
1. Collection of latest samples to create a new dataset of PE malware and benign files.
2. We extract four feature sets including the list of imported DLLs and API functions
called by these samples, values of 52 attributes from the PE Header and 100 attributes
of the PE Section.
3. We merge extracted features for creating new integrated features of PE samples.
4. Comprehensive analysis and evaluation of different machine learning classifiers,
ensemble learning and feature selection techniques to maximize the malware detection
rate.
The remainder of this article is organized as follows. We discuss the some previous
studies on static malware detection in the Literature Review section. The Research Method
section describes our main approach to detect malware in Windows environment and
explains the process of data collection, feature extraction, and feature selection. We present
our empirical results in the Experimental Results section along with the evaluation criteria,
LITERATURE REVIEW
In this section, we cover previous works done on detecting malware in Windows
environment using machine learning methods. Mainly, we will cover some related works
in this field which deals with malware detection using static analysis on Windows Portable
Executables (PEs).
Several studies have applied machine learning for malware classification and detection.
The authors (Catak, Yazi & Elezaj, 2020) proposed a long short-term memory (LSTM)
method for classifying sequential data of Windows exe API calls. They also contributed
to the ongoing research on malware detection by developing a new dataset that contains
API calls made on the Windows operating system to represent the behavior of malware.
They achieved an accuracy of up to 95%. Sharma, Rama Krishna & Sahay (2019) proposed
a system based on the frequency of opcode occurrence for detecting malware. The authors
used Fisher score, information gain, gain ratio, Chi-square and symmetric uncertainty
for selecting top-20 features. They found that five machine learning methods namely
random forest, LMT, NBT, J48 Graft and REPTree detect the malware with almost 100%
accuracy. Naval et al. (2015) focus on proposing an evasion-proof solution that is not
vulnerable to system-call injection attacks. They proposed an approach that characterizes
program semantics using asymptotic equipartition property to extract information-rich
call sequences. These call sequences are further quantified to detect malicious binaries. The
results showed that the solution is effective in identifying real malware instances with 95.4%
accuracy. Tang & Qian (2019) detected malicious code based on the API call sequence. They
converted the API call sequence into a characteristic image that can represent the behavior
of the malicious code. The convolutional neural network was used to classify the malicious
code into nine families and achieved a true positive rate of 99%. The authors (Raff et al.,
2018) introduced malware detection from raw byte sequences of the entire executable file
using neural networks. In this initial work, they discussed many interesting challenges faced
in building a neural network for processing raw byte sequences. Fuyong & Tiezhu (2017)
proposed a new malware detection and classification method based on n-grams attribute
similarity. We extract all n-grams of byte codes from training samples and select the most
relevant as attributes. After calculating the average value of attributes in malware and
benign separately, we determine a test sample is malware or benign by attribute similarity.
The results of this study show that the proposed system outperforms traditional machine
learning methods. Wojnowicz et al. (2016) developed a method to quantify the extent to
which patterned variations in a fileâôs entropy signal make it suspicious. By extracting
only string and entropy features from samples, they can obtain almost 99% detection of
parasitic malware.
Zhang et al. (2020) explored function call graph vectorization representation (FCGV)
as the input feature to machine learning algorithms for classification and noted that this
representation loses some critical features of PE files due to the hash technique being
RESEARCH METHODS
In this section, we discuss our approach to detect PE malware in Windows environment.
Our approach can be divided into two phases; malware collection and malware detection.
Malware collection
We collected the data from MalwareBazaar Database (https://bazaar.abuse.ch/) using its
API. The MalwareBazaar Database offers a Comma Separated Values (CSV) file containing
the basic information such as SHA256 hash, file name, file type, and signature of all
the malware samples available in the database. It also provides an API to download the
samples using the information given in the CSV file. We wrote a small script in Python and
downloaded more than 30,000 samples of different types of malware. We targeted only
PE files in our API calls. The motivation for using PE files was arrived at by monitoring
the submissions received over different malware databases. For example, more than 26%
malware samples in the malwarebazaar database are PE malware and make it a common file
type for spreading malware. Similarly, 47.8% files submitted to Virustotal for analysis are
PE files Kumar, Kuppusamy & Aghila (2019). We discarded samples with incorrect values
of PE header and samples with code obfuscation O’Kane, Sezer & McLaughlin (2011). After
discarding unwanted samples, we have a total of 27,920 samples divided into six categories
in our dataset as described in Table 1. We also collected 1,878 benign files from various
sources including files from Windows installation. We will make this dataset public very
soon.
Feature sets
We create four feature sets from our data. Moreover, we also create two integrated feature
sets by combining these features.
Dynamic link libraries: The first set of features is a list of dynamic link libraries (or
DLLs for short) used by each Windows executable. A DLL is a library that contains
code, data, and resources that can be used by more than one program at the same time.
Windows programs use DLLs to share functionality and resources between themselves. For
example, the Comdlg32 DLL performs common dialog box related functions in Windows.
A program’s certain characteristics can be inferred from the set of DLLs it uses. Therefore,
we make a list of DLLs called by malware and benign files to help distinguish between
them.
API functions: The second set of features is a list of API (Application Program Interface)
function names called within the DLLs discovered in the first feature set. Windows APIs
are implemented through DLLs and each DLL may contain hundreds of functions in it. A
program can be distinguished from others based on the API functions it imports from a
DLL. By collecting the list of API functions, we supplement our first feature set in the hope
of further improving our ability to differentiate between benign and malware files. The list
of API functions can reveal the behavior of the program.
PE Header: PE header contains useful information about the executable. A PE file
contains a number of headers including MS-DOS Stub, COFF file header, an optional
header, etc. They contain metadata about the file itself such as the number of sections, the
size of the code, the characteristics of the file, etc. We collect the values of 52 fields of PE
Header as our third feature set as detailed in Table 2. We get 17 fields from DOS Header,
7 from File Header and 28 from the Optional Header.
PE sections: A PE file contains many sections such as executable code section (.text),
data sections (.data, .rdata, .bss), and resource section (.rsrc), etc. These sections provide a
logical and physical separation of the different parts of a program. Since different programs
need different sections depending on their functionality, therefore, collecting information
about PE sections could be useful in distinguishing files from each other. Each section in
PE has properties such as VirtualAddress, VirtualSize, SizeofRawData, etc. We collect the
values of ten properties of each of the ten sections (.text, .data, .rdata, .bss, .idata, .edata,
.rsrc, .reloc, .tls, .pdata) as our fourth feature set. In a nutshell, this feature set contains 100
features of the PE section as detailed in Table 3.
Integrated feature set1 (IFS1): We combine DLLs referred and API functions called
by a sample to create our first integrated feature set. Since both the original feature sets
contain names of the DLLs and API functions, therefore, we can simply merge them to
create an integrated feature set.
Integrated feature set2 (IFS2): We combine the PE header and section feature sets to
create our second integrated feature set as both the sets contain numeric values and hence
can be merged efficiently.
DLLs imported: We pass all the PE files, both malware and benign, to our PE extractor
and enlist the names of DLLs called by them. On average, a malware calls four DLLs whereas
a benign file calls three DLLs in this study. Overall, malware files import 531 unique DLLs
whereas benign files import 186 unique DLLs. The normalized frequency of the top 20
DLLs imported by malware and benign are given in Appendix A. (see Table A1).
To feed DLLs raw features to our classifiers, we apply a Bag-of-Words (BoW) approach
for representing the DLLs for each sample. That is, we make a large list of unique names of
the DLLs and construct a feature vector for each sample such that each index corresponds
to a specific DLL whose value could be either 1 or 0, indicating whether that DLL was called
in the file or not. The overall dimensionality, the names of DLLs in the bag, found for our
data set was 629.
API functions: We extract the names of API functions called within the DLLs extracted
above. On average, a malware calls seven API functions whereas a benign calls eight
Feature selection
The raw features are numerous especially in the case of DLLs imported and API functions
called by a sample and it is possible that some features might not contain useful information
for a machine learning model. Therefore, we applied two feature selection or dimensionality
reduction techniques namely Information Gain (IG), and principal component analysis
(PCA). By applying these feature selection techniques, we are able to reduce the number
of features in each feature set significantly. As a result, we decrease the processing time
to train and test the classifiers and possibly also improve their accuracy in detecting the
malware. The total number of features in raw feature sets and selected feature sets after
applying Information Gain and principal component analysis are given in Table 4.
EXPERIMENTAL RESULTS
Our dataset consists of a total of 29,797 PE samples, of them 27,920 are malware and
1,877 are benign or goodware. We apply seven machine learning classifiers, two feature
selection techniques, and three ensemble learning methods to detect malware as depicted
in Fig. 1. We use standard 10-fold cross-validation for training and testing our models.
It means we randomly divide our dataset into 10 smaller subsets such that nine subsets
are used for training and 1 subset is used for testing. We repeat this process 10 times for
every combination. This methodology helps evaluate the robustness of any approach to
detect malware without any a priori information. Moreover, the dataset was split into 70:30
ratio for training and testing purposes respectively, i.e., 70% data is used for training the
classifiers whereas 30% is used for testing them.
Evaluation criteria
To evaluate the performance of our system, we create a confusion matrix for each classifier.
A confusion matrix summarizes the performance of a classifier in the form of a table with
the help of four quantities namely True Positive (TP), True Negative (TN), False Positive
(FP), and False Negative (FN). It helps in measuring the accuracy, recall, precision, and
F-score of a classifier. We briefly define the metrics we used to measure the performance
of our system.
True Positive (TP): A malware classified as a malware.
True Negative (TN): A benign classified as a benign.
False Positive (FP): A benign classified as a malware.
False Negative (FN): A malware classified as a benign.
Accuracy (ACC): It calculates the correctly classified or predicted samples by the system
as the ratio of correct predictions to the total predictions.
TP + TN
ACC =
TP + TN + FP + FN
Error rate (ERR): It is calculated as the ratio of the number of incorrect predictions to the
total predictions. It is also called misclassification.
FP + FN
ERR =
TP + TN + FP + FN
Experimental setup
To validate the proposed system shown in Fig. 1, we create an experimental setup on the
Windows operating system running on AMD Ryzen 7 4800H @4.2 GHz processor and 16
GB of main memory. We use the Scikit-learn (Pedregosa et al., 2011) library of Python to
run all the experiments. It has the implementation of many classifiers and helps in splitting
the data into training and testing, 10-fold cross-validation, and comparing the performance
of different classifiers using confusion matrix and other metrics.
choose important features. The results obtained with the features selected using Information
Gain are presented in Table 6. The table shows that the performance of different classifiers
slightly decreases when compared to their performance on raw features. However, overall
the performance improves on integrated feature sets. Moreover, using selected features
we can lessen the training time significantly. We achieve the best accuracy of 99.5% and
the best F-score of 0.998 with the Stack Generalization method on IFS2 when we apply it
to the top 20% features ranked by their IG score. Similarly, the results shown in Table 7
depict that the contribution of PCA transformation slimly deteriorates the performance.
We achieve the best accuracy of 99.41% and the best F-score of 0.997 with the Stack
Generalization method on IFS2 when we apply it to the top 30% features selected by their
ROC curves
Receiver operating characteristic (ROC) curve graphically shows the performance of a
classifier at all classification thresholds. It is created by plotting Recall or True Positive Rate
(TPR) against Specificity or False Positive Rate (FPR) where Specificity is calculated as
TN
TN +FP . ROC curve depicts the discriminative ability of a binary classifier and is considered
a good metric when class imbalance might lead to accuracy paradox (Gibert, Mateu &
Planes, 2020).
Figure 2 shows the ROC curves for six classifiers on raw feature sets. It excludes the NC
classifier as we cannot compute probabilities in NC. The figure also shows the AUC or Area
Under the Curve for each ROC. Both ROC and AUC values confirm that all the classifiers
give a good performance because the feature sets help them in discriminating different
classes of malware at all thresholds. The figure also shows that the AUC values of IFS2 are
very promising and reach the maximum values of 1.00 and 0.99 for RF and GB classifiers
respectively whereas these values are 1.00 and 0.98 with the PE Header feature set. We
can see similar trends for other classifiers where the integrated feature sets improve the
discriminating ability of a classifier as its AUC values increase. Random Forest outperforms
all other classifiers on both individual and integrated features. The ROC curves on selected
features after applying IG and PCA are given in Appendix A (See Figs. A1 and A2).
values and there is no chance of having a sparse vector in training or testing. In a nutshell,
all the classifiers give high accuracy on all the features but there is more variation in IFS1
and its components compared to IFS2 and its components. The accuracy of different
classifiers on selected features after applying PCA and IG with 10-fold cross validation is
given in Appendix A. (see Fig. A3 and Fig. A4).
that IFS2 gives the best results on both raw and selected features. It is also clear from
the table that our system achieves the best accuracy of 99.50% on this set after selecting
important features using the Information Gain method. The table also highlights a very
interesting pattern. When we apply IG to select features, the accuracy of our system slightly
improves on IFS2 while it marginally decreases on IFS1. On the other side, PCA does not
seem to play its role and the accuracy of our system slightly decreases on both raw and
selected features. The table also shows that the system performs consistently better on the
PE Header feature set than other feature sets. It seems that the PE Header feature set alone
or integrated with another feature set (e.g., PE Section) is a good candidate for developing
a malware detection system for filtering zero-day malware.
Table 8 The maximum accuracy (in percentage) achieved by our system on raw feature sets and se-
lected feature sets after applying Information Gain and principal component analysis.
maximum accuracy and minimum error rate of 98.6% and 1.41% respectively with the
XGBoost model. The work Damaševičius et al. (2021) implements both machine learning
and deep learning models for Windows PE malware detection. ExtraTrees model achieves
an accuracy of 98.7% and an error rate of 1.32% on the 68-dimensional feature set of the
PE header in this work. Kim et al. (2021) first extract 54 attributes from the PE structure
and then use the top 12 most important features to classify malware. Their work achieves
a maximum accuracy of 98.7% and a minimum error rate of 1.31% using the AdaBoost
model. It is clear from Table 9 that our proposed work with an accuracy of 99.5% and
error rate of only 0.47% on integrated feature set outperforms previous works. The table
shows that the proposed system produces a very small error. In other words, the probability
of misclassification in the proposed system is much lower than in the previous systems.
We agree that in terms of accuracy the system improvement is marginal, however, when
combined with other metrics, the proposed system gives better results, especially in terms
of a very small error rate.
CONCLUSION
The work presents a static malware detection system based on mining DLLs, and API
calls from each DLL, PE Header, and PE Section and also combines the features to create
integrated features. A new dataset of a total of 27,920 PE samples is collected and the
features are extracted to feed them to seven machine learning models and three ensemble
learning techniques. Moreover, Information Gain and principal component analysis are
used to finding a reduced set of features. The empirical results show that random forest
outperforms all other classifiers while decision tree stands second. An accuracy of 99.5%
with an error rate of only 0.47% is achieved on the integrated feature set, a combination
of PE Header and PE Section. On average, the system’s accuracy is greater than 96% while
the error rate is below 3.5%. The feature set having the values of PE Header turns out to be
the best feature set and when combined with PE Section, the resulting integrated feature
set gives the maximum accuracy. Furthermore, the system surpasses the previous studies
in terms of higher accuracy and lower error rate.
As a tangible outcome, a preprocessed dataset having 27,920 malware samples is
created and available on request along with raw and integrated feature sets for comparing
future work with the proposed work. We tested the proposed malware detection system
extensively and performed multiple experiments on raw and integrated features to check its
performance. By applying two feature selection methods, seven machine learning classifiers
and three ensemble learning techniques on multiple features, we tried to bridge the gap in
the previous works on malware detection.
Our experiments show that PE Header forms the best feature set and gives the maximum
accuracy and minimum error rate when integrated with PE Section. However, real-world
APPENDIX A
Table A1 The normalized frequency of top 20 DLLs imported by malware and benign files.
Malware Benign
No. DLL Normalized frequency DLL Normalized frequency
1 kernel32.dll 0.1782 mscoree.dll 0.2041
2 mscoree.dll 0.1465 kernel32.dll 0.1589
3 user32.dll 0.1399 msvcrt.dll 0.0911
4 gdi32.dll 0.0978 user32.dll 0.0653
5 advapi32.dll 0.0820 advapi32.dll 0.0552
6 comctl32.dll 0.0468 ole32.dll 0.0369
7 msvbvm60.dll 0.0406 libintl-8.dll 0.0357
8 shell32.dll 0.0403 libglib-2.0-0.dll 0.0351
9 oleaut32.dll 0.0386 shell32.dll 0.0343
10 ole32.dll 0.0376 libgimp-2.0-0.dll 0.0335
11 version.dll 0.0219 libgimpbase-2.0-0.dll 0.0335
12 winmm.dll 0.0218 libgobject-2.0-0.dll 0.0288
13 msvcrt.dll 0.0206 libgimpui-2.0-0.dll 0.0286
14 comdlg32.dll 0.0190 libgtk-win32-2.0-0.dll 0.0274
15 shlwapi.dll 0.0161 oleaut32.dll 0.0270
16 mfc42.dll 0.0134 libgimpwidgets-2.0-0.dll 0.0270
17 msimg32.dll 0.0121 gdi32.dll 0.0219
18 winhttp.dll 0.0101 shlwapi.dll 0.0187
19 winspool.drv 0.0084 comctl32.dll 0.0187
20 gdiplus.dll 0.0082 ntdll.dll 0.0181
Malware Benign
No. API Normalized API Normalized
functions frequency functions frequency
1 getprocaddress 0.0693 corexemain 0.0754
2 corexemain 0.0610 getcurrentthreadid 0.0548
3 exitprocess 0.0602 getsystemtimeasfiletime 0.0536
4 loadlibrarya 0.0565 queryperformancecounter 0.0532
5 getlasterror 0.0541 getcurrentprocessid 0.0532
6 getcurrentprocess 0.0530 getcurrentprocess 0.0514
7 writefile 0.0515 exit 0.0512
8 sleep 0.0512 getlasterror 0.0509
9 multibytetowidechar 0.0507 sleep 0.0497
10 widechartomultibyte 0.0507 unhandledexceptionfilter 0.0492
11 getmodulehandlea 0.0487 terminateprocess 0.0487
12 getcurrentthreadid 0.0464 setunhandledexceptionfilter 0.0486
13 closehandle 0.0458 gettickcount 0.0476
14 unhandledexceptionfilter 0.0442 cexit 0.0459
15 gettickcount 0.0440 initterm 0.0459
16 leavecriticalsection 0.0430 setusermatherr 0.0457
17 entercriticalsection 0.0429 setapptype 0.0457
18 deletecriticalsection 0.0428 memcpy 0.0440
19 terminateprocess 0.0420 amsgexit 0.0432
20 getstdhandle 0.0419 getprocaddress 0.0421
Funding
The work was supported by the Korea Institute of Science and Technology under the KIST
School Partnership Project for its alumni. The funders had no role in study design, data
collection and analysis, decision to publish, or preparation of the manuscript.
Grant Disclosures
The following grant information was disclosed by the authors:
Korea Institute of Science and Technology under the KIST School Partnership Project for
its alumni.
Competing Interests
The authors declare there are no competing interests.
Author Contributions
• Muhammad Irfan Yousuf conceived and designed the experiments, performed the
experiments, analyzed the data, performed the computation work, authored or reviewed
drafts of the article, and approved the final draft.
• Izza Anwer conceived and designed the experiments, performed the experiments,
prepared figures and/or tables, and approved the final draft.
• Ayesha Riasat conceived and designed the experiments, analyzed the data, performed
the computation work, authored or reviewed drafts of the article, and approved the final
draft.
• Khawaja Tahir Zia conceived and designed the experiments, performed the experiments,
performed the computation work, prepared figures and/or tables, and approved the final
draft.
• Suhyun Kim conceived and designed the experiments, analyzed the data, authored or
reviewed drafts of the article, and approved the final draft.
Data Availability
The following information was supplied regarding data availability:
The data is available at FigShare: Yousuf, Irfan (2023): Windows Malware Detection
Dataset. figshare. Dataset. https://doi.org/10.6084/m9.figshare.21608262.v1
Supplemental Information
Supplemental information for this article can be found online at http://dx.doi.org/10.7717/
peerj-cs.1319#supplemental-information.
REFERENCES
Alhaidari F, Shaib N, Alsafi M, Alharbi H, Alawami M, Aljindan R, Rahman A,
Zagrouba R. 2022. ZeVigilante: detecting zero-day malware using machine learning
and sandboxing analysis techniques. Computational Intelligence and Neuroscience
1615528.
Amer E, Zelinka I. 2020. A dynamic Windows malware detection and prediction method
based on contextual understanding of API call sequence. Computers and Security
92:101760 DOI 10.1016/j.cose.2020.101760.
Azmee AA, Choudhury PP, Alam M, Dutta O, Hossain MI. 2020. Performance analysis
of machine learning classifiers for detecting PE malware. International Journal of
Advanced Computer Science and Applications 11(1).
Cannarile A, Dentamaro V, Galantucci S, Iannacone A, Impedovo D, Pirlo G. 2022.
Comparing deep learning and shallow learning techniques for API calls malware
prediction: a study. Applied Sciences 12(3):1645.
Catak FO, Yazi A, Elezaj O. 2020. Deep learning based Sequential model for mal-
ware analysis using Windows exe API calls. PeerJ Computer Science 6:e285
DOI 10.7717/peerj-cs.285.
Cepeda C, Chia Tien DL, Ordóñez P. 2016. Feature selection and improving classifi-
cation performance for malware detection. In: 2016 IEEE international conferences
on big data and cloud computing (BDCloud), social computing and networking