109
Advanced Project in Computer Science: System-Calls Based Dynamic Analysis Intrusion Detection System with Configurable Machine-Learning Classifier Ishai Rosenberg The Open University of Israel, Raanana, Israel Abstract. In this project we implement an IDS based on a configurable machine learning classifier, using system calls executed by the inspected code during its run-time in a sandbox as features. We describe the ratio- nale and design decisions of the IDS implementation, and measure the effectiveness of the IDS when detecting malware it didn’t encounter be- fore. We then use this IDS to compare between different machine learning classifiers to find the fittest.

Advanced Project in Computer Science: System-Calls Based

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Advanced Project in Computer Science: System-Calls Based

Advanced Project in Computer Science:System-Calls Based Dynamic Analysis Intrusion

Detection System with ConfigurableMachine-Learning Classifier

Ishai Rosenberg

The Open University of Israel, Raanana, Israel

Abstract. In this project we implement an IDS based on a configurablemachine learning classifier, using system calls executed by the inspectedcode during its run-time in a sandbox as features. We describe the ratio-nale and design decisions of the IDS implementation, and measure theeffectiveness of the IDS when detecting malware it didn’t encounter be-fore. We then use this IDS to compare between different machine learningclassifiers to find the fittest.

Page 2: Advanced Project in Computer Science: System-Calls Based

Table of Contents

1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Background and Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.1 Machine Learning Binary Classifier . . . . . . . . . . . . . . . . . . 32.2 Sandboxing Dynamic Analysis IDSs . . . . . . . . . . . . . . . . . . 5

3 Problem Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63.1 Evaluating the Classification Algorithm . . . . . . . . . . . . . . . 7

4 The IDS Usage Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 IDS Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

5.1 Sand-Boxing Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105.2 Feature Extraction: System Calls Recorder . . . . . . . . . . . . 115.3 Feature Parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155.4 Feature Selection and Classification: Machine-Learning

Binary Classifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.4.1 Decision Tree Classifier . . . . . . . . . . . . . . . . . . . . . . . 185.4.2 Random-Forest Classifier . . . . . . . . . . . . . . . . . . . . . 215.4.3 K-Nearest Neighbors (k-NN) Classifier . . . . . . . . . . 225.4.4 Naıve Bayes (NB) Classifier . . . . . . . . . . . . . . . . . . . 225.4.5 AdaBoost Classifier . . . . . . . . . . . . . . . . . . . . . . . . . . 235.4.6 Support Vector Machine (SVM) Classifier . . . . . . . 255.4.7 Linear Discriminant Analysis (LDA) Classifier . . . 29

5.5 Wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 Experimental Evaluation of the Basic IDS Model . . . . . . . . . . . 317 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32A Appendix A: The decision tree used by the IDS classifier . . . . . 36B Appendix B: Lists of Programs and Viruses Used by the IDS . 38

B.1 System32 Benign Programs List (Original DB) . . . . . . . . 38B.2 Third-Party Benign Programs List (Original DB) . . . . . . 41B.3 Malicious Programs List (Original DB) . . . . . . . . . . . . . . . 52B.4 Benign Programs Test Set . . . . . . . . . . . . . . . . . . . . . . . . . . 64B.5 Malicious Programs Test Set . . . . . . . . . . . . . . . . . . . . . . . . 74B.6 Additional Benign Programs List (in the Updated DB) . 86B.7 Additional Malicious Programs List (in the Updated DB) 91

C Appendix C: System Calls Monitored By The System CallsRecorder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

D Appendix D: The IDS Configuration File Format . . . . . . . . . . . 106E Appendix E: The Windows-specific System Calls Recorder

Output Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107F Appendix F: The Platform-Independent (Normalized)

System Calls Recorder Output Example . . . . . . . . . . . . . . . . . . . 108

Page 3: Advanced Project in Computer Science: System-Calls Based

1 Introduction

The constant rise in the complexity and number of software security threatsmakes intrusion detection systems (IDS) developers invest large amounts of re-sources in-order to improve their detection rates.

In this report, we refer to IDS as a tool to detect and classify malware.Past IDS generally used two methods of malware detection:

1. Signature-based Detection - Searching for known patterns of data withinthe executable code. A malware, however, can modify itself to prevent asignature match, for example: by using encryption. Thus, this method canbe used to identify only known malware.

2. Heuristic-based Detection - Generic signatures, including wild-cards, whichcan identify a family of malware. Thus, this method can identify only variantsof known malware.

Machine-learning can be used in-order to extend the IDS capabilities to classifysoftware unseen before as malicious or benign by using static or dynamic featuresof the code.

Using system calls sequences as a classifier’s input was reported in [1], [3].Our project focuses on creating an IDS based on a binary (i.e. benign or

malware) classifier, of a user-configured type, where the classifiers features arethe system calls executed by the inspected code.

Our project has several contributions:

– While there are open source tools that implement similar (although notidentical) functionality for *NIX platforms, we would implement this func-tionality on the Windows platform, which better fit the profile of a computeruser today - and which is the target of a significant portion of today malware.

– All the code, except for the sandbox, would be open-source code. This wouldallow easy modification of the system, in-order to custom-fit it for futureresearch (e.g., by changing the machine-learning algorithm, etc.)

– While the system-call recorder would be Windows-specific, all other parts ofthe code would be platform-independent. This would ease the modificationof the IDS in-order to use it for research under different platforms, e.g., in aUnix platform, by using strace() instead-of our custom system call recorder.

– This system has a possibility to choose the machine learning algorithm tobe used by it (e.g. decision tree, SVM, etc.), facilitating the comparison ofdifferent algorithms. This option is not available in any of the possible opensource or binary tools available in the web that I know of.

2 Background and Related Work

2.1 Machine Learning Binary Classifier

The usage of system calls to detect abnormal software behavior has been in-troduced in [3]. The authors scanned traces of normal behavior and build up

Page 4: Advanced Project in Computer Science: System-Calls Based

a database of characteristic normal patterns, i.e. observed sequences of systemcalls. They defined normal behavior in terms of short n-grams of system calls. Asmall fixed size window and “slide” it over each trace, recording which calls pre-cede the current call within the sliding window. Then they scanned new tracesthat might contain abnormal behavior, looking for patterns not present in thenormal database: System call pairs from test traces are compared against thosein the normal profile. Any system call pair (the current call and a preceding callwithin the current window) not present in the normal profile is called a mis-match. A system call is defined as anomalous if there are any mismatches withinits window. If the number of anomalous system calls within a time frame exceedsa certain threshold - an intrusion is reported. The authors also introduced opensource tools to report such anomalies ([1] and [2]).

For example, consider a mail client that is under attack by a script that ex-ploits a buffer overrun, adds a backdoor to the password file, and spawns a newshell listening on port 80. In this case, the system call trace will probably containa segment looking something like: open(), write(), close(), socket(), bind(), lis-ten(), accept(), read(), fork(). Since it seems unlikely that the mail client wouldnormally open a file, bind to a network socket, and fork a child in immediate suc-cession, the above sequence would likely contain several anomalous sub-traces,and thus this attack would be easily detected.

Data mining techniques and machine learning algorithms such as Naive Bayeshave also been used with the Windows platform ([31]). Other machine learningalgorithms, such as decision trees, SVM, boosted trees, Bayesian Networks andArtificial Neural Networks were used and compared to find the best classificationalgorithm - with inconclusive results (e.g.: [30] and [29] chose boosted decisiontrees as the most accurate method, [28] chose decision trees, etc.) which areaffected by the exact samples in the training set and their number, the type ofthe feature set used, etc.

In-order to classify code as benign or a malware, machine-learning algorithmsuse distinct features as input. Types of features that have been used to classifysoftware are either extracted statically (i.e. without running the inspected code):byte-sequence (n-gram) in the inspected code (as in [30] and [29]), APIs inthe Import Address Table (IAT) of executable PE headers (as in [6]), or dis-assembly of APIs in the executable (as in [21]). The features can also be extracteddynamically (i.e. by running the inspected code): CPU overhead, time to execute(e.g., if a system has an installed malware driver being called whenever accessinga file or a directory to hide the malware files, then the additional code being runwould cause file access to be longer than usual), memory and disk consumption(as in [4] and [5]), machine-language op-codes sequence executed (as in [20]),executed system calls sequence (as in [1] and [2]) - or even non-consecutiveexecuted system calls sequence (as in [7]).

While gathering the inspected code’s features using static analysis has theadvantage of not needing to run a possible malicious code (as done, for example,in [6] and [21]) - it has a main disadvantage: since the code isn’t being run -it might not reveal its “true features” (as shown in [19]). For example, if you

Page 5: Advanced Project in Computer Science: System-Calls Based

inspect the APIs in the Import Address Table (IAT) of executable PE headers(as done in [6]), you would miss APIs that are being called dynamically (usingLoadLibrary()\GetProcAddress() in Windows and dl open()\dl sym() on Unix).If you look for byte-sequence (or signatures) in the inspected code (as done in[30]) - you might not be able to catch polymorphic malware, in which those sig-natures are either encrypted or packed and decrypted only during run-time, bya specific bootstrap code. Similar bootstrap code can be used for “legitimate”,benign applications either, so detection of such code is not enough. Other limi-tations of static analysis and techniques to counter it appear in [19].

Thus, we decided to use dynamic analysis, which reveals the true features ofthe code. Obviously, a malware can still try to hide, e.g., by detecting if someother application (the IDS) is debugging it or otherwise monitoring its featuresand not operate its malicious behavior at such cases, as done, for example, bythe “Blue Chicken” technique presented in [23]. However, it is much harderfor a malware writer to do (correctly) and in the end - in-order to operate itsmalicious functionality - a malware must reveal its dynamic features, duringrun-time. However, those features can be altered in a way that would fool anIDS, as have been shown in my thesis.

2.2 Sandboxing Dynamic Analysis IDSs

The main issue with using a dynamic analysis IDS is the fact that it mustrun the inspected code, which might harm the hosting computer. In-order toprevent a damage to the host during the inspection of the code, it’s common torun the code in a sandbox: a controlled environment, which isolates between the(possibly) malicious code to the rest of the system, preventing damage to thelatter. Any harmful modifications done in the sandbox can usually be monitoredand reverted, if needed. In-order to avoid the malicious code from detecting thatit’s running on a sandbox (and thus is being monitored), the sandbox should beas similar as possible to the actual system. The isolation can be done either atthe application-level, meaning that the malicious code is running on the sameoperating system as the rest of the system, but its system calls effect only aquarantined area of the system, e.g., registry key modifications done by thecode are being redirected to different keys (as done in [24]), on the operating-system level, meaning the operating system is isolated (and thus damage to thatoperating system does not effect the host operating system) - but the processoris the same (as done in [9]), or at the processor level, meaning all machineinstruction are emulated by a software called an emulator (like QEMU, [12]).

CWSandbox ([9]) is an operating-system level sand-boxing tool. During theinitialization of an inspected binary executable, CWSandbox’s dll is injectedinto its memory to carry out API hooking. This dll intercepts all API calls andreports them to CWSandbox. The same procedure is repeated for any child orinfected process. CWSandbox and the malicious code are being executed insidea virtual machine (or VM, a software implementing a completely isolated guestoperating system installation within a normal host operating system) based onVMware Server and Windows XP as guest system. After each code analysis, the

Page 6: Advanced Project in Computer Science: System-Calls Based

VM is reverted to a clean snapshot. An XML report of all executed system callsis being generated by this tool.

TTAnalyze ([8]) uses processor level sand-boxing to run the unknown binarytogether with a complete operating system in software. Thus, the malware isnever executed directly on the processor. While both tools generate a systemcalls report, some of the major differences between TTAnalyze and CWSandboxare:

– TTAnalyze uses the open-source PC emulator QEMU rather than a virtualmachine, which makes it harder for the malware to detect that it’s runningin a controlled environment (since all machine instruction are emulated bythe software it should be transparent to the analyzed code running insidethe guest OS) .

– TTAnalyze does not modify the program that it executes (e.g., throughAPI call hooking), making it more difficult to detect by malicious code viacode integrity checks. This is done by using adding a callback after eachbasic block (a sequence of one or more instructions that ends with a jumpinstruction or an instruction modifying the static CPU state in a way thatcannot be deduced at translation time) translated by QEMU.

– TTAnalyze monitors calls to native kernel functions (undocumented inter-nal implementation, susceptible to changes) as well as calls to Windows APIfunctions (documented functions that call internally to the native functions).Malware authors sometimes use the native API directly to avoid DLL de-pendencies or to confuse virus scanner’s operating system simulations.

– TAnalyze can perform function call injection. Function call injection allowsTTanalyze to alter the execution of the program under analysis and runTTAnalyze code in its context. This ability is required in certain cases tomake the analysis more precise (for example, the CreateFile API could bothcreate a new file or open an existing one, so a code that checks whetherthe file existed before the call should be injected before such a call in theanalyzed code in-order to properly log to API call effect).

Other dynamic analysis tools are surveyed at [33].While an emulator-based sand-boxing technique might be harder to detect

- it can be done, as shown in [13], [14] and [15]. Furthermore, the significantperformance degradation (up to 20 times slower, as described in [16]) makessuch system vulnerable to timing attacks (as described, for example, in [17] and[18]).

3 Problem Description

The general problem can be defined formally as follows:Given the traced sequence of system calls as the array sys call, where the cell:

sys call[i] is the i-th system call being executed by the inspected code (sys call[1]is the first system call executed by the code),

Page 7: Advanced Project in Computer Science: System-Calls Based

Define the IDS classifier as: classify(benign training set, malicious training set,inspected code sys calls), where inspected code sys calls is the inspected code’ssystem calls array, benign training set is a set of system calls arrays used totrain the classifier with a known benign classification and malicious training setis a set of system calls arrays used to train the classifier with a known maliciousclassification. classify() returns the classification of the inspected code: eitherbenign or malicious.

3.1 Evaluating the Classification Algorithm

The quality of our IDS would be determined by two factors (P is the probabil-ity\frequency of occurrence):

1. We would like to minimize the false negative (FN) rate of the IDS, i.e. tominimize P(classify(benign training set, malicious training set,malicious inspected code sys calls) = benign).

2. We would like to minimize the false positive (FP) rate of the IDS, i.e. tominimize P(classify(benign training set, malicious training set,benign inspected code sys calls) = malicious).

In-order to take into account true and false positives and negatives, we wouldtry to maximize the Matthews correlation coefficient (MCC), which is used inmachine learning as a measure of the quality of binary classifications:

MCC = TP∗TN−FP∗FN√(TP+FP )∗(TP+FN)∗(TN+FP )∗(TN+FN)

1 ([41]). In the following

sections we show the main parts of our IDS: the IDS usage flow (section 4),the implementation of the monitoring system and the classifier including the-oretical background about the different classifiers implemented (section 5) andthe comparison of the different classifiers by the criteria given at this section(section 6).

4 The IDS Usage Flow

The flow of our IDS is as follows (numeric steps are user-initiated and lettersare code-initiated):

1. The user calls creates an IDS instance in a Python shell, giving it the classifiertype as a parameter:my ids=IDS(“Linear SVM”)

(a) The IDS loads a file containing the serialized classifier trained usingthe training set. The file name is hard-coded and is determined by theclassifier’s type, although user defined file can also be given, if needed.

1 TP - True Positive - A malware that has been classified as malicious.FP - False Positive - A malware that has been classified as benign.TN - True Negative - A benign software that has been classified as benign.FN - False Negative - A benign software that has been classified as malicious.

Page 8: Advanced Project in Computer Science: System-Calls Based

2. The user runs the inspect command, giving it a file path to analyze:my ids.inspect(r“c:\temp\file to inspect.exe”)

(a) The IDS opens a sandbox, if one is not already up, from previous usercommands. The path to the sandbox to open is taken from the IDSconfiguration file.

(b) The IDS reverts the sandbox to a clean state, to start the inspection with“a clean slate”. The name of the snapshot to revert to is taken from theIDS configuration file.

(c) The IDS logs-in into the sandbox with the user name and password,which are taken from the IDS configuration file.

(d) The IDS copies the required files (the system calls recorder and the fileto inspect) into the sandbox. The required file paths are taken from theIDS configuration file.

(e) The IDS runs the system calls recorder inside a new shell (which pathis taken from the IDS configuration file) inside the sandbox for a fixedamount of time.

(f) The system calls recorder runs the inspected file (given as one of itsarguments by the IDS) and prints the system calls specified in its ownconfiguration file (also copied to the sandbox in the last step, since itappears in the IDS configuration file) when they’re being executed. Thisoutput (i.e., all recorded system calls) is being redirected to the outputfile path inside the sandbox (the path is taken from the IDS configura-tion file). Note that infection or damage can happened only within thesandbox itself, since the sandbox is disconnected from the internet.

(g) After the fixed amount of inspected code running time has passed, theIDS terminates the system calls recorder’s and the inspected file’s pro-cesses, if it created a new one (if they didn’t exit before).

(h) The IDS copies the system calls recorder output file from the sandboxto the host computer. The path is taken from the IDS configuration file.

(i) The IDS parses the system calls recorder output file to a XML file, tomaintain a unified input format, regardless of the system call recorderoutput file format.

(j) The IDS parses the XML file, which was generated in the previous step,and extract the system calls being called by the inspected code, in alabel feature format, e.g.: sys call[1] = NtCreateFile.

(k) The IDS transforms all label features to a numeric format of vector ofbits, each one represents if a specific feature (e.g.: sys call[2] = NtClose)exists or not in the executed code. Each feature from the last step wouldbe transformed to a single 1-bit in the vector of all possible features,in-order to fit the classification algorithms.

(l) The IDS performs feature selection on the features extracted, based onthe most significant features, as calculated for the training set. See sec-tion 5.4.

(m) The selected features are the input of the classifier.(n) The classifier returns a classification of the inspected file based on the

selected features: benign or malicious.

Page 9: Advanced Project in Computer Science: System-Calls Based

5 IDS Implementation

From the above flow, we see that our IDS has 5 main parts:

1. A sand-boxing mechanism that would run the inspected code inside a vir-tual machine without an internet connection (to prevent the possibility ofinfecting other machines) for a limited amount of time.

2. Feature extraction - Recording all the system calls made by the inspectedcode while it’s running.

3. Feature parsing - Converting the system calls recorder output to a data setthat fits our classifier.

4. Feature selection and classification - Feeding the system calls sequence toa machine-learning binary classifier and receiving a classification for the in-spected code: malicious or benign.

5. A wrapper which provides the user interface to the IDS.

Those parts are completely interdependent, and each one can be replaced withoutaffecting the others, as-long-as their interfaces remains the same.

The class diagram of the entire IDS is shown in Figure 1.

Fig. 1. The IDS Python Class Diagram

Note that only the Python modules external interfaces are specified here.The NtSysCallRecorder detailed class diagram is shown in Figure 2.

The IDS doesn’t have a UI - only a command-line interface. This is due-tothe fact that it was designed as a research tool with an easy API to query various

Page 10: Advanced Project in Computer Science: System-Calls Based

properties of the IDS (e.g., the detection rate) - and not as a tool for end-users.While a UI and a on-line scanning mode could be added, a system based ondynamic analysis doesn’t fit a day-to-day continuous usage: It’s unreasonablethat a user would have to wait 10-15 seconds for each file that is being analyzed- especially when he copies 100 files or more.

5.1 Sand-Boxing Mechanism

As mentioned in the end of section 2, in-order to implement a dynamic anal-ysis IDS that would sandbox the inspected code effects, we have chosen touse VMWare Workstation2, a commonly used virtual machine software, wherechanges made by a malicious code can be reverted. In-order to automate theoperations inside the sandbox (e.g., copying files to or from the VM, revertingto a snapshot, etc.), we use vixpy3, which is a wrapper around the VIX API4.

Our IDS executes the inspected code on a virtual machine with Windows XPSP3 OS without an internet connection (to prevent the possibility of infectingother machines).

Windows OS better suits our needs than Unix variants, used by availableopen-source tools (e.g., [1] and [2]), since most malware target it5.

The inspected executables were run for a period of 10 seconds - and thenforcefully terminated, if the process didn’t exit before that by itself.6 Thisamount of time is enough to record significant amount of system calls (about10,000 recorded system calls per executable on average, and a maximum amountof more than 50,000 recorded system calls) - but not too much for a system with

2 Initially, I wanted to use VirtualBox (https://www.virtualbox.org/) as the sand-box. The reason is that this is an open-source tool, which can be freely down-loaded and its code can be tweaked, if desired. However, VirtualBox does nothave an equivalent to the VIX API of VMWare which suits our needs (e.g., al-lows log-in to the guest OS, loading a snap-shot, etc.). I tried to use BOINC(https://boinc.berkeley.edu/trac/wiki/VirtualBox) - but its suport on VirtualBoxis far from perfect, and after trying to stabilize it for a long time - I decided thatthe effort needed was too great, and since this was not a main feature of the project- I decided to switch to VMWare, which VIX API is far more stable and mature.

Also note that, while the free VMWare Player does support the VIX API - itsupports only a limited subset, which is not enough for our needs (e.g., it can’trevert to a snap-shot, etc.)

Thus, only VMWare Workstation is supported in the IDS code.3 https://github.com/dshikashio/vixpy4 https://www.vmware.com/support/developer/vix-api/5 https://www.daniweb.com/hardware-and-software/microsoft-windows/viruses-

spyware-and-other-nasties/news/310770/99-4-percent-of-malware-is-aimed-at-windows-users

6 Tracing only the first seconds of a program execution might not detect certain mal-ware types, like “logic bombs” that commence their malicious behavior only afterthe program has been running some time. However, this can be mitigated both byclassifying the suspension mechanism as malicious or by tracing the code operationthroughout the program execution life-time, not just at the beginning.

Page 11: Advanced Project in Computer Science: System-Calls Based

8-16GB of RAM to calculate the classifier, with this amount of features in areasonable amount of time.

Implementation The python module in-charge of the sand-boxing mechanism issandboxing. It has two interface method:

– trace proc in sandbox() - Performs steps 2.(a)-2.(h) in section 4.– set config() - Sets the IDS configuration file (used by trace proc in sandbox())

path. The configuration file parameters are specified in Appendix D. In-order to allow modifications in the configuration file format without affect-ing the sandboxing module code, we implemented an abstraction layer calledconfig, which you can use to access the configuration file fields (e.g.: con-fig.tracer settings.tracer executable) without being aware of the configurationfile format specified in Appendix D.

Note that the sandboxing module can be modified, e.g., to use an emulator,such-as QEMU ([12]), instead-of VMWare Workstation, without any effect onthe rest of the system, as long as the external interface (which, unlike the internalmethods, doesn’t contain any VM-specific parameters) is intact.

5.2 Feature Extraction: System Calls Recorder

While we are focusing on the Windows OS, our IDS design is cross-platform,written in Python7, a cross-platform programming language, and designed formodularity. The only part which is platform-specific is this one: the system callsrecorder. For example, our Windows system-calls recorder could be replaced bystrace()8 in-order to operate on Linux OS.

The system calls recorder we have used for Windows records the Nt* system-calls9 in ntdll.dll. The usage of this low layer of system calls was done in-orderto prevent malware from bypassing Win32API (e.g. CreateFile()) recording bycalling those lower-level, Nt* APIs (e.g. NtCreateFile()). We have recorded 444different system calls, such-as NtClose(), NtWaitForMultipleObjects(), etc. Thefull recorded system calls list can be found on Appendix C.

Implementation Several ways to implement API hooking, needed by the systemcalls recorder, were considered:

– IAT (import address table) patching - We can modify the import table ofthe process we want to monitor, so the API would be recorded before callingthe actual API, by providing an address of a new function that would logthe original function - and then call it. The problem in this technique is thatit only monitors statistically-linked functions, meaning, not functions thatwere called dynamically, by a LoadLibrary()\GetProcAddress() combination.

7 https://www.python.org/8 http://en.wikipedia.org/wiki/Strace9 http://undocumented.ntinternals.net/

Page 12: Advanced Project in Computer Science: System-Calls Based

We can reduce the number of missed APIs by patching the import tableof each DLL loaded into the monitored process. We can also return ourown function pointer from a call to GetProcAddress() and thus ease themonitoring of dynamically-called API. In conclusion, this method doesn’tcover all available API calls and fixing it is complex and not scalable.

– EAT (export address table) patching - By changing the export table of theDLL in-which our monitored API exists, each such call can be logged beforethe actual API is being called, again, by replacing the original API with afunction that logs the call before actually making it. There are two majorissues with this technique: 1) It monitors every process that calls the hookedAPI - and not just the inspected process. Logging all of those API calls couldbe a huge performance bottleneck on the system. 2) Saving the monitoredprocess path in a global location, such that would be accessible by all loadedDll (so only the specific process would be monitored and not the entiresystem) is dangerous, since a malware might change it (e.g., to a benignprocess), harming the inspection process. The same goes for the log itself.

– Detours - As mentioned in [10], this method involves modifying the codeof the API in the monitored process memory at run-time, inserting a JMPinstruction at the beginning of the API code to the logging code, performsthe logging - and then JMP back to the original API’s code. A problemwith this method is that since there is a modification of the inspected codememory, it can perform an integrity check (e.g., comparing the hash valueof the memory address space to the file system) and thus - it’s easy for it todetect that it’s being monitored (and cease its malicious operation).

– Proxy\Trojan DLL - Replacing the DLL we want to monitor (here: NtDll.dll)with a different dll with the same entry-points (same arguments, etc.), whichrecord the system call before calling the original API. Again, this is a system-wide mechanism, so you have the same issues as with EAT patching.

– Kernel hooks - Modifying the SSDT (a global table that contains the Win32SubSystem functions’ addresses) or the IDT (a global table that containsthe addresses of the interrupts handling procedures, in-order to handle INT2e or SYSENTER calls) was specified, e.g., in [43]. The problem here is thata kernel hook is extremely OS-specific - and might be needed to be modifiedeven between service packs of the same Windows release. In addition, asbefore, this is a system-wide hook, which is not process-specific.

– Debugging events - Running the inspected code via a custom-made debug-ger which would set breakpoints and monitor the Nt* API calls from theinspected code in those breakpoints.

We have decided to use the debugger option due-to the following reasons:

– It is available “by-design” and it is a documented API. Thus, we don’t usehere a method that might be broken or modified in future service packs orOS versions.

– It is process-specific hook, as needed, and not system-wide, meaning we haveonly the smallest performance degradation possible - and we don’t get any

Page 13: Advanced Project in Computer Science: System-Calls Based

irrelevant system calls, which we then need to filter using additional, error-prone logic.

– A debugger has read and write privileges to the debugged process - so it’sharder to “fool” it.

– The implementation is easier than other methods (again, this is a docu-mented API).

While, as mentioned in section 2.1, a malware can try to hide, e.g., by detecting ifsome other application (the IDS) is debugging it, the fact that the process is be-ing debugged (e.g., by the API IsDebuggerAttahed()) can be concealed by modi-fying the PEB, as written, for example, inhttp://undocumented.ntinternals.net/source/usermode/undocumented functions/ntobjects/process/peb.html.

Unlike the rest of the system, which is written in cross-platform Python,the system call recorder is platform-specific, and call platform specific APIs inC. Thus, it is written in C++, in-order to easily access those APIs, but still bewritten in an object-oriented manner. It is implemented as a console application,which gets the file path to trace as its only command-line argument. It canbe used independently from the other parts of the system. The only referenceto the system calls recorder’s path is in the IDS configuration file (to keep aloose coupling from the rest of the system), from where it is being read, bythe sandboxing module, which operates it on the inspected code file inside thesandbox.

The class diagram of the system calls recorder, NtSysCallRecorder, is shownin Figure 2.

Page 14: Advanced Project in Computer Science: System-Calls Based

Fig. 2. The System Calls Recorder Class Diagram

Page 15: Advanced Project in Computer Science: System-Calls Based

The main classes in the system call recorder are:

– DebugListener - This is a listener to the debug events (e.g., new thread, DLLload, etc.) generated by the inspected code when it is being run through thesystem calls recorder.

– Debugger - This is the interface for the callbacks being called by the De-bugListener when debug events happens.

– NtTraceDebugger - This is the implementation of the Debugger interface forNt API entry points in NtDll.dll.

– APIEntryPoint - This class represents an Nt API entry point (loaded fromthe system call recorder configuration file), where the system call recordercan set breakpoints to debug the API call, as needed.

– DbgHelper - This is a wrapper around the DbgHelp API10, which allowsus, e.g., to get the function name from an address in the debugged processaddress space, using the symbols for Windows OS.

– SymbolEngine - This class implements higher-level methods, such-as currentlocal variables, function parameters and full stack-trace information, usingthe lower-level DbgHelper interface.

The main() function simply reads the APIs to monitor from the system callsrecorder configuration file, create an APIEntryPoint instance for each one, attacha DebugListener instance as the debugger of the inspected code, pass the debugevents to a NtTraceDebugger instance that logs the proper information, usingSymbolEngine to extract the relevant information needed to be recorded.

An output example of the output generated by the system calls recorder isavailable in Appendix E.

5.3 Feature Parsing

The parsing part has two main parts::

1. Output normalization - converting the system-calls recorder-specific seri-alized (i.e. file) output to a serialized generic output. This is done by anabstraction layer that reads the output file generated by redirecting the sys-tem calls recorder output to a file, parse each recorded system call name,arguments and return value - and write the information in an output XMLfile. If we change the system call recorder in the last section - only this ab-straction layer should be modified to fit the new output format. An outputexample of the normalized output file can be found in Appendix F.

2. Feature parsing - reading the normalized output file, generated in the laststep - and de-serializing it to a usable format. In-our case this is a simplePython dictionary where the key is the system call position and the valueis the system call type (as mentioned in section 5.4, the arguments andreturn values are not being used by the IDS, although they are available).As an example, if the third system call was NtCreateFile, then the featureextracted is: parsed features dict[“sys call3”]=”NtCreateFile”, which is thePython representation for: sys call[3] = NtCreateFile.

10 https://msdn.microsoft.com/en-us/library/windows/desktop/ms679309

Page 16: Advanced Project in Computer Science: System-Calls Based

Implementation The Python module in-charge of the output normalization isnormalization, which has only a single interface method: normalize(), whichgets the file path to the system call recorder output file, converts it into thenormalized XML format - and returns the path to the normalized XML outputfile, to be used for feature parsing

The Python module in-charge of the feature parsing is feature parsing, whichhas only a single interface method: parse features(), which takes the normalizedoutput file path, parses and de-serializes it - and returns a Python to be analyzedby the classifier, as mentioned above.

5.4 Feature Selection and Classification: Machine-Learning BinaryClassifier

We have implemented the classifier using the Python scripting language andscikit-learn11. This library provides a common interface for many data-miningand machine-learning algorithms. Several classifiers were implemented usingscikit-learn, as specified in the following sub-sections.

The training set for the binary classifier contains malicious and benign exe-cutables. The malicious executables were taken from VX Heaven12. They wereselected from the Win32 Virus type (and not, e.g., Trojan, Worm or Rootkit).This focus allowed us both to concentrate on a specific mode of action of themalicious code and to reduce the chance of infection of other computers causedby using, e.g., worm samples. Benign executables were taken from both the.\Windows\System32 folder and a collection of benign third-party programs.The number of malicious and benign samples in the set was roughly equal (521malicious samples and 661 benign samples) to prevent the imbalanced data prob-lem - a bias towards classification with the same value as the majority of thetraining samples, as presented, for example, in [26].

As features for the decision tree we used the position and the type of thesystem call, i.e. sys call[i] = system call type[k], e.g.: sys call[3] = NtCreateFile,which is a different feature than sys call[2] = NtCreateFile and from sys call[3]= NtClose, either. Thus, the number of available feature values was very large(about 850,000)13. Therefore, we performed a feature selection ([25]), selectingthe 10,000 (best) features with the highest values for the χ² (chi-square) statistic([27]) for the training set, relative to the classifications, and created the decisiontree based only on the selected features.

The χ² is a statistical hypothesis test in which the sampling distribution ofthe test statistic is a chi-square distribution when the null hypothesis is true.

11 http://scikit-learn.org/12 http://vxheaven.org/13 Note that the fact that we have 444 different system calls type being monitored

and 50,000 does not mean each of the 44450,000 combinations is a feature. Thefeature is available only if it ever appeared in any part of the training set. E.g.:If sys call[1] was never equal to NtWaitForMultipleObjects in the training set thensys call[1]=NtWaitForMultipleObjects would not be a valid feature.

Page 17: Advanced Project in Computer Science: System-Calls Based

Test statistics that follow a chi-squared distribution arise from an assumption ofindependent normally distributed data, which is valid in many cases due to thecentral limit theorem. A chi-squared test can be used to reject the hypothesisthat the data are independent. Here, this statistic measures dependence betweenstochastic variables, so a transformer based on this function “weeds out” the fea-tures that are the most likely to be independent of class and therefore irrelevantfor classification.

Implementation The Python module in-charge of this step is classification, andthe main class is classification.Predictor.

We start by converting the dictionary we got in the last phase to a dataformat which our classifiers can work with. Since scikit-learn’s classifiers areworking with numerical arrays, and not with feature-value dictionaries, we usesklearn.feature extraction.DictVectorizer class14 for this conversion, which re-sides in the classification.Predictor.vec data member. It converts all label fea-tures to a numeric format of vector of bits, each one represents if a specificfeature (e.g.: sys call[2] = NtClose) exists or not in the executed code. Eachsuch feature is transformed to a single 1-bit in the vector of all possible fea-tures. While we could have used the system call type as a nominal value (witha possibly different set of possible values for a specific system call position), thescikit-learn algorithms better fit the data format of bit vectors.

This bit-vector is the input for our classifier. It is built as a scikit-learnpipeline15, which is used to chain multiple estimators into one. This is usefulhere, where we have a fixed sequence of steps in processing the data: featureselection followed by classification. The first step in the pipeline is the featureselection part, which is implemented by scikit-learn’s SelectKBest class16, wherethe score function is chi2 (chi-square) and k is 10,000. The classification step isimplemented by a scikit-learn’s machine-learning binary classifier, chosen by theclassifier type argument given to classification.Predictor. init () method. Thisargument is used as the key for the prototype-based factory ([42], page 126) tocreate the requested classifier - or to deserialize the proper classifier, alreadytrained with the training set and ready to be used, if one already exists. Thispipeline resides in the classification.Predictor.clf data member.

classification.Predictor has several important external interface method:

– predict() - Gets the features dictionary generated in the previous part, men-tioned in section 5.3, transforms it to a vector of bits using Predictor.vec,performs the feature selection and then the internal scikit-learn classifier’sclassification using Predictor.clf and returns the classification to the user.

– add training result() - Gets a single features dictionary and its classification,and add them to the classifier’s training set.

– prepare classifier() - This method is used to train the classifier with thecurrent training set. It was separated from add training result() in-order to

14 http://scikit-learn.org/stable/modules/generated/sklearn.feature extraction.DictVectorizer.html15 http://scikit-learn.org/stable/modules/pipeline.html16 http://scikit-learn.org/stable/modules/generated/sklearn.feature selection.SelectKBest.html

Page 18: Advanced Project in Computer Science: System-Calls Based

improve performance: first the user adds all the training set - and only thenit trains the classifier on the entire set. If the user called add training result()followed by predict() without calling prepare classifier() in-between - it wouldbe called automatically by predict() in-order to make sure that the predictionis done based on the most up-to-date training set.

– load() - Gets a file path and load a pre-existing classifier, possibly alreadytrained by a training set. The de-serialization is done using the Python stan-dard library module cPickle, the C variant of the pickle module, for improvedperformance. Notice that the classification.Predictor. init () method callsthis method with a file path which is dependent in the classifier’s type ar-gument it got, in-order to skip the time needed to re-train the IDS, if thedefault training set suffices.

– save() - Gets a file path and save its classifier, possibly already trained, tothis path. The serialization is done using the Python standard library modulecPickle, the C variant of the pickle module, for improved performance.

The classification.Predictor abstraction is hiding the internal implementation ofthe features representation, selection and classification by scikit-learn (e.g., itdoesn’t inherit from the scikit-learn classifier class), thus allowing the usage ofuser-generated classifiers or classifiers from a different framework, e.g. Weka17,without the need to modify the client’s code.

The implemented classifiers, including the relevant theoretical background,are presented in the following sub-sections:

5.4.1 Decision Tree Classifier We selected the CART decision tree algo-rithm18, similar to C4.5 (J48) decision tree, which was already proven to bea legitimate and even superior algorithm for malware classification ([28]). Thistree is the successor of the ID3 decision tree classifier ([22]), which was the firstalgorithm to use maximum entropy as a decision factor. It is commonly used forimplementing malware detection (for example in [20]).

This classifier is easy to explain by an example:

Example 1. An example for a simplified system-calls based decision tree is shownin Figure 3. If the decision tree condition specified in a node is, e.g.: sys call[2]=? NtOpenFile, this means the right child of this node in the decision path ischosen if sys call[2]=NtOpenFile, and the left child is chosen if not.

In this decision tree, if the inspected code trace contains: {sys call[1]=NtQueryInformationFile,sys call[2] = NtOpenFile, sys call[3]=NtWriteFile, sys call[4]=NtClose}, Its pathin the IDS’s decision tree is: M=RRL (=Right-Right-Left), and it would be clas-sified as a malicious.

If the code trace contains: {sys call[1]=NtQueryInformationFile, sys call[2]=NtOpenFile,sys call[3]=NtAddAtom, sys call[4]=NtClose}, the classifier would declare thiscode as benign, since the decision path would be B=RRRL.

17 http://www.cs.waikato.ac.nz/ml/weka/18 http://scikit-learn.org/stable/modules/tree.html

Page 19: Advanced Project in Computer Science: System-Calls Based

Fig. 3. A System Calls Based Decision Tree

The actual decision tree generated by the training set can be found in ap-pendix A.

A decision tree is invariant under scaling and various other transformationsof feature values, is robust to inclusion of irrelevant features, and produces in-spectable models. Thus, this is the default classifier of the IDS.

Decision Tree Learning (DTL) Algorithm Our aim is find a small tree consistentwith the training examples.

The idea: (recursively) choose “most significant” attribute as root of (sub)tree:

function DECISION-TREE-LEARNING(examples, attributes, parent examples)

1. if examples is empty then return PLURALITY-VALUE(parent examples)2. else if all examples have the same classification then return the classification3. else if attributes is empty then return PLURALITY-VALUE(examples)4. else

(a) A� argmaxa∈attributes

IMPORTANCE(a, examples)

(b) tree�a new decision tree with root test A(c) for each value vk of A do

i. exs �{e : e ∈examples and e.A = vk}ii. subtree�DECISION-TREE-LEARNING(exs, attributes =A, exam-

ples)iii. add a branch to tree with label (A = vk) and a subtree subtree

(d) return tree

How do we choose the feature to split by? A good feature splits the examplesinto subsets that are (ideally) “all positive“ or “all negative“.

An example of two possible features appear in Figure 4.

Page 20: Advanced Project in Computer Science: System-Calls Based

Fig. 4. Example Features to Split-by

In this case, Patrons? is a better choice: It minimizes the entropy and in-creases the uniformity of the classification of the members in the splatted groups,when comparing it to the Type? feature.

Entropy To implement Choose-Attribute (IMPORTANCE) in the DTL algo-rithm, show above, we’d use terms taken from Shannon’s information theory:

Information Content (Entropy), ([22]):H(V)=I(P(v1), . . . , P(vn)) =

∑ni=1−P (vi) lgP (vi)

Where v1. . . vn are the different possible values the random variable V.The entropy for a training set containing p positive examples and n negative

examples:I( pp+n ,

np+n ) = − p

p+n lg( pp+n )− n

p+n lg( np+n )

Information Gain (IG) A chosen attribute A divides the training set E intosubsets E1, . . . , Ev according to their values for A, where A has v distinctvalues:

reminder(A) =∑vi=1

pi+nip+n I( pi

pi+ni, nipi+ni

)

Information Gain (IG) or reduction in entropy from the attribute test is:IG(A) = I( p

p+n ,np+n )−reminder(A) = I( p

p+n ,np+n )−

∑vi=1

pi+nip+n I( pi

pi+ni, nipi+ni

)Thus, we choose the attribute with the largest IG.

Gini Impurity An alternative method to implement Choose-Attribute in theDTL algorithm, shown above, is Gini impurity. This is a measure of how often arandomly chosen element from the set would be incorrectly labeled if it were ran-domly labeled according to the distribution of labels in the subset. Gini impuritycan be computed by summing the probability of each item being chosen timesthe probability of a mistake in categorizing that item. It reaches its minimum(zero) when all cases in the node fall into a single target category.

To compute Gini impurity for a set of items, suppose i ∈ {1, 2, ...,m}, andlet fi be the fraction of items labeled with value i in the set.

IG(f) =∑mi=1 fi(1 − fi) =

∑mi=1(fi − fi

2) =∑mi=1 fi −

∑mi=1 fi

2 = 1 −∑mi=1 fi

2

Implementation The IDS classifier was implemented using scikit-learn’ssklearn.tree.DecisionTreeClassifier class19. The default metric is: Gini impurity.

19 http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html

Page 21: Advanced Project in Computer Science: System-Calls Based

5.4.2 Random-Forest Classifier Decision trees that are grown very deeptend to learn highly irregular patterns: they overfit their training sets, becausethey have low bias, but very high variance.

Random forests are a way of averaging multiple deep decision trees, trainedon different parts of the same training set. When splitting a node during theconstruction of the tree, the split that is chosen is no longer the best split amongall features. Instead, the split that is picked is the best split among a randomsubset of the features. As a result of this randomness, the bias of the forest usuallyslightly increases (with respect to the bias of a single non-random tree) but, dueto averaging, its variance also decreases, usually more than compensating for theincrease in bias, hence yielding an overall better model.

Tree bagging The training algorithm for random forests applies the general tech-nique of bootstrap aggregating, or bagging, to tree learners ([35]). Given a train-ing set X = x1, . . . , xn with responses Y = y1, . . . , yn, bagging repeatedlyselects a random sample with replacement of the training set and fits trees tothese samples:

1. For b = 1, . . . , B:

(a) Sample, with replacement, n training examples from X, Y; call these Xb,Yb.

(b) Train a decision or regression tree fb on Xb, Yb.

After training, predictions for unseen samples x’ is made by taking the majorityvote in the case of decision trees.

As already mentioned, this bootstrapping procedure leads to better modelperformance because it decreases the variance of the model, without increasingthe bias, or with a minimal increase in total. This means that while the predic-tions of a single tree are highly sensitive to noise in its training set, the averageof many trees is not, as long as the trees are not correlated. Simply trainingmany trees on a single training set would give strongly correlated trees (or eventhe same tree many times, if the training algorithm is deterministic); bootstrapsampling is a way of de-correlating the trees by training them with differenttraining sets.

The number of samples/trees, B, is a free parameter.

Feature Bagging The above procedure describes the original bagging algorithmfor trees. Random forests differ in only one way from this general scheme: theyuse a modified tree learning algorithm that selects, at each candidate split inthe learning process, a random subset of the features. This process is sometimescalled “feature bagging“. The reason for doing this is the correlation of the treesin an ordinary bootstrap sample: if one or a few features are very strong predic-tors for the response variable (target output), these features will be selected inmany of the decision trees, causing them to become correlated.

Page 22: Advanced Project in Computer Science: System-Calls Based

Implementation The IDS classifier was implemented using scikit-learn’ssklearn.ensemble.RandomForestClassifier class20. The default value is B=10 de-cision trees, using a default metric of Gini impurity.

5.4.3 K-Nearest Neighbors (k-NN) Classifier The input of the k-NearestNeighbors algorithm consists of the k closest training examples in the featurespace ([37]). The output is a class membership. An object is classified by a ma-jority vote of its neighbors, with the object being assigned to the class mostcommon among its k nearest neighbors. k-NN is a type of instance-based learn-ing, or lazy learning, where the function is only approximated locally and allcomputation is deferred until classification.

A shortcoming of the k-NN algorithm is that it is sensitive to the local struc-ture of the data.

The training examples are vectors in a multidimensional feature space, eachwith a class label. The training phase of the algorithm consists only of storingthe feature vectors and class labels of the training samples.

In the classification phase, k is a user-defined constant, and an unlabeledvector (a query or test point) is classified by assigning the label which is mostfrequent among the k training samples nearest to that query point.

The used distance metric is Euclidean distance.

Implementation The IDS classifier was implemented using scikit-learn’ssklearn.neighbors.KNeighborsClassifier class21. The default values are: k=5, dis-tance metric=standard Euclidean metric.

5.4.4 Naıve Bayes (NB) Classifier The classifier is based upon a naıveassumption, by which it is named: Even if features depend upon the existenceof others, they independently contribute to the classification ([36]).

A pro of this classifier: It requires a small amount of training data to estimatethe parameters (means and variances of the variables) necessary for classification

A con of this classifier: Bayes classification is outperformed by approachessuch as RFA and SVM (as mentioned in [11]).

The NB Probability Model naive Bayes is a conditional probability model: givena problem instance to be classified, represented by a vector x = (x1, . . . , xn)representing some n features (dependent variables), it assigns to this instanceprobabilities

p(Ck|x1, . . . , xn)for each of k possible outcomes or classes.Using Bayes’ theorem, under the above independence assumptions, the con-

ditional distribution over the class variable C is:p(Ck|x1, . . . , xn) = 1

Z p(Ck)∏ni=1 p(xi|Ck)

20 http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html21 http://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html

Page 23: Advanced Project in Computer Science: System-Calls Based

where the evidence Z = p(x) is a scaling factor dependent only on x1, . . . , xn,that is, a constant if the values of the feature variables are known.

The NB Classifier This classifier pick the hypothesis that is most probable; thisis known as the maximum a posteriori or MAP decision rule.

The corresponding classifier, a Bayes classifier, is the function that assigns aclass label y = Ck for some k as follows:

y = argmaxk∈{1,...,K}

p(Ck)

n∏i=1

p(xi|Ck)

Gaussian Naıve Bayes A typical assumption is that the values associated witheach class are distributed according to a Gaussian distribution. For example,suppose the training data contain a continuous attribute, x. We first segmentthe data by the class, and then compute the mean and variance of x in eachclass. Let µc be the mean of the values in x associated with class c, and let σ2

c

be the variance of the values in x associated with class c. Then, the probabilitydistribution of some value given a class, p(x = v|c), can be computed by pluggingv into the equation for a Normal distribution parameterized by µc and σ2

c . Thatis,

p(x = v|c) = 1√2πσ2

c

e− (v−µc)2

2σ2c

Bernoulli Naıve Bayes In the multivariate Bernoulli event model, features areindependent booleans (binary variables) describing inputs. If xi is a booleanexpressing the occurrence or absence of the i’th term from the vocabulary, thenthe likelihood of a document given a class Ck is given by:

p(x|Ck) =∏ni=1 p

xiki(1− pki)(1−xi)

where pki is the probability of class Ck generating the term xi.

Implementation The IDS Gaussian NB classifier was implemented using scikit-learn’s sklearn.naive bayes.GaussianNB class22.

The IDS Bernoulli NB classifier was implemented using scikit-learn’ssklearn.naive bayes.BernoulliNB class23.

5.4.5 AdaBoost Classifier AdaBoost, short for “Adaptive Boosting“, canbe used in conjunction with many other types of learning algorithms to improvetheir performance ([38]). The output of the other learning algorithms (’weaklearners’) is combined into a weighted sum that represents the final output ofthe boosted classifier. AdaBoost is adaptive in the sense that subsequent weaklearners are tweaked in favor of those instances misclassified by previous classi-fiers. The core principle of AdaBoost is to fit a sequence of weak learners (i.e.,models that are only slightly better than random guessing, such as small de-cision trees) on repeatedly modified versions of the data. The predictions from

22 http://scikit-learn.org/stable/modules/generated/sklearn.naive bayes.GaussianNB.html23 http://scikit-learn.org/stable/modules/generated/sklearn.naive bayes.BernoulliNB.html

Page 24: Advanced Project in Computer Science: System-Calls Based

all of them are then combined through a weighted majority vote (or sum) toproduce the final prediction. The data modifications at each so-called boost-ing iteration consist of applying weights w1, w2, ..., wN to each of the trainingsamples. Initially, those weights are all set to wi = 1/N , so that the first stepsimply trains a weak learner on the original data. For each successive iteration,the sample weights are individually modified and the learning algorithm is reap-plied to the reweighted data. At a given step, those training examples that wereincorrectly predicted by the boosted model induced at the previous step havetheir weights increased, whereas the weights are decreased for those that werepredicted correctly. As iterations proceed, examples that are difficult to predictreceive ever-increasing influence. Each subsequent weak learner is thereby forcedto concentrate on the examples that are missed by the previous ones in the se-quence. AdaBoost (with decision trees as the weak learners) is often referredto as the best out-of-the-box classifier. Unlike neural networks and SVMs, theAdaBoost training process selects only those features known to improve the pre-dictive power of the model, reducing dimensionality and potentially improvingexecution time as irrelevant features do not need to be computed.

Training AdaBoost refers to a particular method of training a boosted classifier.A boost classifier is a classifier in the form

FT (x) =∑Tt=1 ft(x)

where each ft is a weak learner that takes an object x as input and returns areal valued result indicating the class of the object. The sign of the weak learneroutput identifies the predicted object class and the absolute value gives theconfidence in that classification. Similarly, the T -layer classifier will be positiveif the sample is believed to be in the positive class and negative otherwise.

Each weak learner produces an output, hypothesis h(xi), for each sample inthe training set. At each iteration t, a weak learner is selected and assigned acoefficient αt such that the sum training error Et of the resulting t-stage boostclassifier is minimized.

Et =∑iE[Ft−1(xi) + αth(xi)]

Here Ft−1(x) is the boosted classifier that has been built up to the previousstage of training, E(F ) is some error function and ft(x) = αth(x) is the weaklearner that is being considered for addition to the final classifier.

Weighting At each iteration of the training process, a weight is assigned toeach sample in the training set equal to the current error E(Ft−1(xi)) on thatsample. These weights can be used to inform the training of the weak learner,for instance, decision trees can be grown that favor splitting sets of samples withhigh weights.

Discrete AdaBoost The discrete variant, used in our IDS, is as follows:With:

– Samples x1 . . . xn– Desired outputs y1 . . . yn, y ∈ {−1, 1}

Page 25: Advanced Project in Computer Science: System-Calls Based

– Initial weights w1,1 . . . wn,1 set to 1n

– Error function E(f(x), y, i) = e−yif(xi)

– Weak learners h : x→ [−1, 1]

For t in 1 . . . T :

1. Choose ft(x):

(a) Find weak learner ht(x) that minimizes εt, the weighted sum error formisclassified points εt =

∑i wi,tE(ht(x), y, i)

(b) Choose αt = 12 ln

(1−εtεt

)2. Add to ensemble:

(a) Ft(x) = Ft−1(x) + αtht(x)

3. Update weights:

(a) wi,t+1 = wi,te−yiαtht(xi)for all i

(b) Renormalize wi,t+1 such that∑i wi,t+1 = 1

Implementation The IDS classifier was implemented using scikit-learn’ssklearn.ensemble.AdaBoostClassifier class24. The default value is a maximum of50 estimators for boosting (or less if a perfect fit is achieved before).

5.4.6 Support Vector Machine (SVM) Classifier A data point is viewedas a p-dimensional vector (a list of p numbers), and we want to know whether wecan separate such points with a (p− 1)-dimensional hyperplane. This is called alinear classifier. There are many hyperplanes that might classify the data. Onereasonable choice as the best hyperplane is the one that represents the largestseparation, or margin, between the two classes. So we choose the hyperplane sothat the distance from it to the nearest data point on each side is maximized.If such a hyperplane exists, it is known as the maximum-margin hyperplaneand the linear classifier it defines is known as a maximum margin classifier; orequivalently, the perceptron of optimal stability.

An example of such separation in Figure 5. H3 does not separate the classes.H1 does, but only with a small margin. H2 separates them with the maximummargin.

24 http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html

Page 26: Advanced Project in Computer Science: System-Calls Based

Fig. 5. Example of Separating Hyperplanes

Linear SVM Given some training data D, a set of n points of the form

D = {(xi, yi) | xi ∈ Rp, yi ∈ {−1, 1}}ni=1

where the yi is either 1 or =1, indicating the class to which the point xibelongs ([40]). Each xi is a p-dimensional real vector. We want to find themaximum-margin hyperplane that divides the points having yi = 1 from thosehaving yi = −1. Any hyperplane can be written as the set of points x satisfying:

w · x− b = 0

where · denotes the dot product and w the (not necessarily normalized)normal vector to the hyperplane. The parameter b

‖w‖ determines the offset of

the hyperplane from the origin along the normal vector w.

If the training data are linearly separable, we can select two hyperplanes ina way that they separate the data and there are no points between them, andthen try to maximize their distance. The region bounded by them is called “themargin“. These hyperplanes can be described by the equations

w · x− b = 1

and

w · x− b = −1

By using geometry, we find the distance between these two hyperplanes is2‖w‖ , so we want to minimize ‖w‖. As we also have to prevent data points from

falling into the margin, we add the following constraint: for each i either

w · xi − b ≥ 1 for xiof the first class

or

Page 27: Advanced Project in Computer Science: System-Calls Based

w · xi − b ≤ −1 for xiof the second.

This can be rewritten as:

yi(w · xi − b) ≥ 1, for all 1 ≤ i ≤ n

We can put this together to get the optimization problem:

Minimize (in w, b)

‖w‖

subject to (for any i = 1, . . . , n)

yi(w · xi − b) ≥ 1

In Figure 6 we see a maximum-margin hyperplane and margins for an SVMtrained with samples from two classes. Samples on the margin are called thesupport vectors.

Page 28: Advanced Project in Computer Science: System-Calls Based

Fig. 6. Example of Separating Hyperplanes

Nonlinear classification A way to create nonlinear classifiers is by applying thekernel trick to maximum-margin hyperplanes ([34]). The resulting algorithmis formally similar, except that every dot product is replaced by a nonlinearkernel function. This allows the algorithm to fit the maximum-margin hyperplanein a transformed feature space. The transformation may be nonlinear and thetransformed space high dimensional; thus though the classifier is a hyperplane

Page 29: Advanced Project in Computer Science: System-Calls Based

in the high-dimensional feature space, it may be nonlinear in the original inputspace.

An example of such a kernel function is a Gaussian Radial Basis Function(RBF):

k(xi,xj) = exp(−γ‖xi − xj‖2), for γ > 0. Sometimes parametrized usingγ = 1/2σ2

If the kernel used is a Gaussian radial basis function, the correspondingfeature space is a Hilbert space of infinite dimensions.

he kernel is related to the transform ϕ(xi) by the equation k(xi,xj) = ϕ(xi) ·ϕ(xj). The value w is also in the transformed space, with w =

∑i αiyiϕ(xi). Dot

products with w for classification can again be computed by the kernel trick, i.e.w · ϕ(x) =

∑i αiyik(xi,x)

An example for the kernel trick is shown in Figure 7.

Fig. 7. Example of the Kernel Trick

Implementation The IDS Linear SVC classifier was implemented using scikit-learn’s: sklearn.svm.LinearSVC class25.

The IDS SVC classifier was implemented using scikit-learn’s: sklearn.svm.SVCclass26, with a default RBF kernel.

5.4.7 Linear Discriminant Analysis (LDA) Classifier Linear discrimi-nant analysis (LDA) is a generalization of Fisher’s linear discriminant, a methodused to find a linear combination of features that characterizes or separates twoor more classes of objects or events. The resulting combination may be used asa linear classifier ([39]).

25 http://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVC.html26 http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html

Page 30: Advanced Project in Computer Science: System-Calls Based

LDA for Two Classes The variants used here, for a binary classifier:Consider a set of observations x (also called features, attributes, variables or

measurements) for each sample of an object or event with known class y. Thisset of samples is called the training set. The classification problem is then tofind a good predictor for the class y of any sample of the same distribution (notnecessarily from the training set) given only an observation x.

LDA approaches the problem by assuming that the conditional probabilitydensity functions p(x|y = 0) and p(x|y = 1) are both normally distributed withmean and covariance parameters (µ0, Σ0) and(µ1, Σ1), respectively. Under thisassumption, the Bayes optimal solution is to predict points as being from thesecond class if the log of the likelihood ratios is below some threshold T, so that;

(x− µ0)TΣ−10 (x− µ0) + ln |Σ0| − (x− µ1)TΣ−11 (x− µ1)− ln |Σ1| < TWithout any further assumptions, the resulting classifier is referred to as

QDA (quadratic discriminant analysis).LDA instead makes the additional simplifying homoscedasticity assumption

(i.e. that the class covariances are identical, so Σ0 = Σ1 = Σ) and that thecovariances have full rank. In this case, several terms cancel:xTΣ−10 x = xTΣ−11 xxTΣi

−1µi = µiTΣi

−1xbecause Σi is Hermitianand the above decision criterion becomes a threshold on the dot productw · x > cfor some threshold constant c, wherew ∝ Σ−1(µ1 − µ0)c = 1

2 (T − µ0TΣ−10 µ0 + µ1

TΣ−11 µ1)This means that the criterion of an input x being in a class y is purely a

function of this linear combination of the known observations.It is often useful to see this conclusion in geometrical terms: the criterion of an

input x being in a class y is purely a function of projection of multidimensional-space point x onto vector w (thus, we only consider its direction). In otherwords, the observation belongs to y if corresponding x is located on a certainside of a hyperplane perpendicular to w. The location of the plane is defined bythe threshold c.

In practice, the class means and covariances are not known. They can, how-ever, be estimated from the training set. Either the maximum likelihood estimateor the maximum a posteriori estimate may be used in place of the exact valuein the above equations.

Implementation The IDS classifier was implemented using scikit-learn’s: sklearn.lda.LDAclass27.

5.5 Wrapper

All the above parts have different interfaces and, as already mentioned, are inter-dependent from each-other. However, the user want a simple interface to classify

27 http://scikit-learn.org/stable/modules/generated/sklearn.lda.LDA.html

Page 31: Advanced Project in Computer Science: System-Calls Based

a file, without dealing with issues such-as sand-boxing or feature selection. Thus,the IDS Python module is a Facade design pattern28, which provides the userwith a simplified, high-level interface and operates the other modules, as needed,without the user knowledge. The user knows only about this module and usesonly its interface. It provides two external functions:

– The IDS. init () method is identical to the classification.Predictor. init ()method. In-fact, the IDS class inherits from classification.Predictor. This wasdone in-order to be able to use IDS in any function that accepts a classifier(e.g., for plotting the IDS’s decision tree internal classifier, etc.).

– The IDS.inspect() method gets a file path to inspect, calls sandboxing.trace proc in sandbox()(see section 5.1) to record the system calls of it in a sandbox, calls normaliza-tion.normalize() (see section 5.3) on the output file to convert it to a unifiedXML format, calls feature parsing.parse features() (see section 5.3) on theXML file to convert it to a Python dictionary with the proper features andfinally calls IDS.predict() (inherited from Predictor.predict(), shown in sec-tion 5.4) with this dictionary and returns the classification calculated by theclassifier (after transforming the dictionary to a bit vector and performingfeature selection): 1 for a malicious classification or 0 for a benign classifica-tion (and not a Boolean return value, to allow extensibility to the interface,e.g., returning the malware family and 0 for a benign file in the future.

6 Experimental Evaluation of the Basic IDS Model

In-order to test the true positive detection rate of our IDS for both benignsoftware and malware, we’ve used benign files collection from the Program Filesfolder of Windows XP SP3 (Appendix B.1) and from our collection of third partybenign programs (Appendix B.2) and malware from the type of Win32 Virusfrom VxHeaven collection (Appendix B.3). The test set size was 494 benignprograms and 521 malware. The test set benign software and malware can befound in appendices B.4 and B.5, respectively. The files used to test the detectionrate were not used to train the IDS and thus they present code that wasn’tencountered before. The results are shown in table 1.

We can see that all classifiers out-performed random classification (with 50%detection rate for both malware and benign software).

We also see that, as expected, the Bernoulli NB classifier performs betterthan the Gaussian one, because the features are independent booleans.

Except for the NB classifiers (with both Gaussian and Bernoulli distributions)and the RBF-kernel based SVM, most classifiers had similar detection rates.The Random Forest classifier and k-Nearest Neighbors classifier were the bestoverall, taking into account both malware and benign software detection rate(by maximizing the MCC), where the k-Nearest Neighbors classifier was betterin malware detection and the Random Forest classifier was better in benignsoftware detection.

28 https://en.wikipedia.org/wiki/Facade pattern

Page 32: Advanced Project in Computer Science: System-Calls Based

Table 1. Detection Rate of the IDS by Classifier Type

Classifier TypeMalware Detection

Rate (TPR)

Benign SoftwareDetection Rate

(TNR)MCC

Decision Tree 83.37 90.49 0.755

Random Forest 86.07 89.47 0.770

K-Nearest Neighbors 89.36 86.03 0.770

Naıve Bayes (Gaussian) 87.04 54.45 0.503

Naıve Bayes (Bernoulli) 97.87 59.92 0.638

Ada-Boost 87.43 84.82 0.742

Support Vector Machine (Linear) 87.46 86.44 0.756

Support Vector Machine (RBF) 96.32 74.90 0.742

Linear Discriminant Analysis 82.59 82.59 0.682

7 Conclusions

In this paper, we have described the implementation of an IDS based on machine-learning classifier of various types, based on a dynamic analysis of the systemcalls executed by the inspected code, inside a sandbox, as features. We haveshown that each of the classifiers’ type out-performed random classification whilecoping with malicious and benign code which weren’t encountered before. Wesee that Random Forest and k-NN classifiers gives us the best results for thetraining set used. One should note that the results are very close, and a differenttraining and test sets could yield different results.

In our future work in this area, we would compare other classifiers (ArtificialNeural Networks, etc.), which weren’t implemented in the current IDS. We wouldalso try to increase the detection rate of the IDS by increasing the training setand by applying input transformations to the classifier’s input before using it.

Page 33: Advanced Project in Computer Science: System-Calls Based

References

1. Somayaji, A., Forrest, S.: Automated Response Using System-Call Delays. In: Pro-ceedings of the 9th USENIX Security Symposium, pp. 185-198 (2000)

2. Warrender C., Forrest S., Pearlmutter B.: Detecting Intrusions Using System Calls:Alternative data models. In: Proceedings of the 1999 IEEE Symposium on Securityand Privacy, pp. 133–145 (1999)

3. Forrest, S., Hofmeyr, S.A., Somayaji, A., Longsta, T.A.: A Sense of Self for UnixProcesses. In: IEEE Symposium on Security and Privacy, pp. 120-128, IEEE Press,USA (1996)

4. Moskovitch, R., Gus, I., Pluderman, S., Stopel, D., Fermat, Y., Shahar, Y., Elovici,Y.: Host Based Intrusion Detection Using Machine Learning. In: Proceedings ofIntelligence and Security Informatics, pp. 107-114 (2007)

5. Moskovitch R., Nissim N., Stopel D., Feher C., Englert R., Elovici Y.: Improv-ing the Detection of Unknown Computer Worms Activity Using Active Learning.In: Proceedings of the 30th annual German conference on Advances in ArtificialIntelligence, pp. 489 – 493 (2007)

6. Singhal, P., Raul, N.: Malware Detection Module Using Machine Learning Algo-rithms to Assist in Centralized Security in Enterprise Networks. In: InternationalJournal of Network Security & Its Applications, Vol.4, No.1, pp. 661-67 (2012)

7. Rozenberg, B., Gudes, E., Elovici, Y., Fledel, Y.: Method for Detecting UnknownMalicious Executables. In: Proceedings of the 12th International Symposium onRecent Advances in Intrusion Detection, pp. 376-377 (2009)

8. Bayer, U., Kruegel, C., Kirda, E.: TTAnalyze: A Tool for Analyzing Malware.In: Proceedings of the 15th Ann. Conf. European Inst. for Computer AntivirusResearch, pp. 180–192 (2006)

9. Willems, C., Holz, T., Freiling, F.: Toward Automated Dynamic Malware AnalysisUsing CWSandbox. IEEE: Security & Privacy, Volume 5 , Issue: 2, pp. 32 – 39(2007)

10. Hunt, G.C., Brubacher, D.: Detours: Binary Interception of Win32 Functions. In:Proceedings of the 3rd Usenix Windows NT Symp., pp. 135–143 (1999)

11. Caruana, R., Niculescu-Mizil, A.: An Empirical Comparison of Supervised Learn-ing Algorithms. ICML ’06, Proceedings of the 23rd international conference onMachine learning, pp. 161-168.

12. Bellard F.: QEMU, A Fast and Portable Dynamic Translator. Proc. Usenix 2005Ann. Technical Conf. (Usenix ’05), Usenix Assoc., 2005, pp. 41–46.

13. Ferrie P.: Attacks on Virtual Machine Emulators. Symantec Advanced Threat Re-search.

14. Ferrie P.: Attacks on More Virtual Machine Emulators. Symantec Advanced ThreatResearch.

15. Raffetseder, T., Kruegel, C., Kirda, E.: Detecting System Emulators. In: Proceed-ings of Information Security, 10th International Conference, pp. 1-18 (2007)

16. Yin, H., Song, D., Egele, M., Kruegel, C., Kirda, E.: Panorama: Capturing System-wide Information Flow for Malware Detection and Analysis. In: Proceedings of the14th ACM Conference of Computer and Communication Security, pp. 116-127(2007)

17. King, S.T., Chen, P.M., Wang, Y.M., Verbowski, C., Wang, H.J., Lorch, J.R.:SubVirt: Implementing Malware with Virtual Machines. In: Proceedings of the2006 IEEE Symposium on Security and Privacy, pp. 314– 327 (2006)

18. Fritsch H.: Analysis and Detection of Virtualization-Based Rootkits. TUM.

Page 34: Advanced Project in Computer Science: System-Calls Based

19. Moser, A., Kruegel, C., Kirda, E.: Limits of Static Analysis for Malware Detection.In: 23rd Annual Computer Security Applications Conference, pp. 421-430 (2007)

20. Santos, I., Brezo, F., Ugarte-Pedrero, X., Bringas, P.G.: Opcode sequences as rep-resentation of executables for data-mining-based unknown malware detection. In:Information Sciences 227, pp. 63–81 (2013)

21. Shabtai, A., Menahem, E., Elovici, Y.: F-Sign: Automatic, Function-Based Sig-nature Generation for Malware. In: IEEE Trans. Systems, Man, and Cybernet-ics—Part C: Applications and Reviews, vol. 41, no. 4, pp. 494-508 (2011)

22. Quinlan, J.R.: Discovering rules from large collections of examples: A case study.In: Expert Systems in the Microelectronic Age, Michie, D. (Ed.), pp. 168-201 (1979)

23. Rutkowska, J., Tereshkin, A.: IsGameOver() Anyone?. Black Hat USA (2007)24. Yang, Y., Fanglu, G., Susanta, N., Lap-chung, L., Tzi-cker, C.: A Feather-weight

Virtual Machine for Windows Applications. In: Proceedings of the 2nd Interna-tional Conference on Virtual Execution Environments, pp. 24-34 (2006)

25. Guyon, I., Elisseeff, A.: An introduction to Variable and Feature Selection. In:Journal of Machine Learning Research 3, pp. 1157-1182 (2003)

26. Zheng Z., Wu X., Srihari R.: Feature Selection for Text Categorization on Imbal-anced Data. SIGKDD Explorations, 2002, pp. 80-89.

27. Yates, F.: Contingency table involving small numbers and the χ 2 test. In: Journalof the Royal Statistical Society, vol. 1-2, pp. 217-235 (1934)

28. Firdausi, I., Lim, C., Erwin, A.: Analysis of Machine Learning Techniques Usedin Behavior Based Malware Detection. In: Proceedings of 2nd International Con-ference on Advances in Computing, Control and Telecommunication Technologies,pp. 201-203 (2010)

29. Kolter J.Z., Maloof M.A.: Learning to detect and classify malicious executablesin the wild. In: Journal of Machine Learning Research, 7(Dec), pp. 2721 – 2744(2006)

30. Kolter, J.Z., Maloof, M.A.: Learning to detect malicious executables in the wild.In: Proceedings of the 10th International Conference on Knowledge Discovery andData Mining, pp. 470–478 (2004)

31. Schultz M., Eskin E., Zadok E., Stolfo S.: Data mining methods for detection ofnew malicious executables. In: Proceedings of the IEEE Symposium on Securityand Privacy, pp. 38–49 (2001)

32. Tandon, G., Chan, P.: Learning Rules from System Call Arguments and Sequencesfor Anomaly Detection. In: ICDM Workshop on Data Mining for Computer Secu-rity, pp. 20-29, IEEE Press, USA (2003)

33. Egele, M., Scholte, T., Kirda, E., Kruegel, C.: A survey on automated dynamicmalware-analysis techniques and tools. In: ACM Computing Surveys, Vol. 44, No.2, Article 6, pp. 1-42 (2012)

34. Boser, B. E., Guyon, I. M., Vapnik, V. N.: A training algorithm for optimal marginclassifiers. In: Proceedings of the fifth annual workshop on Computational learningtheory - COLT ’92, pp. 144 (1992)

35. Breiman, L.: Random Forests. In: Machine Learning 45 (1): pp. 5–32 (2001)36. Hand, D. J., Yu, K.: Idiot’s Bayes — not so stupid after all?. In: International

Statistical Review 69 (3), pp. 385–399 (2001)37. Altman, N. S.: An introduction to kernel and nearest-neighbor nonparametric re-

gression. In: The American Statistician 46 (3), pp. 175–185 (1992)38. Freund Y., Schapire R. E.: A decision-theoretic generalization of on-line learning

and an application to boosting. In: Journal of Computer and System Sciences,55(1), pp. 119–139 (1997)

Page 35: Advanced Project in Computer Science: System-Calls Based

39. Swets D.L., Weng J.J.: Using Discriminant Eigenfeatures for Image Retrieval. In:IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 18, no. 8, pp. 831-836(1996)

40. Vapnik V., Lerner A.: Pattern recognition using generalized portrait method. In:Automation and Remote Control, 24, pp. 774–780 (1963)

41. Powers D.: Evaluation: From Precision, Recall and F-Measure to ROC, Informed-ness, Markedness & Correlation. In: Journal of Machine Learning Technologies 2(1): 37–63 (2011)

42. Gamma E., Helm R., Johnson R., Vlissides J.: Design Patterns: Elements ofReusable Object-Oriented Software, Addison-Wesley Longman Publishing Co., Inc.Boston, MA, USA (1995)

43. Hoglund G., Butler J.: Rootkits: Subverting the Windows Kernel. Addison-Wesley(2005)

Page 36: Advanced Project in Computer Science: System-Calls Based

A Appendix A: The decision tree used by the IDSclassifier

Attached is the decision tree created from the training set.If the decision tree condition specified in a node is, e.g.: sys call10018=NtEnumerateKey,

this means the right child of this node in the decision path is chosen if sys call[10018]=NtEnumerateKey,and the left chils is chosen if not.

A leaf node has a value vector of [benign training set samples, malicious training set samples].Thus, an inspected code would be classified as malicious if —malicious training set samples—¿ —benign training set samples— at that node, or as benign otherwise.

Page 37: Advanced Project in Computer Science: System-Calls Based

sys_

call1

0018

=N

tEnu

mer

ateK

ey <

= 0

.500

0gi

ni =

0.4

9298

5590

399

sam

ples

= 1

182

sys_

call1

0023

=N

tQue

ryIn

form

atio

nPro

cess

<=

0.5

000

gini

= 0

.127

3343

3305

1sa

mpl

es =

439

sys_

call1

021=

NtO

penM

utan

t <=

0.5

000

gini

= 0

.448

2645

5622

6sa

mpl

es =

743

sys_

call1

002=

NtC

reat

eFile

<=

0.5

000

gini

= 0

.106

3281

0950

2sa

mpl

es =

426

sys_

call1

0012

=N

tDev

iceI

oCon

trol

File

<=

0.5

000

gini

= 0

.497

0414

2011

8sa

mpl

es =

13

sys_

call1

010=

NtO

penT

hrea

dTok

en <

= 0

.500

0gi

ni =

0.0

9860

8945

4476

sam

ples

= 4

23

sys_

call1

026=

NtS

etIn

form

atio

nPro

cess

<=

0.5

000

gini

= 0

.444

4444

4444

4sa

mpl

es =

3

sys_

call1

0160

=N

tOpe

nPro

cess

Tok

enE

x <

= 0

.500

0gi

ni =

0.0

9070

2947

8458

sam

ples

= 4

20

sys_

call1

0204

=N

tClo

se <

= 0

.500

0gi

ni =

0.4

4444

4444

444

sam

ples

= 3

sys_

call1

0226

=N

tRel

ease

Mut

ant <

= 0

.500

0gi

ni =

0.0

8657

9593

4177

sam

ples

= 4

19

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

sys_

call1

0211

=N

tQue

ryP

erfo

rman

ceC

ount

er <

= 0

.500

0gi

ni =

0.0

8241

5695

6114

sam

ples

= 4

18

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

sys_

call1

021=

NtO

penF

ile <

= 0

.500

0gi

ni =

0.0

7821

0812

6448

sam

ples

= 4

17

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

sys_

call1

0158

=N

tQue

ryIn

form

atio

nFile

<=

0.5

000

gini

= 0

.066

1162

9533

54sa

mpl

es =

409

sys_

call1

0010

=N

tQue

ryV

alue

Key

<=

0.5

000

gini

= 0

.468

75sa

mpl

es =

8

sys_

call1

0046

=N

tWai

tFor

Sin

gleO

bjec

t <=

0.5

000

gini

= 0

.057

5034

2935

53sa

mpl

es =

405

sys_

call1

0004

=N

tWai

tFor

Sin

gleO

bjec

t <=

0.5

000

gini

= 0

.5sa

mpl

es =

4

sys_

call1

0187

=N

tQue

ryIn

form

atio

nPro

cess

<=

0.5

000

gini

= 0

.053

1005

0551

39sa

mpl

es =

403

sys_

call1

0252

=N

tRea

dVirt

ualM

emor

y <

= 0

.500

0gi

ni =

0.5

sam

ples

= 2

sys_

call1

021=

NtO

penP

roce

ssT

oken

<=

0.5

000

gini

= 0

.048

6315

3836

11sa

mpl

es =

401

sys_

call1

0186

=N

tQue

ryIn

form

atio

nPro

cess

<=

0.5

000

gini

= 0

.5sa

mpl

es =

2

sys_

call1

0192

=N

tQue

ryV

alue

Key

<=

0.5

000

gini

= 0

.044

0952

0040

7sa

mpl

es =

399

gini

= 0

.500

0sa

mpl

es =

2va

lue

= [

1.

1.]

sys_

call1

0025

=N

tQue

ryIn

form

atio

nFile

<=

0.5

000

gini

= 0

.039

4901

3063

97sa

mpl

es =

397

sys_

call1

0202

=N

tQue

ryIn

form

atio

nFile

<=

0.5

000

gini

= 0

.5sa

mpl

es =

2

sys_

call1

0127

=N

tOpe

nFile

<=

0.5

000

gini

= 0

.034

8149

3350

42sa

mpl

es =

395

sys_

call1

0094

=N

tCre

ateE

vent

<=

0.5

000

gini

= 0

.5sa

mpl

es =

2

sys_

call1

0056

=N

tQue

ryF

ullA

ttrib

utes

File

<=

0.5

000

gini

= 0

.030

1436

9012

91sa

mpl

es =

392

sys_

call1

0268

=N

tQue

ryK

ey <

= 0

.500

0gi

ni =

0.4

4444

4444

444

sam

ples

= 3

sys_

call1

0106

=N

tWai

tFor

Sin

gleO

bjec

t <=

0.5

000

gini

= 0

.025

4410

6706

34sa

mpl

es =

388

sys_

call1

000=

NtO

penK

ey <

= 0

.500

0gi

ni =

0.3

75sa

mpl

es =

4

sys_

call1

0106

=N

tWrit

eFile

<=

0.5

000

gini

= 0

.020

6163

1944

44sa

mpl

es =

384

sys_

call1

018=

NtS

etIn

form

atio

nFile

<=

0.5

000

gini

= 0

.375

sam

ples

= 4

sys_

call1

0111

=N

tMap

Vie

wO

fSec

tion

<=

0.5

000

gini

= 0

.015

6648

1994

46sa

mpl

es =

380

sys_

call1

000=

NtS

etIn

form

atio

nPro

cess

<=

0.5

000

gini

= 0

.375

sam

ples

= 4

sys_

call1

0181

=N

tOpe

nKey

<=

0.5

000

gini

= 0

.010

6097

7777

78sa

mpl

es =

375

sys_

call1

0050

=N

tRel

ease

Mut

ant <

= 0

.500

0gi

ni =

0.3

2sa

mpl

es =

5

gini

= 0

.000

0sa

mpl

es =

253

valu

e =

[ 2

53.

0.]

sys_

call1

0015

=N

tWrit

eFile

<=

0.5

000

gini

= 0

.032

2493

9532

38sa

mpl

es =

122

sys_

call1

0000

=N

tUnm

apV

iew

OfS

ectio

n <

= 0

.500

0gi

ni =

0.0

1652

7777

7778

sam

ples

= 1

20

sys_

call1

0009

=N

tDev

iceI

oCon

trol

File

<=

0.5

000

gini

= 0

.5sa

mpl

es =

2

gini

= 0

.000

0sa

mpl

es =

110

valu

e =

[ 1

10.

0.]

sys_

call1

000=

NtS

etE

vent

Boo

stP

riorit

y <

= 0

.500

0gi

ni =

0.1

8sa

mpl

es =

10

sys_

call1

0109

=N

tCre

ateF

ile <

= 0

.500

0gi

ni =

0.5

sam

ples

= 2

gini

= 0

.000

0sa

mpl

es =

8va

lue

= [

8.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

4va

lue

= [

4.

0.]gi

ni =

0.0

000

sam

ples

= 3

valu

e =

[ 3

. 0.

]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

3va

lue

= [

3.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

3va

lue

= [

3.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

2.

0.]gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]gi

ni =

0.0

000

sam

ples

= 1

valu

e =

[ 0

. 1.

]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

0.

2.]

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

2.

0.]

sys_

call1

0238

=N

tOpe

nKey

<=

0.5

000

gini

= 0

.277

7777

7777

8sa

mpl

es =

6

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

0.

2.]

gini

= 0

.000

0sa

mpl

es =

4va

lue

= [

4.

0.]

sys_

call1

027=

NtO

penK

ey <

= 0

.500

0gi

ni =

0.5

sam

ples

= 2

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

0.

2.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

0.

2.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

sys_

call1

0209

=N

tRel

ease

Mut

ant <

= 0

.500

0gi

ni =

0.2

1875

sam

ples

= 8

gini

= 0

.000

0sa

mpl

es =

5va

lue

= [

0.

5.]

gini

= 0

.000

0sa

mpl

es =

7va

lue

= [

7.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

sys_

call1

0194

=N

tYie

ldE

xecu

tion

<=

0.5

000

gini

= 0

.388

7232

6787

5sa

mpl

es =

655

sys_

call1

0008

=N

tEnu

mer

ateV

alue

Key

<=

0.5

000

gini

= 0

.183

6260

3305

8sa

mpl

es =

88

sys_

call1

0088

=N

tClo

se <

= 0

.500

0gi

ni =

0.3

3466

3257

965

sam

ples

= 5

93

sys_

call1

0186

=N

tQue

ryIn

form

atio

nTok

en <

= 0

.500

0gi

ni =

0.3

6680

5411

03sa

mpl

es =

62

sys_

call1

000=

NtO

penF

ile <

= 0

.500

0gi

ni =

0.2

9772

9080

432

sam

ples

= 5

55

sys_

call1

001=

NtA

lloca

teV

irtua

lMem

ory

<=

0.5

000

gini

= 0

.450

1385

0415

5sa

mpl

es =

38

sys_

call1

003=

NtF

lush

Inst

ruct

ionC

ache

<=

0.5

000

gini

= 0

.388

9549

4781

3sa

mpl

es =

348

sys_

call1

0256

=N

tQue

ryD

irect

oryF

ile <

= 0

.500

0gi

ni =

0.0

8317

5803

4026

sam

ples

= 2

07

sys_

call1

011=

NtO

penT

hrea

dTok

en <

= 0

.500

0gi

ni =

0.3

7426

5787

188

sam

ples

= 3

41

gini

= 0

.000

0sa

mpl

es =

7va

lue

= [

7.

0.]

sys_

call1

0181

=N

tOpe

nPro

cess

Tok

enE

x <

= 0

.500

0gi

ni =

0.3

5799

0605

615

sam

ples

= 3

34

gini

= 0

.000

0sa

mpl

es =

7va

lue

= [

7.

0.]

sys_

call1

0016

=N

tOpe

nThr

eadT

oken

<=

0.5

000

gini

= 0

.460

9645

3287

2sa

mpl

es =

136

sys_

call1

0009

=N

tRel

ease

Mut

ant <

= 0

.500

0gi

ni =

0.2

5002

5507

601

sam

ples

= 1

98

sys_

call1

0186

=N

tQue

ryK

ey <

= 0

.500

0gi

ni =

0.4

9849

0520

469

sam

ples

= 9

1

sys_

call1

0201

=N

tQue

ryF

ullA

ttrib

utes

File

<=

0.5

000

gini

= 0

.231

1111

1111

1sa

mpl

es =

45

sys_

call1

019=

NtC

reat

eEve

nt <

= 0

.500

0gi

ni =

0.4

6964

9233

354

sam

ples

= 6

9

sys_

call1

0056

=N

tYie

ldE

xecu

tion

<=

0.5

000

gini

= 0

.351

2396

6942

1sa

mpl

es =

22

sys_

call1

020=

NtR

esum

eThr

ead

<=

0.5

000

gini

= 0

.492

9617

9258

8sa

mpl

es =

59

gini

= 0

.000

0sa

mpl

es =

10

valu

e =

[ 0

. 10

.]

sys_

call1

0026

=N

tOpe

nThr

eadT

oken

Ex

<=

0.5

000

gini

= 0

.499

8077

6624

4sa

mpl

es =

51

gini

= 0

.000

0sa

mpl

es =

8va

lue

= [

0.

8.]

sys_

call1

0261

=N

tOpe

nSec

tion

<=

0.5

000

gini

= 0

.494

3413

3091

9sa

mpl

es =

47

gini

= 0

.000

0sa

mpl

es =

4va

lue

= [

0.

4.]

sys_

call1

000=

NtQ

uery

Dire

ctor

yFile

<=

0.5

000

gini

= 0

.5sa

mpl

es =

42

gini

= 0

.000

0sa

mpl

es =

5va

lue

= [

5.

0.]

sys_

call1

0282

=N

tQue

ryD

efau

ltLoc

ale

<=

0.5

000

gini

= 0

.489

7959

1836

7sa

mpl

es =

35

sys_

call1

0100

=N

tWai

tFor

Sin

gleO

bjec

t <=

0.5

000

gini

= 0

.244

8979

5918

4sa

mpl

es =

7

sys_

call1

0216

=N

tQue

ryD

efau

ltLoc

ale

<=

0.5

000

gini

= 0

.499

4797

0863

7sa

mpl

es =

31

gini

= 0

.000

0sa

mpl

es =

4va

lue

= [

0.

4.]

sys_

call1

004=

NtM

apV

iew

OfS

ectio

n <

= 0

.500

0gi

ni =

0.4

8611

1111

111

sam

ples

= 2

4

sys_

call1

0008

=N

tAcc

essC

heck

ByT

ype

<=

0.5

000

gini

= 0

.244

8979

5918

4sa

mpl

es =

7

sys_

call1

027=

NtO

penF

ile <

= 0

.500

0gi

ni =

0.4

7637

0510

397

sam

ples

= 2

3

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

sys_

call1

0001

=N

tDev

iceI

oCon

trol

File

<=

0.5

000

gini

= 0

.462

8099

1735

5sa

mpl

es =

22

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

sys_

call1

0264

=N

tRel

ease

Mut

ant <

= 0

.500

0gi

ni =

0.4

4444

4444

444

sam

ples

= 2

1

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

sys_

call1

019=

NtC

reat

eMut

ant <

= 0

.500

0gi

ni =

0.4

6537

3961

219

sam

ples

= 1

9

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

2.

0.]

sys_

call1

027=

NtN

otify

Cha

ngeK

ey <

= 0

.500

0gi

ni =

0.4

2603

5502

959

sam

ples

= 1

3

gini

= 0

.500

0sa

mpl

es =

6va

lue

= [

3.

3.]

sys_

call1

0186

=N

tQue

ryP

erfo

rman

ceC

ount

er <

= 0

.500

0gi

ni =

0.4

4444

4444

444

sam

ples

= 1

2

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

sys_

call1

0019

=N

tRea

dFile

<=

0.5

000

gini

= 0

.462

8099

1735

5sa

mpl

es =

11

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

gini

= 0

.500

0sa

mpl

es =

2va

lue

= [

1.

1.]

gini

= 0

.444

4sa

mpl

es =

9va

lue

= [

6.

3.]

sys_

call1

0247

=N

tRea

dFile

<=

0.5

000

gini

= 0

.32

sam

ples

= 5

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

0.

2.]

gini

= 0

.444

4sa

mpl

es =

3va

lue

= [

1.

2.]

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

0.

2.]

gini

= 0

.000

0sa

mpl

es =

6va

lue

= [

6.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

sys_

call1

020=

NtS

etE

vent

<=

0.5

000

gini

= 0

.308

3900

2267

6sa

mpl

es =

21

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.426

0sa

mpl

es =

13

valu

e =

[ 9

. 4.

]

gini

= 0

.000

0sa

mpl

es =

8va

lue

= [

8.

0.]

sys_

call1

003=

NtO

penF

ile <

= 0

.500

0gi

ni =

0.1

3265

3061

224

sam

ples

= 4

2

gini

= 0

.000

0sa

mpl

es =

3va

lue

= [

3.

0.]

sys_

call1

0053

=N

tOpe

nFile

<=

0.5

000

gini

= 0

.049

9671

2689

02sa

mpl

es =

39

sys_

call1

0025

=N

tQue

ryD

irect

oryF

ile <

= 0

.500

0gi

ni =

0.4

4444

4444

444

sam

ples

= 3

gini

= 0

.000

0sa

mpl

es =

38

valu

e =

[ 0

. 38

.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

2.

0.]

sys_

call1

0000

=N

tQue

ryD

efau

ltLoc

ale

<=

0.5

000

gini

= 0

.075

0732

4218

75sa

mpl

es =

128

sys_

call1

007=

NtO

penT

hrea

dTok

enE

x <

= 0

.500

0gi

ni =

0.4

5061

2244

898

sam

ples

= 7

0

sys_

call1

0200

=N

tOpe

nThr

eadT

oken

<=

0.5

000

gini

= 0

.061

0081

2201

62sa

mpl

es =

127

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

sys_

call1

0013

=N

tOpe

nKey

<=

0.5

000

gini

= 0

.046

4852

6077

1sa

mpl

es =

126

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

sys_

call1

022=

NtS

etV

alue

Key

<=

0.5

000

gini

= 0

.031

488

sam

ples

= 1

25

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

sys_

call1

0194

=N

tWrit

eFile

<=

0.5

000

gini

= 0

.017

8556

9353

14sa

mpl

es =

111

sys_

call1

0256

=N

tQue

ryD

irect

oryF

ile <

= 0

.500

0gi

ni =

0.1

3265

3061

224

sam

ples

= 1

4

gini

= 0

.000

0sa

mpl

es =

74

valu

e =

[ 0

. 74

.]

sys_

call1

0005

=N

tReg

iste

rThr

eadT

erm

inat

ePor

t <=

0.5

000

gini

= 0

.052

5931

3367

42sa

mpl

es =

37

sys_

call1

0014

=N

tYie

ldE

xecu

tion

<=

0.5

000

gini

= 0

.5sa

mpl

es =

2

gini

= 0

.000

0sa

mpl

es =

35

valu

e =

[ 0

. 35

.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

gini

= 0

.000

0sa

mpl

es =

13

valu

e =

[ 0

. 13

.]

sys_

call1

0111

=N

tRel

ease

Mut

ant <

= 0

.500

0gi

ni =

0.4

1372

7810

651

sam

ples

= 6

5

gini

= 0

.000

0sa

mpl

es =

5va

lue

= [

5.

0.]

sys_

call1

0239

=N

tQue

ryIn

form

atio

nPro

cess

<=

0.5

000

gini

= 0

.375

sam

ples

= 6

0

sys_

call1

004=

NtC

onne

ctP

ort <

= 0

.500

0gi

ni =

0.3

2sa

mpl

es =

5

sys_

call1

0026

=N

tSet

Val

ueK

ey <

= 0

.500

0gi

ni =

0.3

4780

0237

812

sam

ples

= 5

8

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

2.

0.]

sys_

call1

0125

=N

tAllo

cate

Virt

ualM

emor

y <

= 0

.500

0gi

ni =

0.3

1568

8775

51sa

mpl

es =

56

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

2.

0.]

sys_

call1

000=

NtF

lush

Inst

ruct

ionC

ache

<=

0.5

000

gini

= 0

.277

7777

7777

8sa

mpl

es =

54

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

2.

0.]

sys_

call1

003=

NtO

penF

ile <

= 0

.500

0gi

ni =

0.2

112

sam

ples

= 5

0

sys_

call1

0019

=N

tRea

dVirt

ualM

emor

y <

= 0

.500

0gi

ni =

0.3

75sa

mpl

es =

4

sys_

call1

0145

=N

tSet

Info

rmat

ionT

hrea

d <

= 0

.500

0gi

ni =

0.0

95sa

mpl

es =

40

sys_

call1

0038

=N

tOpe

nFile

<=

0.5

000

gini

= 0

.48

sam

ples

= 1

0

sys_

call1

0038

=N

tOpe

nKey

<=

0.5

000

gini

= 0

.049

9671

2689

02sa

mpl

es =

39

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

gini

= 0

.000

0sa

mpl

es =

37

valu

e =

[ 0

. 37

.]

sys_

call1

0282

=N

tQue

ryA

ttrib

utes

File

<=

0.5

000

gini

= 0

.5sa

mpl

es =

2

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

sys_

call1

0207

=N

tSet

Info

rmat

ionT

hrea

d <

= 0

.500

0gi

ni =

0.3

75sa

mpl

es =

8

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

2.

0.]

gini

= 0

.000

0sa

mpl

es =

5va

lue

= [

0.

5.]

sys_

call1

0144

=N

tRea

dFile

<=

0.5

000

gini

= 0

.444

4444

4444

4sa

mpl

es =

3

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

2.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]gi

ni =

0.0

000

sam

ples

= 3

valu

e =

[ 3

. 0.

]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

4va

lue

= [

4.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

sys_

call1

0015

=N

tOpe

nFile

<=

0.5

000

gini

= 0

.493

8271

6049

4sa

mpl

es =

9

sys_

call1

0020

=N

tDup

licat

eTok

en <

= 0

.500

0gi

ni =

0.0

4922

9670

4418

sam

ples

= 1

98

gini

= 0

.000

0sa

mpl

es =

5va

lue

= [

0.

5.]

gini

= 0

.000

0sa

mpl

es =

4va

lue

= [

4.

0.]

sys_

call1

0020

=N

tQue

ryIn

form

atio

nPro

cess

<=

0.5

000

gini

= 0

.030

2958

5798

82sa

mpl

es =

195

sys_

call1

006=

NtC

lose

<=

0.5

000

gini

= 0

.444

4444

4444

4sa

mpl

es =

3

sys_

call1

001=

NtR

elea

seM

utan

t <=

0.5

000

gini

= 0

.020

5106

1773

47sa

mpl

es =

193

sys_

call1

0209

=N

tYie

ldE

xecu

tion

<=

0.5

000

gini

= 0

.5sa

mpl

es =

2

sys_

call1

0029

=N

tQue

ryV

irtua

lMem

ory

<=

0.5

000

gini

= 0

.010

4709

1412

74sa

mpl

es =

190

sys_

call1

003=

NtN

otify

Cha

ngeK

ey <

= 0

.500

0gi

ni =

0.4

4444

4444

444

sam

ples

= 3

gini

= 0

.000

0sa

mpl

es =

185

valu

e =

[

0. 1

85.]

sys_

call1

0020

=N

tQue

ryIn

form

atio

nFile

<=

0.5

000

gini

= 0

.32

sam

ples

= 5

gini

= 0

.000

0sa

mpl

es =

4va

lue

= [

0.

4.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

0.

2.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

2.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

sys_

call1

005=

NtW

aitF

orS

ingl

eObj

ect <

= 0

.500

0gi

ni =

0.3

4179

6875

sam

ples

= 3

2

gini

= 0

.000

0sa

mpl

es =

6va

lue

= [

0.

6.]

sys_

call1

0098

=N

tOpe

nThr

eadT

oken

<=

0.5

000

gini

= 0

.191

3265

3061

2sa

mpl

es =

28

gini

= 0

.000

0sa

mpl

es =

4va

lue

= [

0.

4.]

sys_

call1

0145

=N

tSet

Info

rmat

ionT

hrea

d <

= 0

.500

0gi

ni =

0.0

7396

4497

0414

sam

ples

= 2

6

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

0.

2.]

gini

= 0

.000

0sa

mpl

es =

25

valu

e =

[ 2

5.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

sys_

call1

0031

=N

tRep

lyW

aitR

ecei

veP

ortE

x <

= 0

.500

0gi

ni =

0.2

6977

0408

163

sam

ples

= 5

6

gini

= 0

.000

0sa

mpl

es =

6va

lue

= [

0.

6.]

sys_

call1

0270

=N

tQue

ryD

efau

ltLoc

ale

<=

0.5

000

gini

= 0

.173

8165

6804

7sa

mpl

es =

52

gini

= 0

.000

0sa

mpl

es =

4va

lue

= [

0.

4.]

sys_

call1

001=

NtO

penT

hrea

dTok

en <

= 0

.500

0gi

ni =

0.1

128

sam

ples

= 5

0

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

0.

2.]

sys_

call1

013=

NtQ

uery

Virt

ualM

emor

y <

= 0

.500

0gi

ni =

0.0

4079

8611

1111

sam

ples

= 4

8

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

0.

2.]

gini

= 0

.000

0sa

mpl

es =

47

valu

e =

[ 4

7.

0.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

sys_

call1

0014

=N

tQue

ryD

efau

ltLoc

ale

<=

0.5

000

gini

= 0

.111

9614

5124

7sa

mpl

es =

84

gini

= 0

.000

0sa

mpl

es =

4va

lue

= [

0.

4.]

sys_

call1

0038

=N

tOpe

nThr

eadT

oken

<=

0.5

000

gini

= 0

.070

4937

5371

8sa

mpl

es =

82

gini

= 0

.000

0sa

mpl

es =

2va

lue

= [

0.

2.]

sys_

call1

0075

=N

tRel

ease

Mut

ant <

= 0

.500

0gi

ni =

0.0

4816

3389

7272

sam

ples

= 8

1

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

sys_

call1

000=

NtO

penS

ectio

n <

= 0

.500

0gi

ni =

0.0

2468

75sa

mpl

es =

80

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

78

valu

e =

[ 7

8.

0.]

sys_

call1

0008

=N

tQue

ryIn

form

atio

nTok

en <

= 0

.500

0gi

ni =

0.5

sam

ples

= 2

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

0.

1.]

gini

= 0

.000

0sa

mpl

es =

1va

lue

= [

1.

0.]

Page 38: Advanced Project in Computer Science: System-Calls Based

B Appendix B: Lists of Programs and Viruses Used bythe IDS

B.1 System32 Benign Programs List (Original DB)

1. accwiz.exe2. actmovie.exe3. agentsvr.exe4. ahui.exe5. append.exe6. arp.exe7. asr fmt.exe8. asr ldm.exe9. asr pfu.exe

10. atmadm.exe11. attrib.exe12. auditusr.exe13. author.exe14. bckgzm.exe15. blastcln.exe16. bootcfg.exe17. bootok.exe18. bootvrfy.exe19. cacls.exe20. calc.exe21. cb32.exe22. cfgwiz.exe23. change.exe24. charmap.exe25. chglogon.exe26. chgport.exe27. chgusr.exe28. chkdsk.exe29. chkntfs.exe30. chkrzm.exe31. cidaemon.exe32. cintsetp.exe33. cisvc.exe34. ckcnv.exe35. cleanmgr.exe36. cliconfg.exe37. clipbrd.exe38. clipsrv.exe39. cmd.exe40. cmdl32.exe41. cmmon32.exe

Page 39: Advanced Project in Computer Science: System-Calls Based

42. cmstp.exe43. comp.exe44. compact.exe45. comrepl.exe46. comrereg.exe47. conf.exe48. conime.exe49. control.exe50. convert.exe51. convlog.exe52. cplexe.exe53. cprofile.exe54. cscript.exe55. ctfmon.exe56. davcdata.exe57. dcomcnfg.exe58. ddeshare.exe59. debug.exe60. defrag.exe61. dfrgfat.exe62. dfrgntfs.exe63. diantz.exe64. diskpart.exe65. diskperf.exe66. dllhst3g.exe67. dmremote.exe68. doskey.exe69. dosx.exe70. dplaysvr.exe71. dpnsvr.exe72. dpvsetup.exe73. drvqry.exe74. drwatson.exe75. drwtsn32.exe76. dumprep.exe77. dvdupgrd.exe78. dwwin.exe79. dxdiag.exe80. edlin.exe81. esentutl.exe82. eudcedit.exe83. evcreate.exe84. eventvwr.exe85. evntcmd.exe86. evntwin.exe87. evtrig.exe

Page 40: Advanced Project in Computer Science: System-Calls Based

88. EXCH regtrace.exe89. exe2bin.exe90. expand.exe91. explorer.exe92. extrac32.exe93. fastopen.exe94. fc.exe95. find.exe96. findstr.exe97. finger.exe98. fixmapi.exe99. flattemp.exe

100. fontview.exe101. forcedos.exe102. fp98sadm.exe103. fp98swin.exe104. fpadmcgi.exe105. fpcount.exe106. fpremadm.exe107. freecell.exe108. fsutil.exe109. ftp.exe110. fxsclnt.exe111. fxscover.exe112. fxssend.exe113. fxssvc.exe114. gdi.exe115. getmac.exe116. gprslt.exe117. gpupdate.exe118. grpconv.exe119. help.exe120. helpctr.exe121. helphost.exe122. helpsvc.exe123. hh.exe124. hostname.exe125. hrtzzm.exe126. hscupd.exe127. icwconn1.exe128. icwconn2.exe129. icwrmind.exe130. icwtutor.exe131. ie4uinit.exe132. iedw.exe133. iexplore.exe

Page 41: Advanced Project in Computer Science: System-Calls Based

134. iexpress.exe135. iisreset.exe136. iisrstas.exe137. iissync.exe138. imapi.exe139. imekrmig.exe140. imepadsv.exe141. imjpdadm.exe142. imjpdct.exe143. imjpdsvr.exe144. imjpinst.exe145. imjpmig.exe146. imjprw.exe147. imjpuex.exe148. imjputy.exe149. imkrinst.exe150. imscinst.exe151. inetin51.exe152. inetmgr.exe153. inetwiz.exe154. ipconfig.exe155. ipsec6.exe156. ipv6.exe157. ipxroute.exe158. isignup.exe159. krnl386.exe160. label.exe161. lhmstsc.exe162. lights.exe163. lnkstub.exe164. locator.exe165. lodctr.exe166. logagent.exe167. logman.exe

B.2 Third-Party Benign Programs List (Original DB)

1. $0.exe2. 007 PresentationHost X86.exe3. MSRSTRT.EXE.exe4. 3DVision 285.62.exe5. 50comupd.exe6. 7zFMn.exe7. 7zgn.exe8. aaw2007 13.exe9. acdsee-15.exe

Page 42: Advanced Project in Computer Science: System-Calls Based

10. acdsee2009-11-0-113-en.exe11. Ad-AwareAE.exe12. adxregistrator.exe13. aeldr.exe14. AIMLang.exe15. Alcohol.exe16. ALUSDSVC.EXE.exe17. AppleMobileDeviceHelper.exe18. AppUpgrade.exe19. ASBarBroker.exe20. asvc.exe21. avc-free 25.exe22. avc-free 8.exe23. avc-free 85.exe24. avgscanx.exe25. avgsystx.exe26. avhlp.exe27. avidemux.exe28. avidemux jobs.exe29. AVMCDLG.exe30. avnotify.exe31. AVNOTIFY.EXE.exe32. avrestart.exe33. AWSC.exe34. AxAutoMntSrv.exe35. AxCmd.exe36. Azureus 3 0 windows.exe37. BackItUp.exe38. backup.exe39. BANG.EXE.exe40. BCompare-3.2.3.13046.exe41. BCompare-3.3.8.16340.exe42. beta 6.exe43. Binaries.exe44. Binary.InstUpdate.exe45. BitComet.exe46. BitComet.RegTool.$[52].exe47. BitTorrent.exe48. BitTorrent 16.exe49. BitTorrent 23.exe50. BitTorrent 33.exe51. BitTorrent 34.exe52. BitTorrent 9.exe53. Boomerang.exe54. bootexctrl.exe55. btwizard.exe

Page 43: Advanced Project in Computer Science: System-Calls Based

56. BugReport.exe57. bunzip2.exe58. cal.exe59. ccIMScn.exe60. CCleaner.exe61. ccSetMgr.exe62. ChangeIcon.exe63. CheatEngine62 2.exe64. chrome.exe65. CLDetect.exe66. cleaner.exe67. codecmanager.exe68. CometBrowser.exe69. comm.exe70. compress.exe71. conf.exe72. config.exe73. corecmd.exe74. Corel PaintShopPro1000 EN TBYB TrialESD.exe75. CoverDesC69A8C2C.exe76. CrashReport.exe77. CS Dv32 5.exe78. CWShredder 3.exe79. DeepBurner.exe80. default.exe81. defaults.exe82. devcon.exe83. df.exe84. digsby.exe85. dirname.exe86. DiscSpeed56258BEC.exe87. disthelper.exe88. dMC-R14-Ref-Trial.exe89. dotmacsyncclient.exe90. dotNetFx40 Client x86 x64.exe91. DPLaunch.exe92. dpnsvr.exe93. dtexec.exe94. DW20.EXE.exe95. DX9NT.exe96. dxdiag.exe97. editcap.exe98. emoticonSelector.exe99. emule.exe

100. epm 9.exe101. ethereal.exe

Page 44: Advanced Project in Computer Science: System-Calls Based

102. Evernote 3.5.2.1663 2.exe103. Evernote 3.5.6.2848.exe104. extrac32.exe105. eye-candy-7.1.0.1184 2.exe106. F.bin.myisamlog.exe107. F.bin.mysqlcheck.exe108. F.bin.mysqlimport.exe109. F.bin.mysqlshow.exe110. fact.exe111. fd35beta 2.exe112. fd35beta 5.exe113. fd35beta 6.exe114. fd4beta 3.exe115. FFPage.exe116. FGOpenHelpOption.exe117. file x86 StartW8Button.exe118. file x86 StartW8Service.exe119. FileZilla.exe120. flash.exe121. Flashget3.exe122. FlashGetOpenHelp.exe123. fold.exe124. FPVGettingStarted.exe125. FreemakeVideoConverter 2.1.2.0.exe126. FreemakeVideoConverter 2.1.2.1.exe127. FreemakeVideoConverter 2.3.2.0 2.exe128. FreemakeVideoConverter 2.4.0.2.exe129. FreemakeVideoConverter 2.4.0.8.exe130. FreemakeVideoConverter 3.0.1.1 2.exe131. FreemakeVideoConverter 3.0.1.10 2.exe132. FreemakeVideoConverter 3.0.1.3.exe133. FreemakeVideoConverter 3.0.2.15 2.exe134. FreemakeVideoConverter 3.1.2.0.exe135. FreemakeVideoConverter 4.0.0.5.exe136. FreemakeVideoConverter 4.0.1.3 2.exe137. FreemakeVideoConverter 4.0.1.5.exe138. FreemakeVideoConverter 4.0.2.13.exe139. FreemakeVideoConverter 4.0.2.14.exe140. FreemakeVideoConverter 4.0.2.18 2.exe141. FreemakeVideoConverter 4.0.2.2.exe142. gdpluginregister.exe143. GenerateJavaInterfaces.exe144. GenPat.exe145. GenRNKey.exe146. Gizmo5.exe147. GOM.EXE.exe

Page 45: Advanced Project in Computer Science: System-Calls Based

148. Google Earth EARG opt ff2 en-US.exe149. GoogleEarth4.2.180.1134.exe150. GoogleEarth4.2.181.2634.exe151. GoogleEarthWin 31.exe152. GoogleSketchUpWEN 10.exe153. GoogleSketchUpWEN 14.exe154. googletalk.exe155. GPU-Z.0.2.2 2.exe156. GPU-Z.0.2.8.exe157. GPU-Z.0.3.0.exe158. GPU-Z.0.3.2.exe159. GPU-Z.0.4.4.exe160. GPU-Z.0.5.0.exe161. GPU-Z.0.5.2.exe162. GPU-Z.0.5.5.exe163. GPU-Z.0.5.8.exe164. GPU-Z.0.6.4.exe165. GPU-Z.0.6.9.exe166. gspawn-win32-helper.exe167. gt.exe168. GTGCAPI.exe169. guard.exe170. GUARDGUI.EXE.exe171. Handbrake.exe172. head.exe173. Icon. 0303ABFCEA91CC458E85F5.exe174. Icon. 1184C67D76B1A4F6A92566.exe175. Icon. 156D70CAFB2BEE2ABE5748.exe176. Icon. 1FB51FDFCFA205F65BC588.exe177. Icon. 21F3885A18D238E15AAE81.exe178. Icon. 2314181B58997B6BCD7B79.exe179. Icon. 35BD4E88C121C15C5E2BF7.exe180. Icon. 59B301794351CEEAEF58DF.exe181. Icon. 6117BD307EC3285D33AFDB.exe182. Icon. 6FB838DCF5B179E225A45C.exe183. Icon. 6FEFF9B68218417F98F549.exe184. Icon. 768AB02C92FD35ABB7BD7B.exe185. Icon. 7DC9B802A0B4DFC670F340.exe186. Icon. 873F20797E2368199D2062.exe187. Icon. 9AFF48FAF9D2857DECD996.exe188. Icon. A0EF104B0724158C88DE82.exe189. Icon. AA3D3FDCACE452535CE053.exe190. Icon. ADB6F693FF863D7D745BDE.exe191. Icon. B31CA4D2B598F948A2C35E.exe192. Icon. BEFA7CFB89910355116CC4.exe193. Icon. C6DAF7E354977BBC39A2B1.exe

Page 46: Advanced Project in Computer Science: System-Calls Based

194. Icon. D263814FC8E1FA49FCA3F9.exe195. Icon. D707CE1C009F1381803C2C.exe196. Icon. DC0818A5B4E79AC3E76C6F.exe197. Icon. E91286A1D4687069204F8C.exe198. Icon. FB7C2905E8DA11F2EBCB4B.exe199. Icon. FC68627DD502D4637AC328.exe200. Icon.eset.exe201. Icon.ico kss.1.0.0.468.ico.exe202. Icon.MsblIco.Exe.exe203. Icon.POWERARC.exe204. Icon.scalc.exe205. Icon.ShortcutOGL EB071909B9884F8CBF3D6115D4ADEE5E.exe206. Icon.soffice.exe207. iconworkshop 13.exe208. iconworkshop 15.exe209. iconworkshop 6.exe210. id.exe211. idman612 3.exe212. idman612 4.exe213. idman615.exe214. idman615 2.exe215. idman615 6.exe216. idman615 9.exe217. idman616 2.exe218. idman617.exe219. idman617b2.exe220. idman617b3.exe221. idman617b6.exe222. idman617b7.exe223. IdsInst.exe224. IM7z.exe225. iMeshV6 4.exe226. ImportDS.exe227. InCDE744FC5C.exe228. InCDsv9xFF985424.exe229. insthlp.exe230. ipdrvupd.exe231. isobuster all lang 14.exe232. isobuster all lang 15.exe233. isobuster all lang 16.exe234. isobuster all lang 17.exe235. isobuster all lang 25.exe236. iview399.exe237. JkDefrag.exe238. JkDefragCmd.exe239. jqsnotify.exe

Page 47: Advanced Project in Computer Science: System-Calls Based

240. jureg.exe241. jusched.exe242. kerio.exe243. kerio-kpf-4.2.1-896-win 2.exe244. KindleForPC.exe245. lame.exe246. Languages.exe247. LanguageSelector.exe248. lesskey.exe249. LicenseActivator.exe250. loader.exe251. LogitechUpdate.exe252. ls.exe253. LSPVIEW.EXE.exe254. LSUpdateManager.exe255. LuAll.exe256. LUCheck.EXE.exe257. LUInit.exe258. m1s cn.exe259. MakeLangId.exe260. MapCalibrator.exe261. mbsa.exe262. md5sum.exe263. MediaEspresso.exe264. MediaMonkey 3.0.2.1134.exe265. MediaMonkey 3.1.0.1201 Debug.exe266. MediaMonkey 3.1.0.1213 Debug.exe267. MediaMonkey 3.1.2.1267.exe268. MediaMonkey 3.2.2.1299.exe269. MediaMonkey 4.0.3.1472.exe270. MediaMonkey 4.0.5.1494.exe271. MediaPortal.DeployTool.exe272. mirc719.exe273. modern.exe274. msgr7us 2.exe275. msi pkgchk.exe276. msi-pkgchk.exe277. navigator.exe278. NBSFtpD4BC8A15.exe279. nconvert.exe280. ndiff.exe281. Nero-11.2.00900 trial.exe282. NeroCmd6A705341.exe283. NeroGadgetCMServer31BFBA71.exe284. NeroPatentActivationEAC2FF7A.exe285. NeroRemoteCtrlHandlerF5088011.exe

Page 48: Advanced Project in Computer Science: System-Calls Based

286. NMain.exe287. nmap service.exe288. nod32.exe289. nping.exe290. NSIS.Library.RegTool.exe291. NSIS.Library.RegTool.v2.$[38].exe292. NSIS.Library.RegTool.v2.$[70].exe293. NSIS.Library.RegTool.v3.$[71].exe294. nsplugin.exe295. nvSmartMaxapp.exe296. NvStereoUtilityOGL.exe297. nvStInst.exe298. nvStReg.exe299. NvStTest.Exe.exe300. oax0i8iu.exe301. objectdock freeware 13.exe302. objectdock freeware 9.exe303. ocpinst.exe304. OrbitDownloader 4.1.1.17.exe305. PaintShopPro1111 EN DE FR ES IT NL CORELTBYB ESD.exe306. pango-querymodules.exe307. partinfo.exe308. paste.exe309. patch.exe310. patchbeam10001.exe311. PhraseExpress.exe312. PhraseExpress 3.exe313. PicasaMediaDetector.exe314. PicasaRestore.exe315. PictureViewer.exe316. point32.exe317. postgresql-9.1.3-1-windows.exe318. postgresql-9.1.5-1-windows 2.exe319. postgresql-9.2.0-1-windows.exe320. powarc960 3.exe321. powarc961.exe322. PowerDVD12.exe323. PowerDVD12Agent.exe324. PRFA-IEToolbar.exe325. PrimoRun.exe326. ProInfoPack.exe327. pxhpinst.exe328. QMPlayer.exe329. qtconfig.exe330. QTInfo.exe331. rdsconfig.exe

Page 49: Advanced Project in Computer Science: System-Calls Based

332. RealPlayer 10.exe333. RealPlayer 12.exe334. RealPlayer 15.exe335. RealPlayer 7.exe336. redit.exe337. Reflect.exe338. regcomp.exe339. regRD.exe340. regsvr32.exe341. Remover.exe342. RMEncoder.exe343. RootkitRevealer.exe344. rpcapd.exe345. san1230.exe346. san15124.exe347. san1610.exe348. san1611.exe349. san1720.exe350. san1747.exe351. san1820.exe352. san1824.exe353. san1830.exe354. san1852 2.exe355. san1950 2.exe356. san2011-1759.exe357. sbAutoPlayUtil.exe358. sc14 2.exe359. scalc.exe360. scenarioengine.exe361. seamonkey.exe362. setreg.exe363. slide.exe364. smplayer.exe365. smtube.exe366. snagit.exe367. snagit 3.exe368. soffice.exe369. songbird.exe370. spf.exe371. SpiderOak.exe372. spybot-2.1.exe373. spybotsd152.exe374. spybotsd160-beta1.exe375. spybotsd162.exe376. SpywareTerminator.exe377. SpywareTerminator 12.exe

Page 50: Advanced Project in Computer Science: System-Calls Based

378. SpywareTerminator 4.exe379. SpywareTerminator 6.exe380. sqlsqm.exe381. SSAutoRN.exe382. sslisten.exe383. stclient wrapper.exe384. Stinger.exe385. stinger32 23.exe386. stinger32 27.exe387. stinger32 35.exe388. stinger32 37.exe389. stinger32 46.exe390. stinger32 51.exe391. StreamServer.exe392. stub.exe393. Stub.exe394. SumatraPDF.exe395. Sunbelt-Personal-Firewall 7.exe396. SUPERAntiSpyware 101.exe397. SUPERAntiSpyware 28.exe398. SUPERAntiSpyware 37.exe399. SUPERAntiSpyware 63.exe400. SUPERAntiSpyware 66.exe401. SUPERAntiSpyware 7.exe402. SUPERAntiSpyware 81.exe403. SWHELPER.EXE.exe404. SWHELPER 1020022.EXE.exe405. SwHelper 1165635.exe406. SymLnch.exe407. TagRename365.exe408. TagRename366.exe409. teracopy227.exe410. text2pcap.exe411. tnameserv.exe412. toolbar.exe413. TopStyle50 12.exe414. TopStyle50 5.exe415. TopStyle50 8.exe416. TopStyle50 9.exe417. udefrag-gui-config.exe418. UNINST.EXE.exe419. UninstPCS.exe420. UninstPCSFEMsi.exe421. UNNeroBackItUp98571DFD.exe422. unopkg.exe423. unregmp2.exe

Page 51: Advanced Project in Computer Science: System-Calls Based

424. UNWISE32.EXE.exe425. updateLists.exe426. utorrent-1.5.1-beta-build-463.exe427. utorrent-1.6-beta-build-467 2.exe428. verse.exe429. VideoSnapshot.exe430. VirtualBox-2.2.0-45846-Win.exe431. VirtualBox-2.2.2-46594-Win.exe432. VirtualBox-3.1.0-55467-Win.exe433. VirtualBox-3.1.2-56127-Win.exe434. VirtualBox-3.2.0-61806-Win.exe435. VirtualBox-3.2.8-64453-Win.exe436. VirtualBox-4.0.0-69151-Win.exe437. VistaCodecs.exe438. VMware-player-3.1.1-282343.exe439. vnc-4 1 2-x86 win32.exe440. VNC-5.0.0-Windows 2.exe441. VNC-5.0.4-Windows 2.exe442. VProTray.exe443. Vuze 4.0.0.2 windows.exe444. Vuze 4.2.0.4 windows.exe445. Vuze 4.2.0.8 windows.exe446. Vuze 4.3.1.0a windows 2.exe447. Vuze 4402 windows.exe448. Vuze 4502 windows.exe449. Vuze 4502b windows.exe450. Vuze 4510b windows.exe451. Vuze 4604 windows.exe452. vwpt.exe453. WC32TO16.EXE.exe454. widgetsus 14.exe455. windowblinds4 public.exe456. windowblinds5 public 3.exe457. WindowBlinds6 public 3.exe458. WindowBlinds6 public 4.exe459. WindowBlinds7 public 2.exe460. WindowBlinds7 public 4.exe461. WindowBlinds7 public 5.exe462. windows dir watcher.exe463. WindowsXP-KB942288-v3-x86.exe464. WindowsXP-MSCompPackV1-x86.exe465. wininst 10.0.exe466. wininst 7.1.exe467. wininst-6.exe468. wininst-9.0.exe469. WinPcap 3 1.exe

Page 52: Advanced Project in Computer Science: System-Calls Based

470. WinRAR.exe471. wlunpacker.exe472. wmfdist95.exe473. wmp11.exe474. WMPBurn.exe475. WMPBurn9F9ABA59.exe476. word-list-compress.exe477. wsctool.exe478. wudfhost.exe479. WzPreviewer32.exe480. WZQKPICK.EXE.exe481. WZSESS32.EXE.exe482. YahooWidgets.exe483. yandex downloader.exe484. ymsgr702 120 us.exe485. ymsgr750 333 us.exe486. ymsgr7us.exe487. yset.exe488. YTB.exe489. ZATRAY.EXE.exe490. ZipSendService.exe491. ZLUNWISE.EXE.exe492. ZONESTUB.EXE.exe493. zplayer.exe494. zpupdate.exe

B.3 Malicious Programs List (Original DB)

1. Virus.Win32.Adson.1703.exe2. Virus.Win32.Afgan.e.exe3. Virus.Win32.Agent.ak.exe4. Virus.Win32.Agent.bs.exe5. Virus.Win32.Agent.ce.exe6. Virus.Win32.Agent.cj.exe7. Virus.Win32.Aidlot.exe8. Virus.Win32.Alcaul.e.exe9. Virus.Win32.Alcaul.i.exe

10. Virus.Win32.Alcaul.m.exe11. Virus.Win32.Aldebaran.8365.b.exe12. Virus.Win32.Aliser.8381.exe13. Virus.Win32.Alma.5319.exe14. Virus.Win32.Anuir.3746.exe15. Virus.Win32.Anuir.a.exe16. Virus.Win32.AOC.3649.b.exe17. Virus.Win32.Apathy.5378.exe18. Virus.Win32.Arcer.exe

Page 53: Advanced Project in Computer Science: System-Calls Based

19. Virus.Win32.Arrow.a.exe20. Virus.Win32.Asorl.b.exe21. Virus.Win32.AutoIt.j.exe22. Virus.Win32.AutoRun.aku.exe23. Virus.Win32.Autorun.fr.exe24. Virus.Win32.Awfull.3318.exe25. Virus.Win32.Baklajan.a.exe26. Virus.Win32.Basket.a.exe27. Virus.Win32.Beef.2110.exe28. Virus.Win32.Belial.b.exe29. Virus.Win32.Belial.f.exe30. Virus.Win32.Benny.3219.a.exe31. Virus.Win32.Bika.1857.exe32. Virus.Win32.Blakan.2016.exe33. Virus.Win32.Blakan.exe34. Virus.Win32.Bluwin.a.exe35. Virus.Win32.Bolzano.2664.exe36. Virus.Win32.Bolzano.3120.exe37. Virus.Win32.Bolzano.3628.exe38. Virus.Win32.Bolzano.4096.c.exe39. Virus.Win32.Bolzano.5396.a.exe40. Virus.Win32.Bonding.a.exe41. Virus.Win32.Bube.b.exe42. Virus.Win32.Bube.g.exe43. Virus.Win32.Bube.l.exe44. Virus.Win32.Butter.exe45. Virus.Win32.Cabanas.b.exe46. Virus.Win32.Cabanas.MsgBox.exe47. Virus.Win32.Cargo.11935.exe48. Virus.Win32.Ceel.b.exe49. Virus.Win32.Champ.5464.exe50. Virus.Win32.Champ.5536.exe51. Virus.Win32.Champ.5722.exe52. Virus.Win32.Cheburgen.a.exe53. Virus.Win32.Chiton.d.exe54. Virus.Win32.Chiton.h.exe55. Virus.Win32.Chiton.o.exe56. Virus.Win32.Chiton.t.exe57. Virus.Win32.Chuzy.a.exe58. Virus.Win32.Cloz.a.exe59. Virus.Win32.Cornad.exe60. Virus.Win32.Crunk.a.exe61. Virus.Win32.Crypto.c.exe62. Virus.Win32.CTZA.a.exe63. Virus.Win32.Damm.1537.b.exe64. Virus.Win32.Damm.1647.b.exe

Page 54: Advanced Project in Computer Science: System-Calls Based

65. Virus.Win32.Datus.exe66. Virus.Win32.Deemo.3028.exe67. Virus.Win32.Delf.ad.exe68. Virus.Win32.Delf.aj.exe69. Virus.Win32.Delf.ar.exe70. Virus.Win32.Delf.b.exe71. Virus.Win32.Delf.bg.exe72. Virus.Win32.Delf.bk.exe73. Virus.Win32.Delf.br.exe74. Virus.Win32.Delf.bw.exe75. Virus.Win32.Delf.cb.exe76. Virus.Win32.Delf.cl.exe77. Virus.Win32.Delf.cs.exe78. Virus.Win32.Delf.cx.exe79. Virus.Win32.Delf.dc.exe80. Virus.Win32.Delf.i.exe81. Virus.Win32.Delf.n.exe82. Virus.Win32.Delf.s.exe83. Virus.Win32.Delfer.a.exe84. Virus.Win32.Dias.b.exe85. Virus.Win32.Diehard.a.exe86. Virus.Win32.Ditex.a.exe87. Virus.Win32.Dobom.a.exe88. Virus.Win32.Donut.exe89. Virus.Win32.Doser.4190.exe90. Virus.Win32.Doser.4540.exe91. Virus.Win32.Downloader.ab.exe92. Virus.Win32.Downloader.ag.exe93. Virus.Win32.Downloader.al.exe94. Virus.Win32.Downloader.ap.exe95. Virus.Win32.Downloader.au.exe96. Virus.Win32.Downloader.ay.exe97. Virus.Win32.Downloader.bd.exe98. Virus.Win32.Downloader.bi.exe99. Virus.Win32.Downloader.d.exe

100. Virus.Win32.Downloader.k.exe101. Virus.Win32.Downloader.o.exe102. Virus.Win32.Downloader.u.exe103. Virus.Win32.Downloader.z.exe104. Virus.Win32.Drivalon.2148.exe105. Virus.Win32.Dropet.790.exe106. Virus.Win32.Drowor.g.exe107. Virus.Win32.Dzan.a.exe108. Virus.Win32.Eclipse.c.exe109. Virus.Win32.Egolet.c.exe110. Virus.Win32.Elkern.b.exe

Page 55: Advanced Project in Computer Science: System-Calls Based

111. Virus.Win32.Emar.a.exe112. Virus.Win32.Emotion.d.exe113. Virus.Win32.Enerlam.b.exe114. Virus.Win32.Enumiacs.6656.exe115. Virus.Win32.Etap.exe116. Virus.Win32.Eva.d.exe117. Virus.Win32.Evar.3582.exe118. Virus.Win32.Evol.c.exe119. Virus.Win32.Evul.8192.d.exe120. Virus.Win32.Evul.8192.h.exe121. Virus.Win32.Evyl.g.exe122. Virus.Win32.Expiro.c.exe123. Virus.Win32.Expiro.g.exe124. Virus.Win32.Expiro.l.exe125. Virus.Win32.Expiro.p.exe126. Virus.Win32.Fighter.a.exe127. Virus.Win32.Flopex.a.exe128. Virus.Win32.Folcom.c.exe129. Virus.Win32.Fontra.a.exe130. Virus.Win32.Fosforo.c.exe131. Virus.Win32.FunLove.4070.exe132. Virus.Win32.Gaybar.exe133. Virus.Win32.Genu.c.exe134. Virus.Win32.Ginra.3413.exe135. Virus.Win32.Giri.4937.c.exe136. Virus.Win32.Gloria.2820.exe137. Virus.Win32.Gnil.a.exe138. Virus.Win32.Golem.a.exe139. Virus.Win32.Gpcode.ak.exe140. Virus.Win32.Gremo.3302.exe141. Virus.Win32.Grum.c.exe142. Virus.Win32.Grum.g.exe143. Virus.Win32.Grum.l.exe144. Virus.Win32.Gypet.6340.exe145. Virus.Win32.Halen.2277.exe146. Virus.Win32.Hatred.e.exe147. Virus.Win32.Henky.1576.exe148. Virus.Win32.Henky.3188.exe149. Virus.Win32.Henky.720.exe150. Virus.Win32.Heretic.1986.exe151. Virus.Win32.Highway.b.exe152. Virus.Win32.HIV.6680.exe153. Virus.Win32.HLLC.Delfer.g.exe154. Virus.Win32.HLLC.Hai.exe155. Virus.Win32.HLLC.Nan.exe156. Virus.Win32.HLLC.Novelce.c.exe

Page 56: Advanced Project in Computer Science: System-Calls Based

157. Virus.Win32.HLLC.Relaxer.exe158. Virus.Win32.HLLC.StupRed.exe159. Virus.Win32.HLLC.Trafix.exe160. Virus.Win32.HLLC.Vedex.d.exe161. Virus.Win32.HLLO.12355.exe162. Virus.Win32.HLLO.Ant.a.exe163. Virus.Win32.HLLO.Ant.e.exe164. Virus.Win32.HLLO.Casbo.b.exe165. Virus.Win32.HLLO.Enterus.c.exe166. Virus.Win32.HLLO.Hadefix.b.exe167. Virus.Win32.HLLO.Homer.a.exe168. Virus.Win32.HLLO.Ivad.exe169. Virus.Win32.HLLO.Job.22528.exe170. Virus.Win32.HLLO.Mip.exe171. Virus.Win32.HLLO.Ower.20480.exe172. Virus.Win32.HLLO.Tarex.exe173. Virus.Win32.HLLO.ZMK.b.exe174. Virus.Win32.HLLP.Alcaul.c.exe175. Virus.Win32.HLLP.Bizac.c.exe176. Virus.Win32.HLLP.Cranb.a.exe177. Virus.Win32.HLLP.Delf.a.exe178. Virus.Win32.HLLP.Delf.e.exe179. Virus.Win32.HLLP.Dugert.b.exe180. Virus.Win32.HLLP.Eter.b.exe181. Virus.Win32.HLLP.Flatei.a.exe182. Virus.Win32.HLLP.Flatei.f.exe183. Virus.Win32.HLLP.Ghostdog.c.exe184. Virus.Win32.HLLP.Gotem.exe185. Virus.Win32.HLLP.Hantaner.d.exe186. Virus.Win32.HLLP.Lmir.a.exe187. Virus.Win32.HLLP.Pres.exe188. Virus.Win32.HLLP.Rosec.exe189. Virus.Win32.HLLP.Semisoft.c.exe190. Virus.Win32.HLLP.Semisoft.g.exe191. Virus.Win32.HLLP.Semisoft.l.exe192. Virus.Win32.HLLP.Shodi.b.exe193. Virus.Win32.HLLP.Text.a.exe194. Virus.Win32.HLLP.Tweder.exe195. Virus.Win32.HLLP.VB.b.exe196. Virus.Win32.HLLP.VB.j.exe197. Virus.Win32.HLLP.Vedex.b.exe198. Virus.Win32.HLLP.Xinfect.a.exe199. Virus.Win32.HLLP.Xinfect.e.exe200. Virus.Win32.HLLP.Xinfect.j.exe201. Virus.Win32.HLLP.Yellor.b.exe202. Virus.Win32.HLLP.Zepp.d.exe

Page 57: Advanced Project in Computer Science: System-Calls Based

203. Virus.Win32.HLLP.Zepp.h.exe204. Virus.Win32.HLLW.Acoola.a.exe205. Virus.Win32.HLLW.Alcaul.b.exe206. Virus.Win32.HLLW.Aldax.exe207. Virus.Win32.HLLW.AntiQFX.a.exe208. Virus.Win32.HLLW.Archex.exe209. Virus.Win32.HLLW.Bezilom.dr.exe210. Virus.Win32.HLLW.Billrus.c.exe211. Virus.Win32.HLLW.Billrus.g.exe212. Virus.Win32.HLLW.Boomer.exe213. Virus.Win32.HLLW.Conteo.exe214. Virus.Win32.HLLW.Cybercer.exe215. Virus.Win32.HLLW.Delf.d.exe216. Virus.Win32.HLLW.Delf.k.exe217. Virus.Win32.HLLW.Delf.p.exe218. Virus.Win32.HLLW.Dexec.exe219. Virus.Win32.HLLW.Emeres.exe220. Virus.Win32.HLLW.Felic.exe221. Virus.Win32.HLLW.Flor.exe222. Virus.Win32.HLLW.Ghotex.a.exe223. Virus.Win32.HLLW.Giwin.exe224. Virus.Win32.HLLW.Karimex.exe225. Virus.Win32.HLLW.Kimex.exe226. Virus.Win32.HLLW.Loxar.exe227. Virus.Win32.HLLW.Maryl.exe228. Virus.Win32.HLLW.Mokser.exe229. Virus.Win32.HLLW.Mouselom.exe230. Virus.Win32.HLLW.Oblion.a.exe231. Virus.Win32.HLLW.Osapex.a.exe232. Virus.Win32.HLLW.pakes.exe233. Virus.Win32.HLLW.Perdex.exe234. Virus.Win32.HLLW.Porner.exe235. Virus.Win32.HLLW.Randir.exe236. Virus.Win32.HLLW.Rolog.f.exe237. Virus.Win32.HLLW.Selfoner.exe238. Virus.Win32.HLLW.Smilex.exe239. Virus.Win32.HLLW.Spinex.exe240. Virus.Win32.HLLW.Tborro.exe241. Virus.Win32.HLLW.Timese.a.exe242. Virus.Win32.HLLW.Trabos.a.exe243. Virus.Win32.HLLW.Vavico.exe244. Virus.Win32.Horope.d.exe245. Virus.Win32.Hortiga.4800.exe246. Virus.Win32.Htrip.b.exe247. Virus.Win32.Idele.1839.exe248. Virus.Win32.Idele.2160.exe

Page 58: Advanced Project in Computer Science: System-Calls Based

249. Virus.Win32.Idyll.1556.b.exe250. Virus.Win32.Iframer.c.exe251. Virus.Win32.IKX.exe252. Virus.Win32.Infeme.exe253. Virus.Win32.Infynca.565.exe254. Virus.Win32.Inrar.c.exe255. Virus.Win32.Insom.1972.b.exe256. Virus.Win32.Instan.a.exe257. Virus.Win32.Ipamor.a.exe258. Virus.Win32.Ivaz.exe259. Virus.Win32.Jeepeg.d.exe260. Virus.Win32.Jeepeg.h.exe261. Virus.Win32.Jeff.a.exe262. Virus.Win32.Julikz.a.exe263. Virus.Win32.Kate.a.exe264. Virus.Win32.Kaze.4236.exe265. Virus.Win32.Keisan.c.exe266. Virus.Win32.Kenston.1895.a.exe267. Virus.Win32.Kespy.a.exe268. Virus.Win32.Kies.b.exe269. Virus.Win32.Killis.a.exe270. Virus.Win32.Klinge.exe271. Virus.Win32.Koru.exe272. Virus.Win32.Kriz.3689.exe273. Virus.Win32.Kriz.4029.exe274. Virus.Win32.Kriz.4075.exe275. Virus.Win32.Kroter.exe276. Virus.Win32.Kvex.a.exe277. Virus.Win32.Lamchi.b.exe278. Virus.Win32.Lamer.b.exe279. Virus.Win32.Lamer.g.exe280. Virus.Win32.Lamewin.1751.exe281. Virus.Win32.Lamicho.b.exe282. Virus.Win32.LAMT.exe283. Virus.Win32.Lash.c.exe284. Virus.Win32.Legacy.exe285. Virus.Win32.Levi.3236.b.exe286. Virus.Win32.Levi.3432.exe287. Virus.Win32.Lifort.1465.exe288. Virus.Win32.Lykov.a.exe289. Virus.Win32.Magic.1922.exe290. Virus.Win32.Magic.7045.a.exe291. Virus.Win32.Magic.7045.e.exe292. Virus.Win32.Magic.7045.i.exe293. Virus.Win32.Mark.919.exe294. Virus.Win32.Matrix.817.b.exe

Page 59: Advanced Project in Computer Science: System-Calls Based

295. Virus.Win32.Matrix.LS.1820.exe296. Virus.Win32.Matrix.Ordy.c.exe297. Virus.Win32.Matrix.Zelda.b.exe298. Virus.Win32.Maya.4153.a.exe299. Virus.Win32.Maya.4207.exe300. Virus.Win32.Melder.exe301. Virus.Win32.Mental.9996.exe302. Virus.Win32.Miam.1696.exe303. Virus.Win32.Miam.3657.exe304. Virus.Win32.Miam.5168.exe305. Virus.Win32.Missu.1757.exe306. Virus.Win32.Mkar.g.exe307. Virus.Win32.Mogul.6800.exe308. Virus.Win32.Mohmed.4354.exe309. Virus.Win32.Mooder.c.exe310. Virus.Win32.Mooder.g.exe311. Virus.Win32.Mooder.k.exe312. Virus.Win32.MTV.4608.a.exe313. Virus.Win32.Mudant.887.exe314. Virus.Win32.Mystery.2560.exe315. Virus.Win32.Nemsi.b.exe316. Virus.Win32.Neshta.b.exe317. Virus.Win32.NGVCK.1030.exe318. Virus.Win32.NGVCK.4347.exe319. Virus.Win32.Niya.a.exe320. Virus.Win32.Nox.2290.b.exe321. Virus.Win32.Nytra.a.exe322. Virus.Win32.Oporto.3076.exe323. Virus.Win32.Oroch.3982.exe324. Virus.Win32.Paradise.2116.exe325. Virus.Win32.Parite.b.exe326. Virus.Win32.PayBack.1325.exe327. Virus.Win32.Perez.b.exe328. Virus.Win32.Perez.g.exe329. Virus.Win32.Pioneer.a.exe330. Virus.Win32.Plut.a.exe331. Virus.Win32.Porex.a.exe332. Virus.Win32.Poson.1631.exe333. Virus.Win32.Projet.2342.exe334. Virus.Win32.Projet.2649.exe335. Virus.Win32.Pulkfer.b.exe336. Virus.Win32.Qozah.3361.exe337. Virus.Win32.Radja.a.exe338. Virus.Win32.RainSong.3925.b.exe339. Virus.Win32.Ramdile.exe340. Virus.Win32.Ramm.d.exe

Page 60: Advanced Project in Computer Science: System-Calls Based

341. Virus.Win32.Ramm.h.exe342. Virus.Win32.Ramm.n.exe343. Virus.Win32.Redart.2796.exe344. Virus.Win32.Resur.b.exe345. Virus.Win32.Resur.f.exe346. Virus.Win32.Revaz.exe347. Virus.Win32.Rigel.6468.exe348. Virus.Win32.Rotor.a.exe349. Virus.Win32.Rufis.b.exe350. Virus.Win32.Sabus.a.exe351. Virus.Win32.Sality.a.exe352. Virus.Win32.Sality.ad.exe353. Virus.Win32.Sality.d.exe354. Virus.Win32.Sality.j.exe355. Virus.Win32.Sality.y.exe356. Virus.Win32.Sandman.4096.exe357. Virus.Win32.Sankei.3001.exe358. Virus.Win32.Sankei.3454.exe359. Virus.Win32.Sankei.3514.exe360. Virus.Win32.Sankei.3621.exe361. Virus.Win32.Savior.1696.exe362. Virus.Win32.Savior.1832.exe363. Virus.Win32.Segax.1161.exe364. Virus.Win32.Seluum.a.exe365. Virus.Win32.Seppuku.1606.exe366. Virus.Win32.Seppuku.2764.exe367. Virus.Win32.Seppuku.3291.exe368. Virus.Win32.Seppuku.4831.exe369. Virus.Win32.Seppuku.6973.exe370. Virus.Win32.Shaitan.3392.exe371. Virus.Win32.Shodi.e.exe372. Virus.Win32.Shown.538.exe373. Virus.Win32.Shown.540.b.exe374. Virus.Win32.Siller.1364.exe375. Virus.Win32.Silly.c.exe376. Virus.Win32.SillyC.6006.exe377. Virus.Win32.Sinn.1397.exe378. Virus.Win32.Slaman.d.exe379. Virus.Win32.Slaman.i.exe380. Virus.Win32.Small.1338.exe381. Virus.Win32.Small.1388.exe382. Virus.Win32.Small.1657.exe383. Virus.Win32.Small.2280.exe384. Virus.Win32.Small.4096.exe385. Virus.Win32.Small.ag.exe386. Virus.Win32.Small.d.exe

Page 61: Advanced Project in Computer Science: System-Calls Based

387. Virus.Win32.Small.i.exe388. Virus.Win32.Small.m.exe389. Virus.Win32.Small.r.exe390. Virus.Win32.Small.w.exe391. Virus.Win32.Smile.a.exe392. Virus.Win32.Smog.e.exe393. Virus.Win32.Spit.b.exe394. Virus.Win32.Stepar.dr.exe395. Virus.Win32.Stepar.j.exe396. Virus.Win32.Sugin.exe397. Virus.Win32.Taek.1275.exe398. Virus.Win32.Team.a.exe399. Virus.Win32.TeddyBear.exe400. Virus.Win32.Test.1334.exe401. Virus.Win32.Texel.b.exe402. Virus.Win32.Texel.f.exe403. Virus.Win32.Texel.j.exe404. Virus.Win32.Thorin.11932.exe405. Virus.Win32.Thorin.c.exe406. Virus.Win32.Tiraz.a.exe407. Virus.Win32.Titalk.exe408. Virus.Win32.Trats.b.exe409. Virus.Win32.Trion.a.exe410. Virus.Win32.Triplix.3072.b.exe411. Virus.Win32.Tufik.b.exe412. Virus.Win32.Tvido.b.exe413. Virus.Win32.Ultratt.8166.a.exe414. Virus.Win32.Undertaker.4883.b.exe415. Virus.Win32.Usem.a.exe416. Virus.Win32.Vangeridze.a.exe417. Virus.Win32.VB.ac.exe418. Virus.Win32.VB.ag.exe419. Virus.Win32.VB.al.exe420. Virus.Win32.VB.aq.exe421. Virus.Win32.VB.av.exe422. Virus.Win32.VB.az.exe423. Virus.Win32.VB.bc.exe424. Virus.Win32.VB.bi.exe425. Virus.Win32.VB.bo.exe426. Virus.Win32.VB.bs.exe427. Virus.Win32.VB.bx.exe428. Virus.Win32.VB.ca.exe429. Virus.Win32.VB.cj.exe430. Virus.Win32.VB.cn.exe431. Virus.Win32.VB.cs.exe432. Virus.Win32.VB.cy.exe

Page 62: Advanced Project in Computer Science: System-Calls Based

433. Virus.Win32.VB.de.exe434. Virus.Win32.VB.di.exe435. Virus.Win32.VB.dn.exe436. Virus.Win32.VB.ds.exe437. Virus.Win32.VB.dx.exe438. Virus.Win32.VB.ed.exe439. Virus.Win32.VB.ej.exe440. Virus.Win32.VB.ep.exe441. Virus.Win32.VB.ew.exe442. Virus.Win32.VB.fe.exe443. Virus.Win32.VB.fi.exe444. Virus.Win32.VB.fo.exe445. Virus.Win32.VB.fv.exe446. Virus.Win32.VB.gf.exe447. Virus.Win32.VB.gm.exe448. Virus.Win32.VB.gu.exe449. Virus.Win32.VB.hg.exe450. Virus.Win32.VB.hm.exe451. Virus.Win32.VB.hu.exe452. Virus.Win32.VB.id.exe453. Virus.Win32.VB.ij.exe454. Virus.Win32.VB.ip.exe455. Virus.Win32.VB.jg.exe456. Virus.Win32.VB.jp.exe457. Virus.Win32.VB.jy.exe458. Virus.Win32.VB.ke.exe459. Virus.Win32.VB.ko.exe460. Virus.Win32.VB.kt.exe461. Virus.Win32.VB.kx.exe462. Virus.Win32.VB.lc.exe463. Virus.Win32.VB.lj.exe464. Virus.Win32.VB.ls.exe465. Virus.Win32.VB.m.exe466. Virus.Win32.VB.mg.exe467. Virus.Win32.VB.q.exe468. Virus.Win32.VB.u.exe469. Virus.Win32.VbFrm.exe470. Virus.Win32.VCell.3504.exe471. Virus.Win32.Velost.1186.exe472. Virus.Win32.Vibeck.7045.exe473. Virus.Win32.Virut.ad.exe474. Virus.Win32.Virut.ah.exe475. Virus.Win32.Virut.ao.exe476. Virus.Win32.Virut.as.exe477. Virus.Win32.Virut.aw.exe478. Virus.Win32.Virut.ba.exe

Page 63: Advanced Project in Computer Science: System-Calls Based

479. Virus.Win32.Virut.bf.exe

480. Virus.Win32.Virut.bl.exe

481. Virus.Win32.Virut.bq.exe

482. Virus.Win32.Virut.bv.exe

483. Virus.Win32.Virut.ca.exe

484. Virus.Win32.Virut.ce.exe

485. Virus.Win32.Virut.m.exe

486. Virus.Win32.Virut.r.exe

487. Virus.Win32.Virut.v.exe

488. Virus.Win32.Virut.z.exe

489. Virus.Win32.Vulcano.exe

490. Virus.Win32.Warmup.a.exe

491. Virus.Win32.Weird.c.exe

492. Virus.Win32.Wide.8135.a.exe

493. Virus.Win32.Wide.b.exe

494. Virus.Win32.Winemmem.a.exe

495. Virus.Win32.Wit.b.exe

496. Virus.Win32.Xorer.al.exe

497. Virus.Win32.Xorer.ax.exe

498. Virus.Win32.Xorer.bz.exe

499. Virus.Win32.Xorer.ce.exe

500. Virus.Win32.Xorer.ck.exe

501. Virus.Win32.Xorer.cp.exe

502. Virus.Win32.Xorer.cw.exe

503. Virus.Win32.Xorer.df.exe

504. Virus.Win32.Xorer.dr.exe

505. Virus.Win32.Xorer.eg.exe

506. Virus.Win32.Xorer.eo.exe

507. Virus.Win32.Xorer.es.exe

508. Virus.Win32.Xorer.ew.exe

509. Virus.Win32.Xorer.fb.exe

510. Virus.Win32.Xorer.ff.exe

511. Virus.Win32.Xorer.fk.exe

512. Virus.Win32.Xorer.m.exe

513. Virus.Win32.Xoro.4092.exe

514. Virus.Win32.Yasw.924.exe

515. Virus.Win32.Younga.2384.a.exe

516. Virus.Win32.Zaka.a.exe

517. Virus.Win32.Zaprom.2756.exe

518. Virus.Win32.Zero.a.exe

519. Virus.Win32.ZMist.ds.exe

520. Virus.Win32.Zorg.a.exe

521. Virus.Win32.ZPerm.b.exe

Page 64: Advanced Project in Computer Science: System-Calls Based

B.4 Benign Programs Test Set

1. 3DVision 197.45.exe2. 3DVision 258.96.exe3. 3DVision 296.10.exe4. 3DVision 310.90.exe5. 4sharedTlbr.exe6. 7zFM.exe7. 7zGn.exe8. AAW2007Pro.exe9. aaw2008 2.exe

10. AAWPro.exe11. AAWService.exe12. AcroRd32Info.exe13. Adb.exe14. aimp 2.60.525.exe15. aimp 2.60.530.exe16. aimp 2.61.570.exe17. aimp 3.00.976.exe18. AIMP2t.exe19. alcrmv.exe20. alcrmv9x.exe21. ALEUpdat.exe22. amdocl as32.exe23. Antivirus Free Edition.exe24. ApnStub.exe25. armsvc.exe26. ATTv3.3.1.exe27. AUDIOGRABBER.EXE.exe28. AUPDRUN.EXE.exe29. autorunsc.exe30. avadmin.exe31. avantvw.exe32. avc-free 10.exe33. avc-free 13.exe34. avc-free 29.exe35. avc-free 4.exe36. avc-free 51.exe37. avc-free 53.exe38. avc-free 58.exe39. avc-free 62.exe40. avc-free 67.exe41. avc-free 72.exe42. avc-free 78.exe43. avcmd.exe44. avesvc.exe

Page 65: Advanced Project in Computer Science: System-Calls Based

45. avgcfgex.exe46. AVGCTRL.EXE.exe47. avgdiagex.exe48. avgemcx.exe49. AVGNT.EXE.exe50. avgrunasx.exe51. avgstrmx.exe52. avscan.exe53. AVSCHED32.EXE.exe54. avwebg7.exe55. AVWIN.EXE.exe56. AxCrypt2Go.exe57. AxDTA.exe58. AxSrvUACHlper.exe59. Azureus 3.0.0.8 windows.exe60. Azureus 3.0.4.0 windows.exe61. Azureus 3 0 windows 3.exe62. BackItUpDCA24F76.exe63. bcdedit.exe64. BCompare-3.1.10.11626.exe65. BCompare-3.1.9.11282.exe66. BCompare-3.3.3.14128.exe67. BCompare-3.3.5.15075.exe68. BI.exe69. BitTorrent 10.exe70. BitTorrent 18.exe71. BitTorrent 28.exe72. BitTorrent 29.exe73. BitTorrent 8.exe74. bootstrap.exe75. bspatch.exe76. bsptb.exe77. bundle3.exe78. cavscan.exe79. ccApp.exe80. CDSpeed.exe81. CfgWiz.exe82. cfigm60.exe83. cfpconfg.exe84. chrome launcher.exe85. Client.exe86. Common.exe87. ConfigTsXP.exe88. convert.exe89. crashreporter.exe90. createssoimage.exe

Page 66: Advanced Project in Computer Science: System-Calls Based

91. CuteWriter 4.exe92. cwshredder 7.exe93. daemon mgm.exe94. dap97 3.exe95. date.exe96. DeleteTemp.exe97. dfrg.exe98. DiagnosticsCaptureTool.exe 0407.exe99. diff.exe

100. dlupd.exe101. dMC-r12.2.exe102. dMC-R13.2-Ref-Trial.exe103. dplaunch.exe104. dragon updater.exe105. drmupgds.exe106. Dropbox.exe107. dtshost.exe108. EACoreCLI.exe109. eBay shortcuts 1016.exe110. echo.exe111. Ed2kLoader.exe112. EMusicClient.exe113. epm.exe114. Eudora 7.1.0.7 beta.exe115. ewidoctrl.exe116. ExportController.exe117. F.bin.echo.exe118. F.bin.mysql.exe119. F.bin.mysql client test embedded.exe120. F.bin.mysqldump.exe121. F.bin.resolveip.exe122. FastPictureViewer.exe123. fd3beta 4.exe124. fd3beta 5.exe125. file StartW8Menu.exe126. flashget.exe127. flock.exe128. fmt.exe129. FolderSizeSvc.exe130. fraps.exe131. FreemakeVideoConverter 2.0.1.2 2.exe132. FreemakeVideoConverter 2.1.0.2 2.exe133. FreemakeVideoConverter 2.1.4.0.exe134. FreemakeVideoConverter 2.3.4.1 2.exe135. FreemakeVideoConverter 3.0.0.2.exe136. FreemakeVideoConverter 3.0.1.12.exe

Page 67: Advanced Project in Computer Science: System-Calls Based

137. FreemakeVideoConverter 3.0.1.13.exe138. FreemakeVideoConverter 3.0.1.17.exe139. FreemakeVideoConverter 3.0.1.4.exe140. FreemakeVideoConverter 3.0.2.4 2.exe141. FreemakeVideoConverter 3.0.2.8.exe142. FreemakeVideoConverter 3.2.1.2.exe143. FreemakeVideoConverter 3.2.1.7.exe144. FreemakeVideoConverter 3.2.1.9.exe145. FreemakeVideoConverter 4.0.0.13.exe146. FreemakeVideoConverter 4.0.1.8 2.exe147. FreemakeVideoConverter 4.0.2.10.exe148. FreemakeVideoConverter 4.0.2.15 3.exe149. FreemakeVideoConverter 4.0.2.16 2.exe150. FWLOGCTL.EXE.exe151. FzSFtp.exe152. googledrivesync.exe153. GoogleEarth4.2.196.2018.exe154. GoogleSketchUpWEN 13.exe155. gpsbabel.exe156. GPU-Z.0.2.1.exe157. GPU-Z.0.6.3.exe158. GPU-Z.0.6.8.exe159. GPU-Z.0.7.0.exe160. GrLauncher.exe161. GTB5FF.EXE.exe162. GTBXP.EXE.exe163. gtk-runtime.exe164. GuardMailRu.exe165. hao123inst-saudi-forf.exe166. hdaudio 1.0.9.1 xp vista win7.exe167. hwinfo.exe168. ICCompressorChoose win32.exe169. Icon. 03AA18A4B063347B01AC2E.exe170. Icon. 112D608FD02CD87FDC7735.exe171. Icon. 1585BAE38223FD8568A721.exe172. Icon. 18be6784.exe173. Icon. 2040DE605D15FF10449701.exe174. Icon. 24AB742613127F5CC6C135.exe175. Icon. 37D387FDB2BF1D95B1200F.exe176. Icon. 3B1DB7825570B7D288BB05.exe177. Icon. 5D7B49CA3A4D01C32C7C42.exe178. Icon. 702D5ACC94E574F40B7211.exe179. Icon. 717E76F86D082EE3B5B275.exe180. Icon. 756A508DD6A8A646E9E77A.exe181. Icon. 790336A8B845F6678850E5.exe182. Icon. 82E8CFA89478E80234BD70.exe

Page 68: Advanced Project in Computer Science: System-Calls Based

183. Icon. 83E488DBE7FD86612AA106.exe184. Icon. 9C7DE206146CA6AA27B622.exe185. Icon. A281F58C9FB96EC7E31292.exe186. Icon. AEE1A577E347A2D10062CD.exe187. Icon. B6788C656B2FD9CCEF44EF.exe188. Icon. BA79C0D741BFF81B082F58.exe189. Icon. C8F43F461AD0857274FF89.exe190. Icon. D8ECF83B33A1F5704C1F0F.exe191. Icon. DC60A53C789CA9E41F88BD.exe192. Icon. DF99DDF6D2F676E469FA56.exe193. Icon. EECCE476BD665F7A4528AF.exe194. Icon.GalleryStartMenuSh 70DD0B26371643879C8D4168168B149E.exe195. Icon.ico kss.1.0.0.500.ico.exe196. Icon.IncrediMailMenuFol A2DA5AEC1C204AFCA02B199D5A54DAC2.exe197. Icon.maintenance icon.exe198. Icon.sdraw.exe199. Icon.swriter.exe200. Icon.SystemFolder msiexec.exe201. Icon.wrdvicon.exe202. iconworkshop 11.exe203. iconworkshop 18.exe204. iconworkshop 4.exe205. iconworkshop 9.exe206. ICS Dv32 3.exe207. idman607 8.exe208. idman609.exe209. idman612 10.exe210. idman612 2.exe211. idman614.exe212. idman614 2.exe213. idman615 10.exe214. idman615 11.exe215. idman615 4.exe216. idman615 5.exe217. IESyncClient.exe218. iMeshV6 2.exe219. iMeshV7 2.exe220. iMeshV8.exe221. InCDL166CC5F2.exe222. infrarecorder.exe223. inkscape.exe224. InstanceManager.exe225. InstMsiA.Exe.exe226. InstMsiW.Exe.exe227. INUNINST.exe228. inyt.exe

Page 69: Advanced Project in Computer Science: System-Calls Based

229. iPlayer.exe230. isobuster all lang 3.exe231. isobuster all lang 4.exe232. isobuster all lang 7.exe233. iTunesHelper.exe234. itype.exe235. javacpl.exe236. jre-1 5 0 07-windows-i586-p.exe237. jre-6u3-windows-i586-p.exe238. jre-6u5-windows-i586-p.exe239. jre-windows-i586.exe240. Kerio 5.exe241. KHALMNPR.EXE.exe242. ksomisc.exe243. livecall.exe244. LSDriveDetect.exe245. lua5.1a gui.exe246. LuCallbackProxy.exe247. LuComServer 3 2.EXE.exe248. m4.exe249. magnify.exe250. MailWasher Free 651.exe251. makensis.exe252. maxupdate.exe253. mbsa2rix86.exe254. MediaInfo.exe255. MediaMonkey 3.0.2.1129.exe256. MediaMonkey 3.0.3.1164.exe257. MediaMonkey 3.0.3.1166.exe258. MediaMonkey 3.0.6.1189.exe259. MediaMonkey 3.0.7.1191.exe260. MediaMonkey 3.1.0.1204 Debug.exe261. MediaMonkey 3.1.0.1229 Debug.exe262. MediaMonkey 3.2.3.1303.exe263. MediaMonkey 4.0.2.1462.exe264. MediaMonkey 4.0.3.1466.exe265. MediaMonkey 4.0.5.1496.exe266. mencoder.exe267. mergecap.exe268. migrator.exe269. mirc.exe270. mirc616.exe271. mirc631.exe272. mirc633.exe273. miro-segmenter.exe274. MirrorShim.exe

Page 70: Advanced Project in Computer Science: System-Calls Based

275. modern headerbmp.exe276. modern nodesc.exe277. moviethumb.exe278. MULTIFIX.EXE.exe279. MxUp.exe280. ncat.exe281. ndswapper.exe282. nentenst 4.exe283. Nero KwikMedia-11.0.15300 free 2.exe284. Nero KwikMedia-12.5.00300 free 10.exe285. NeroAACWrapper.exe286. NeroCheck.exe287. NeroDelTmp.exe288. NeroHome65483717.exe289. NeroHomeF0D6B0A0.exe290. NeroMediaHome43DCD1AC.exe291. NeroRichPreview601E7E44.exe292. NeroSearchAdvanced3C3D1DE3.exe293. NiReg.exe294. NMFirstStartD9B4E50E.exe295. NMIndexStoreSvr9AC435F3.exe296. NMMediaServer7FBBE085.exe297. nod32kui.exe298. NSCSRVCE.EXE.exe299. NSIS.exe300. NSIS.Library.RegTool.v2.$[35].exe301. NSIS.Library.RegTool.v3.$[102].exe302. nt4ldr.exe303. nvlhr.exe304. nvStreaming.exe305. OEMkeys.exe306. opera sws.exe307. Origin.exe308. OSE.EXE.exe309. p98.exe310. package inst.exe311. pcswpcsi.exe312. PhotoScape.exe313. PhotoSnapC12FC710.exe314. PhysX 8.09.04 SystemSoftware.exe315. PhysX 9.09.0428 SystemSoftware.exe316. Picasa2.exe317. PicasaCD.exe318. PicasaPhotoViewer.exe319. PicasaUpdater.exe320. pifCrawl.exe

Page 71: Advanced Project in Computer Science: System-Calls Based

321. PMGRANT.EXE.exe322. postgresql-9.0.4-1-windows.exe323. postgresql-9.1.1-1-windows.exe324. postgresql-9.2.1-1-windows.exe325. powarc964.exe326. PowerDVD12ML.exe327. PowerDVD13ML.exe328. PRFB-Chrome.exe329. procexp.exe330. PSANToManager.exe331. PSPP12 Corel TBYB EN IE FR DE ES IT NL ESD 2.exe332. PSPP12 Corel TBYB EN IE FR DE ES IT NL ESD 3.exe333. qconsole.exe334. qttask.exe335. QuickTimeUpdateHelper.exe336. rapimgr.exe337. RDBVALIDATE.EXE.exe338. RealPlayer.exe339. RealPlayer 11.exe340. rebasedlls.exe341. Recode1A2D4B1C.exe342. ReflectService.exe343. RegCleanup.exe344. regmerge.exe345. Reporter.exe346. restart helper.exe347. RichVideo.exe348. rmid.exe349. roboform.exe350. RocketDock.exe351. san1420.exe352. san1572.exe353. san1599.exe354. san1652.exe355. san1667 2.exe356. san1772.exe357. san1780.exe358. san1828 2.exe359. san1847.exe360. san1874.exe361. san1923.exe362. san2011-1755.exe363. SandboxieDcomLaunch.exe364. sbase.exe365. sbrc.exe366. sc14.exe

Page 72: Advanced Project in Computer Science: System-Calls Based

367. schedul.EXE.exe368. schk.exe369. SDActivate.exe370. sdbarker tiny.exe371. SDKCOMPONENTS PPCRL IDBHOSERVICE.EXE.exe372. SecurityScan release small.exe373. SetBrowser.exe374. SetClean.exe375. shexp.exe376. ShrinkTo5Gui.exe377. SKDialogsEXE.exe378. SmeDump.exe379. SoundTrax9C09255C.exe380. spybotsd-1.6.1.38.exe381. spybotsd-1.6.1.41.exe382. spybotsd-2.0.5-beta3.exe383. SpybotSD2.exe384. sqlagent.exe385. sqldiag.exe386. sqlps.exe387. SRSAI.exe388. StarWindServiceAE.exe389. stinger32 13.exe390. stinger32 16.exe391. stinger32 17.exe392. stinger32 2.exe393. stinger32 22.exe394. stinger32 24.exe395. stinger32 3.exe396. stinger32 31.exe397. stinger32 34.exe398. stinger32 4.exe399. stinger32 44.exe400. stinger32 48.exe401. stinger32 5.exe402. stinger32 7.exe403. stinger32 8.exe404. stinger32 9.exe405. sunbelt-personal-firewall 4.exe406. SUPERAntiSpyware 104.exe407. SUPERAntiSpyware 107.exe408. SUPERAntiSpyware 111.exe409. SUPERAntiSpyware 60.exe410. SUPERAntiSpyware 61.exe411. SUPERAntiSpyware 69.exe412. SUPERAntiSpyware 75.exe

Page 73: Advanced Project in Computer Science: System-Calls Based

413. SUPERAntiSpyware 77.exe414. SUPERAntiSpyware 86.exe415. SUPERAntiSpyware 92.exe416. SWDNLD.EXE.exe417. SwHelper 1151601.exe418. SwHelper 1161629.exe419. SwHelper 1166636.exe420. SwHelper 1202122.exe421. SWINIT.EXE.exe422. swriter.exe423. SyncUIHandler.exe424. TagRename361.exe425. TagRename37.exe426. talkback.exe427. TcUsbRun.exe428. teracopy222.exe429. tinger32 14.exe430. TopStyle50 10.exe431. TopStyle50 15.exe432. touchmousepractice.exe433. TweakUI.exe434. unit.exe435. Unlocker.exe436. UnlockerInject32.exe437. uno.exe438. UPDCLIENT.EXE.exe439. updroots.exe440. utorrent 251.exe441. utorrent 269.exe442. utorrent-1.4.2-beta-build-427.exe443. utorrent-1.5.1-beta-build-456 2.exe444. utorrent-1.5.1-beta-build-460.exe445. VBoxGuestDrvInst.exe446. vcredist2008 x86.exe447. VirtualBox-3.0.0 BETA1-48728-Win.exe448. VirtualBox-3.0.10-54097-Win 2.exe449. VirtualBox-3.0.4-50677-Win.exe450. VirtualBox-3.1.0 BETA3-55271-Win.exe451. VirtualBox-3.1.8-61349-Win.exe452. VirtualBox-3.2.12-68302-Win.exe453. VirtualBox-3.2.2-62298-Win.exe454. VirtualBox-3.2.6 BETA2-62980-Win.exe455. VirtualBox-4.0.4-70112-Win 2.exe456. vlc.exe457. VNC-5.0.2-Windows 2.exe458. VProOneTouch.exe

Page 74: Advanced Project in Computer Science: System-Calls Based

459. VProSvc.exe460. Vuze 4.0.0.4 windows.exe461. Vuze 4.0.0.4b windows.exe462. Vuze 4.2.0.2 windows.exe463. Vuze 4.3.1.4 windows.exe464. Vuze 4406a windows.exe465. Vuze 4510a windows.exe466. Vuze 4600 windows.exe467. Vuze 4712 windows.exe468. WAIKFiles.exe469. WeatherBug.exe470. wextract.exe471. wic x86 enu.exe472. widgetsus 16.exe473. windowblinds5 public.exe474. windowblinds5 public 4.exe475. WinSnap.exe476. Wireless 14.3.0.6 Dv32 3.exe477. wmaudioredist.exe478. wmdbexport.exe479. wmfdist11.exe480. wmplayer.exe481. wmpshare.exe482. wpdshextautoplay.exe483. wzwipe32.exe484. Xfire.exe485. XnView-win 16.exe486. XnView-win 77.exe487. ymsgr1000 542 us.exe488. ytb inst.exe489. ytb3.exe490. YzDock.exe491. ZAPrivacyService.exe492. zbrowser.exe493. ZLCLIENT.EXE.exe494. zugo-silent.exe

B.5 Malicious Programs Test Set

1. Virus.Win32.Adson.1559.exe2. Virus.Win32.Adson.1734.exe3. Virus.Win32.Agent.a.exe4. Virus.Win32.Agent.am.exe5. Virus.Win32.Agent.bf.exe6. Virus.Win32.Agent.cf.exe7. Virus.Win32.Agent.ck.exe

Page 75: Advanced Project in Computer Science: System-Calls Based

8. Virus.Win32.Agent.t.exe9. Virus.Win32.Alcaul.f.exe

10. Virus.Win32.Alcaul.j.exe11. Virus.Win32.Alcaul.n.exe12. Virus.Win32.Alma.2414.exe13. Virus.Win32.Alman.a.exe14. Virus.Win32.Anuir.3818.exe15. Virus.Win32.AOC.2044.exe16. Virus.Win32.AOC.3657.exe17. Virus.Win32.Apoc.a.exe18. Virus.Win32.Arch.a.exe19. Virus.Win32.Arrow.c.exe20. Virus.Win32.Assill.a.exe21. Virus.Win32.Auryn.1157.exe22. Virus.Win32.AutoRun.akv.exe23. Virus.Win32.AutoWorm.3072.exe24. Virus.Win32.Awfull.3571.exe25. Virus.Win32.Bakaver.a.exe26. Virus.Win32.Banaw.2157.exe27. Virus.Win32.Bayan.a.exe28. Virus.Win32.Belial.2537.exe29. Virus.Win32.Belial.c.exe30. Virus.Win32.Belod.b.exe31. Virus.Win32.Benny.3219.b.exe32. Virus.Win32.BHO.c.exe33. Virus.Win32.Bika.1906.exe34. Virus.Win32.Blakan.2020.exe35. Virus.Win32.Blateroz.exe36. Virus.Win32.Bobep.exe37. Virus.Win32.Bolzano.2676.exe38. Virus.Win32.Bolzano.3148.exe39. Virus.Win32.Bolzano.3904.exe40. Virus.Win32.Bolzano.4096.d.exe41. Virus.Win32.Bolzano.5396.b.exe42. Virus.Win32.Brof.b.exe43. Virus.Win32.Bube.c.exe44. Virus.Win32.Bube.h.exe45. Virus.Win32.Bube.m.exe46. Virus.Win32.Bytesv.1481.b.exe47. Virus.Win32.Cabanas.c.exe48. Virus.Win32.CabInfector.exe49. Virus.Win32.Cargo.b.exe50. Virus.Win32.Ceel.c.exe51. Virus.Win32.Champ.5477.exe52. Virus.Win32.Champ.5707.a.exe53. Virus.Win32.Champ.7001.exe

Page 76: Advanced Project in Computer Science: System-Calls Based

54. Virus.Win32.Chimera.a.exe55. Virus.Win32.Chiton.e.exe56. Virus.Win32.Chiton.k.exe57. Virus.Win32.Chiton.p.exe58. Virus.Win32.Chiton.u.exe59. Virus.Win32.Chuzy.b.exe60. Virus.Win32.Cmay.1222.exe61. Virus.Win32.Cream.a.exe62. Virus.Win32.Crunk.b.exe63. Virus.Win32.Crypto.exe64. Virus.Win32.CTZA.d.exe65. Virus.Win32.Damm.1624.exe66. Virus.Win32.Damm.1796.exe67. Virus.Win32.Daum.a.exe68. Virus.Win32.Delf.aa.exe69. Virus.Win32.Delf.af.exe70. Virus.Win32.Delf.ak.exe71. Virus.Win32.Delf.ao.exe72. Virus.Win32.Delf.as.exe73. Virus.Win32.Delf.bc.exe74. Virus.Win32.Delf.bl.exe75. Virus.Win32.Delf.bs.exe76. Virus.Win32.Delf.ce.exe77. Virus.Win32.Delf.ct.exe78. Virus.Win32.Delf.de.exe79. Virus.Win32.Delf.k.exe80. Virus.Win32.Delf.p.exe81. Virus.Win32.Delf.u.exe82. Virus.Win32.Delikon.exe83. Virus.Win32.Dicomp.8192.a.exe84. Virus.Win32.Dion.a.exe85. Virus.Win32.Doser.4183.exe86. Virus.Win32.Doser.4535.exe87. Virus.Win32.Doser.4542.exe88. Virus.Win32.Downloader.ac.exe89. Virus.Win32.Downloader.ah.exe90. Virus.Win32.Downloader.am.exe91. Virus.Win32.Downloader.aq.exe92. Virus.Win32.Downloader.av.exe93. Virus.Win32.Downloader.be.exe94. Virus.Win32.Downloader.bj.exe95. Virus.Win32.Downloader.e.exe96. Virus.Win32.Downloader.l.exe97. Virus.Win32.Downloader.p.exe98. Virus.Win32.Downloader.w.exe99. Virus.Win32.Dream.4916.exe

Page 77: Advanced Project in Computer Science: System-Calls Based

100. Virus.Win32.Drol.5337.a.exe101. Virus.Win32.Drowor.b.exe102. Virus.Win32.DunDun.1396.exe103. Virus.Win32.Dzan.c.exe104. Virus.Win32.Eggroll.a.exe105. Virus.Win32.Egolet.d.exe106. Virus.Win32.Elkern.c.exe107. Virus.Win32.Emotion.a.exe108. Virus.Win32.Emotion.gen.exe109. Virus.Win32.Enerlam.c.exe110. Virus.Win32.Enumiacs.8192.b.exe111. Virus.Win32.Eva.a.exe112. Virus.Win32.Evar.3587.exe113. Virus.Win32.Evul.8192.a.exe114. Virus.Win32.Evul.8192.e.exe115. Virus.Win32.Evyl.a.exe116. Virus.Win32.Evyl.h.exe117. Virus.Win32.Expiro.d.exe118. Virus.Win32.Expiro.h.exe119. Virus.Win32.Expiro.m.exe120. Virus.Win32.Falkonder.exe121. Virus.Win32.Fighter.b.exe122. Virus.Win32.FlyStudio.b.exe123. Virus.Win32.Folcom.d.exe124. Virus.Win32.Fontra.c.exe125. Virus.Win32.Fosforo.d.exe126. Virus.Win32.FunLove.dam.exe127. Virus.Win32.gen.exe128. Virus.Win32.Genu.d.exe129. Virus.Win32.Ginra.3570.exe130. Virus.Win32.Giri.4919.exe131. Virus.Win32.Giri.4970.exe132. Virus.Win32.Gloria.2928.exe133. Virus.Win32.Gobi.a.exe134. Virus.Win32.Goli.a.exe135. Virus.Win32.Grum.d.exe136. Virus.Win32.Grum.h.exe137. Virus.Win32.Grum.m.exe138. Virus.Win32.Harrier.exe139. Virus.Win32.Henky.1632.exe140. Virus.Win32.Henky.504.exe141. Virus.Win32.Henky.772.a.exe142. Virus.Win32.Hezhi.exe143. Virus.Win32.HIV.6340.exe144. Virus.Win32.HLL.Fugo.exe145. Virus.Win32.HLLC.Delfer.a.exe

Page 78: Advanced Project in Computer Science: System-Calls Based

146. Virus.Win32.HLLC.Ext.exe147. Virus.Win32.HLLC.Hiderec.exe148. Virus.Win32.HLLC.Nosyst.exe149. Virus.Win32.HLLC.Persian.exe150. Virus.Win32.HLLC.Roex.exe151. Virus.Win32.HLLC.Sulpex.a.exe152. Virus.Win32.HLLC.Vbinfer.a.exe153. Virus.Win32.HLLC.Vedex.f.exe154. Virus.Win32.HLLO.28471.exe155. Virus.Win32.HLLO.Ant.b.exe156. Virus.Win32.HLLO.Antim.exe157. Virus.Win32.HLLO.Cewalk.exe158. Virus.Win32.HLLO.Fad.exe159. Virus.Win32.HLLO.Hadefix.d.exe160. Virus.Win32.HLLO.Homer.b.exe161. Virus.Win32.HLLO.Jetto.a.exe162. Virus.Win32.HLLO.Pascol.exe163. Virus.Win32.HLLO.Thiz.17408.exe164. Virus.Win32.HLLO.ZMK.c.exe165. Virus.Win32.HLLP.Alcaul.d.exe166. Virus.Win32.HLLP.BadBy.exe167. Virus.Win32.HLLP.Bizac.d.exe168. Virus.Win32.HLLP.Cranb.b.exe169. Virus.Win32.HLLP.Delf.b.exe170. Virus.Win32.HLLP.Delvi.exe171. Virus.Win32.HLLP.Emesix.exe172. Virus.Win32.HLLP.Eter.c.exe173. Virus.Win32.HLLP.Flatei.c.exe174. Virus.Win32.HLLP.Gezad.exe175. Virus.Win32.HLLP.Hantaner.a.exe176. Virus.Win32.HLLP.Hantaner.e.exe177. Virus.Win32.HLLP.Kiro.exe178. Virus.Win32.HLLP.Metrion.a.exe179. Virus.Win32.HLLP.MTV.exe180. Virus.Win32.HLLP.Remcom.exe181. Virus.Win32.HLLP.Savno.exe182. Virus.Win32.HLLP.Semisoft.d.exe183. Virus.Win32.HLLP.Semisoft.h.exe184. Virus.Win32.HLLP.Semisoft.m.exe185. Virus.Win32.HLLP.Shodi.c.exe186. Virus.Win32.HLLP.Stagol.a.exe187. Virus.Win32.HLLP.Tamin.exe188. Virus.Win32.HLLP.Text.b.exe189. Virus.Win32.HLLP.Unzi.exe190. Virus.Win32.HLLP.VB.c.exe191. Virus.Win32.HLLP.VB.k.exe

Page 79: Advanced Project in Computer Science: System-Calls Based

192. Virus.Win32.HLLP.Vedex.c.exe193. Virus.Win32.HLLP.Xinfect.b.exe194. Virus.Win32.HLLP.Xinfect.f.exe195. Virus.Win32.HLLP.Zepp.a.exe196. Virus.Win32.HLLP.Zepp.e.exe197. Virus.Win32.HLLP.Zepp.j.exe198. Virus.Win32.HLLW.Acoola.b.exe199. Virus.Win32.HLLW.Alcaul.c.exe200. Virus.Win32.HLLW.Amivida.exe201. Virus.Win32.HLLW.AntiQFX.b.exe202. Virus.Win32.HLLW.Arnger.exe203. Virus.Win32.HLLW.Axatak.exe204. Virus.Win32.HLLW.Bifox.exe205. Virus.Win32.HLLW.Billrus.d.exe206. Virus.Win32.HLLW.Billrus.h.exe207. Virus.Win32.HLLW.Carpeta.b.exe208. Virus.Win32.HLLW.Crumpet.exe209. Virus.Win32.HLLW.Dabrat.exe210. Virus.Win32.HLLW.Delf.e.exe211. Virus.Win32.HLLW.Delf.l.exe212. Virus.Win32.HLLW.Delf.q.exe213. Virus.Win32.HLLW.Doxin.exe214. Virus.Win32.HLLW.Estrella.73728.exe215. Virus.Win32.HLLW.Filk.exe216. Virus.Win32.HLLW.Foxma.exe217. Virus.Win32.HLLW.Ghotex.b.exe218. Virus.Win32.HLLW.Habrack.exe219. Virus.Win32.HLLW.Juegos.exe220. Virus.Win32.HLLW.Kaz.28672.exe221. Virus.Win32.HLLW.Labirint.exe222. Virus.Win32.HLLW.Maka.exe223. Virus.Win32.HLLW.Mintop.a.exe224. Virus.Win32.HLLW.Mona.exe225. Virus.Win32.HLLW.Mousemun.exe226. Virus.Win32.HLLW.Myset.a.exe227. Virus.Win32.HLLW.Oblion.b.exe228. Virus.Win32.HLLW.Osapex.b.exe229. Virus.Win32.HLLW.Picturex.exe230. Virus.Win32.HLLW.Remat.exe231. Virus.Win32.HLLW.Sakao.exe232. Virus.Win32.HLLW.Setex.exe233. Virus.Win32.HLLW.SoftSix.a.exe234. Virus.Win32.HLLW.Starfil.exe235. Virus.Win32.HLLW.Tefuss.b.exe236. Virus.Win32.HLLW.Timese.b.exe237. Virus.Win32.HLLW.Timese.f.exe

Page 80: Advanced Project in Computer Science: System-Calls Based

238. Virus.Win32.HLLW.Trabos.b.exe239. Virus.Win32.HLLW.VB.a.exe240. Virus.Win32.HLLW.Viguito.exe241. Virus.Win32.HLLW.Yanen.exe242. Virus.Win32.Horope.e.exe243. Virus.Win32.Hortiga.4805.exe244. Virus.Win32.Htrip.c.exe245. Virus.Win32.Idele.2060.exe246. Virus.Win32.Idele.2219.exe247. Virus.Win32.Idyll.1556.c.exe248. Virus.Win32.Iframer.d.exe249. Virus.Win32.Infinite.1661.exe250. Virus.Win32.Initx.exe251. Virus.Win32.Inrar.d.exe252. Virus.Win32.Insom.1972.c.exe253. Virus.Win32.Inta.1676.exe254. Virus.Win32.Intar.1920.exe255. Virus.Win32.Ipamor.b.exe256. Virus.Win32.Jater.exe257. Virus.Win32.Jeepeg.e.exe258. Virus.Win32.Jeepeg.j.exe259. Virus.Win32.Junkcomp.exe260. Virus.Win32.Kanban.a.exe261. Virus.Win32.Katomik.a.exe262. Virus.Win32.Keisan.d.exe263. Virus.Win32.Kenston.1895.b.exe264. Virus.Win32.Kespy.b.exe265. Virus.Win32.Kies.c.exe266. Virus.Win32.Kiltex.exe267. Virus.Win32.KME.exe268. Virus.Win32.Krepper.30760.exe269. Virus.Win32.Kriz.4037.exe270. Virus.Win32.Kriz.4099.exe271. Virus.Win32.Kuto.1468.exe272. Virus.Win32.Lalexa.b.exe273. Virus.Win32.Lamchi.c.exe274. Virus.Win32.Lamer.c.exe275. Virus.Win32.Lamer.h.exe276. Virus.Win32.Lamewin.1813.exe277. Virus.Win32.Lamicho.d.exe278. Virus.Win32.Lamzan.exe279. Virus.Win32.Lash.d.exe280. Virus.Win32.Levi.3236.exe281. Virus.Win32.Libertine.b.exe282. Virus.Win32.Limper.exe283. Virus.Win32.Lykov.b.exe

Page 81: Advanced Project in Computer Science: System-Calls Based

284. Virus.Win32.Magic.3038.exe285. Virus.Win32.Magic.7045.b.exe286. Virus.Win32.Magic.7045.f.exe287. Virus.Win32.Magic.7045.j.exe288. Virus.Win32.Mark.926.exe289. Virus.Win32.Matrix.844.exe290. Virus.Win32.Matrix.LS.1885.exe291. Virus.Win32.Matrix.Ordy.d.exe292. Virus.Win32.Matrix.Zelda.c.exe293. Virus.Win32.Maya.4108.exe294. Virus.Win32.Maya.4153.b.exe295. Virus.Win32.Maya.4254.exe296. Virus.Win32.Mental.10000.exe297. Virus.Win32.Mental.exe298. Virus.Win32.Miam.1699.exe299. Virus.Win32.Miam.4716.exe300. Virus.Win32.Minit.a.exe301. Virus.Win32.Mkar.c.exe302. Virus.Win32.Mocar.a.exe303. Virus.Win32.Mogul.6806.exe304. Virus.Win32.Mohmed.4607.exe305. Virus.Win32.Mooder.d.exe306. Virus.Win32.Mooder.h.exe307. Virus.Win32.Mooder.l.exe308. Virus.Win32.MTV.4608.b.exe309. Virus.Win32.Munga.a.exe310. Virus.Win32.Nemsi.exe311. Virus.Win32.Netlip.exe312. Virus.Win32.NGVCK.1095.exe313. Virus.Win32.NGVCK.gen.exe314. Virus.Win32.Nopti.exe315. Virus.Win32.Nox.2290.exe316. Virus.Win32.Numrok.1478.exe317. Virus.Win32.Opdoc.1122.exe318. Virus.Win32.Oroch.5420.exe319. Virus.Win32.Paradise.2168.exe320. Virus.Win32.Parite.c.exe321. Virus.Win32.Peana.exe322. Virus.Win32.Perez.c.exe323. Virus.Win32.Perrun.a.exe324. Virus.Win32.Pesin.d.exe325. Virus.Win32.Pioneer.b.exe326. Virus.Win32.Plutor.a.exe327. Virus.Win32.Porex.b.exe328. Virus.Win32.Projet.2404.a.exe329. Virus.Win32.Qozah.1386.exe

Page 82: Advanced Project in Computer Science: System-Calls Based

330. Virus.Win32.Qozah.3365.exe331. Virus.Win32.RainSong.3891.exe332. Virus.Win32.RainSong.3956.exe333. Virus.Win32.Ramm.a.exe334. Virus.Win32.Ramm.e.exe335. Virus.Win32.Ramm.i.exe336. Virus.Win32.Ravs.a.exe337. Virus.Win32.Redemption.b.exe338. Virus.Win32.Resur.c.exe339. Virus.Win32.Resur.g.exe340. Virus.Win32.Rever.exe341. Virus.Win32.Romario.a.exe342. Virus.Win32.Ruff.4859.exe343. Virus.Win32.Rufoll.1432.exe344. Virus.Win32.Rutern.5244.exe345. Virus.Win32.Sadon.900.exe346. Virus.Win32.Sality.aa.exe347. Virus.Win32.Sality.ae.exe348. Virus.Win32.Sality.f.exe349. Virus.Win32.Sality.o.exe350. Virus.Win32.Sality.u.exe351. Virus.Win32.Sality.z.exe352. Virus.Win32.Sankei.1062.exe353. Virus.Win32.Sankei.1493.exe354. Virus.Win32.Sankei.3077.exe355. Virus.Win32.Sankei.3464.exe356. Virus.Win32.Sankei.358.exe357. Virus.Win32.Sankei.4085.exe358. Virus.Win32.Satir.994.exe359. Virus.Win32.Savior.1740.exe360. Virus.Win32.Savior.1904.exe361. Virus.Win32.Segax.1136.exe362. Virus.Win32.Selfish.a.exe363. Virus.Win32.Selfish.g.exe364. Virus.Win32.Sentinel.a.exe365. Virus.Win32.Seppuku.1608.exe366. Virus.Win32.Seppuku.28114.exe367. Virus.Win32.Seppuku.3426.exe368. Virus.Win32.Seppuku.5019.exe369. Virus.Win32.Sexy.a.exe370. Virus.Win32.Shaitan.3482.exe371. Virus.Win32.Shodi.f.exe372. Virus.Win32.Shown.539.a.exe373. Virus.Win32.Silcer.poly.exe374. Virus.Win32.Siller.1455.exe375. Virus.Win32.Silly.d.exe

Page 83: Advanced Project in Computer Science: System-Calls Based

376. Virus.Win32.Simer.a.exe377. Virus.Win32.Skorzen.exe378. Virus.Win32.Slaman.f.exe379. Virus.Win32.Small.1365.b.exe380. Virus.Win32.Small.139.exe381. Virus.Win32.Small.1468.exe382. Virus.Win32.Small.1689.exe383. Virus.Win32.Small.2560.exe384. Virus.Win32.Small.a.exe385. Virus.Win32.Small.ah.exe386. Virus.Win32.Small.am.exe387. Virus.Win32.Small.e.exe388. Virus.Win32.Small.n.exe389. Virus.Win32.Small.x.exe390. Virus.Win32.Smog.a.exe391. Virus.Win32.Spit.c.exe392. Virus.Win32.Staro.1538.exe393. Virus.Win32.Stepar.e.exe394. Virus.Win32.Stepar.m.exe395. Virus.Win32.Studen.c.exe396. Virus.Win32.Suns.3912.exe397. Virus.Win32.Tank.a.exe398. Virus.Win32.Team.b.exe399. Virus.Win32.Tenga.a.exe400. Virus.Win32.Texel.c.exe401. Virus.Win32.Texel.k.exe402. Virus.Win32.Thorin.d.exe403. Virus.Win32.Tinit.a.exe404. Virus.Win32.Tirtas.5216.exe405. Virus.Win32.Toex.a.exe406. Virus.Win32.Toto.7272.exe407. Virus.Win32.Trats.c.exe408. Virus.Win32.Trion.b.exe409. Virus.Win32.Tufik.c.exe410. Virus.Win32.Tyhos.a.exe411. Virus.Win32.Ultratt.8166.b.exe412. Virus.Win32.Undertaker.4887.exe413. Virus.Win32.Usem.b.exe414. Virus.Win32.VB.ad.exe415. Virus.Win32.VB.ah.exe416. Virus.Win32.VB.am.exe417. Virus.Win32.VB.ar.exe418. Virus.Win32.VB.aw.exe419. Virus.Win32.VB.b.exe420. Virus.Win32.VB.bd.exe421. Virus.Win32.VB.bl.exe

Page 84: Advanced Project in Computer Science: System-Calls Based

422. Virus.Win32.VB.bp.exe423. Virus.Win32.VB.by.exe424. Virus.Win32.VB.cb.exe425. Virus.Win32.VB.cg.exe426. Virus.Win32.VB.ck.exe427. Virus.Win32.VB.cp.exe428. Virus.Win32.VB.ct.exe429. Virus.Win32.VB.cz.exe430. Virus.Win32.VB.dj.exe431. Virus.Win32.VB.do.exe432. Virus.Win32.VB.dt.exe433. Virus.Win32.VB.dy.exe434. Virus.Win32.VB.ek.exe435. Virus.Win32.VB.et.exe436. Virus.Win32.VB.ey.exe437. Virus.Win32.VB.ff.exe438. Virus.Win32.VB.fj.exe439. Virus.Win32.VB.fq.exe440. Virus.Win32.VB.fx.exe441. Virus.Win32.VB.hh.exe442. Virus.Win32.VB.hz.exe443. Virus.Win32.VB.ie.exe444. Virus.Win32.VB.ik.exe445. Virus.Win32.VB.ir.exe446. Virus.Win32.VB.ja.exe447. Virus.Win32.VB.jk.exe448. Virus.Win32.VB.jq.exe449. Virus.Win32.VB.k.exe450. Virus.Win32.VB.kf.exe451. Virus.Win32.VB.kj.exe452. Virus.Win32.VB.kp.exe453. Virus.Win32.VB.ku.exe454. Virus.Win32.VB.ky.exe455. Virus.Win32.VB.ld.exe456. Virus.Win32.VB.lk.exe457. Virus.Win32.VB.lw.exe458. Virus.Win32.VB.ma.exe459. Virus.Win32.VB.mi.exe460. Virus.Win32.VB.r.exe461. Virus.Win32.VB.w.exe462. Virus.Win32.VCell.3041.exe463. Virus.Win32.VChain.exe464. Virus.Win32.Velost.1233.exe465. Virus.Win32.Virut.aa.exe466. Virus.Win32.Virut.ae.exe467. Virus.Win32.Virut.ai.exe

Page 85: Advanced Project in Computer Science: System-Calls Based

468. Virus.Win32.Virut.ap.exe469. Virus.Win32.Virut.at.exe470. Virus.Win32.Virut.ax.exe471. Virus.Win32.Virut.bc.exe472. Virus.Win32.Virut.bg.exe473. Virus.Win32.Virut.bn.exe474. Virus.Win32.Virut.br.exe475. Virus.Win32.Virut.bw.exe476. Virus.Win32.Virut.cb.exe477. Virus.Win32.Virut.cf.exe478. Virus.Win32.Virut.n.exe479. Virus.Win32.Virut.s.exe480. Virus.Win32.Virut.w.exe481. Virus.Win32.Viset.a.exe482. Virus.Win32.Vulgar.a.exe483. Virus.Win32.Wanhope.1357.exe484. Virus.Win32.Warray.exe485. Virus.Win32.Weird.d.exe486. Virus.Win32.Wide.8135.b.exe487. Virus.Win32.Wide.c.exe488. Virus.Win32.Wolf.b.exe489. Virus.Win32.Wuke.c.exe490. Virus.Win32.Xiao.e.exe491. Virus.Win32.Xorer.ac.exe492. Virus.Win32.Xorer.bq.exe493. Virus.Win32.Xorer.cf.exe494. Virus.Win32.Xorer.cl.exe495. Virus.Win32.Xorer.cx.exe496. Virus.Win32.Xorer.dc.exe497. Virus.Win32.Xorer.dj.exe498. Virus.Win32.Xorer.ds.exe499. Virus.Win32.Xorer.dy.exe500. Virus.Win32.Xorer.ed.exe501. Virus.Win32.Xorer.eh.exe502. Virus.Win32.Xorer.el.exe503. Virus.Win32.Xorer.ep.exe504. Virus.Win32.Xorer.et.exe505. Virus.Win32.Xorer.ex.exe506. Virus.Win32.Xorer.fc.exe507. Virus.Win32.Xorer.fg.exe508. Virus.Win32.Xorer.h.exe509. Virus.Win32.Xorer.s.exe510. Virus.Win32.Yerg.9412.exe511. Virus.Win32.Zaka.b.exe512. Virus.Win32.Zawex.1840.exe513. Virus.Win32.Zero.b.exe514. Virus.Win32.ZloyFly.a.exe515. Virus.Win32.ZMist.exe516. Virus.Win32.Zori.a.exe517. Virus.Win32.ZPerm.b2.exe

Page 86: Advanced Project in Computer Science: System-Calls Based

B.6 Additional Benign Programs List (in the Updated DB)

1. 3DVision 190.38.exe2. 3DVision 195.62.exe3. 3DVision 275.33.exe4. 7z.exe5. aaw2007 10.exe6. aaw2007 16.exe7. acdsee 7.exe8. acdsee-12-0-344-win-en.exe9. acdsee-14-0-110-win-en.exe

10. ACID.exe11. adobearm.exe12. adobearmhelper.exe13. AIMLangen-US.exe14. aimp 2.51.320.exe15. aimp 2.60.486 beta 2.exe16. aimp 2.61.583.exe17. aimp 3.00.985.exe18. AIMP2r.exe19. ALUSchedulerSvc.exe20. appremover cli.exe21. AptanaStudio3.exe22. avcenter.exe23. avc-free 22.exe24. avc-free 84.exe25. avconfig.exe26. avguard.exe27. avidemux cli.exe28. avmailc.exe29. Azureus 3.0.1.4 windows.exe30. Azureus 3.0.5.2b windows.exe31. BarBroker.exe32. BCompare-3.2.1.12831.exe33. beta 5.exe34. BitTorrent 12.exe35. BitTorrent 15.exe36. blender.exe37. brs.exe38. bsetutil.exe39. capinfos.exe40. cfplogvw.exe41. chkupd.exe42. CLHNServiceForPowerDVD12.exe43. configimport.exe44. CPES CLEAN.EXE.exe

Page 87: Advanced Project in Computer Science: System-Calls Based

45. CuteWriter 3.exe46. daemon347 4.exe47. dap97 2.exe48. DefaultSettings.exe49. DELUS.EXE.exe50. DexControl.exe51. DIAGNOSTICSCAPTURETOOL.EXE.exe52. dMC-r12.3.exe53. dMC-r12.4.exe54. dns sd.exe55. DVDNavExt.exe56. DX9.exe57. DXEnumD7927B84.exe58. ecls.exe59. epm 6.exe60. Eudora 7.0.0.15 beta 2.exe61. Eudora 7.1.0.4 beta 2.exe62. Eudora 7.1.0.9.exe63. Evernote 3.1.0.1225 3.exe64. Evernote 3.5.0.1258.exe65. Evernote 3.5.5.2567 2.exe66. F.bin.my print defaults.exe67. F.bin.myisam ftdump.exe68. F.bin.myisamchk.exe69. F.bin.mysql tzinfo to sql.exe70. F.bin.mysqlbinlog.exe71. F.bin.mysqlslap.exe72. ffmpeg2theora.exe73. FGResDetector.exe74. find.exe75. FreemakeVideoConverter 2.1.1.1.exe76. FreemakeVideoConverter 2.3.0.1.exe77. FreemakeVideoConverter 2.3.1.0 2.exe78. FreemakeVideoConverter 3.0.1.11.exe79. FreemakeVideoConverter 3.0.2.10.exe80. FreemakeVideoConverter 3.0.2.14.exe81. FreemakeVideoConverter 3.2.1.6 2.exe82. FreemakeVideoConverter 4.0.1.0.exe83. FreemakeVideoConverter 4.0.1.1 2.exe84. FreemakeVideoConverter 4.0.1.2 2.exe85. FreemakeVideoConverter 4.0.2.5.exe86. FreemakeVideoConverter 4.0.2.8.exe87. FreemakeVideoConverter 4.0.3.1 2.exe88. fwplayer.exe89. gawk.exe90. gdk-pixbuf-query-loaders.exe

Page 88: Advanced Project in Computer Science: System-Calls Based

91. GFExperience.exe92. GoogleEarthWin 30.exe93. GoogleEarthWin EARD.exe94. GPU-Z.0.4.5.exe95. GPU-Z.0.4.6 2.exe96. GPU-Z.0.5.3.exe97. GPU-Z.0.5.6 2.exe98. GPU-Z.0.6.0.exe99. gtk-query-immodules-2.0.exe

100. guardgui.exe101. GUP.exe102. handlecmsg.exe103. hdaudio 1.00.00.59 xp vista win7.exe104. hjsplit.exe105. HostFileEditor.exe106. hwinfo4E43DC63.exe107. Icon. 060B8769AED00B7FE8F8AC.exe108. Icon. 12db153c.exe109. Icon. 275548FC5187708975B162.exe110. Icon. 379D30BBDA42A4EAAA996D.exe111. Icon. 5DEC29AE26BBD9C9863F82.exe112. Icon. 80DA8F2561DA44290F5B83.exe113. Icon. 8581471E17CEB84267F05B.exe114. Icon. 8862C376C51C56CA6D0BBA.exe115. Icon. A5739470FE75C8F21815D5.exe116. Icon. C9C70F774117D0AF316643.exe117. Icon. EA5D8D5AF3DCEFAE240693.exe118. Icon. F2473FCCAE2EA281EE98D5.exe119. Icon.eula.exe120. Icon.ImgToVHD.exe121. Icon.MmDefaultProductIcon.1.0.0.468.ico.exe122. iconworkshop 16.exe123. iconworkshop 8.exe124. ICS Dv32.exe125. idman611.exe126. idman615 7.exe127. idman615b15.exe128. idman617b8.exe129. ImgBurnPreview.exe130. InCDsrv58BA8959.exe131. isobuster all lang 5.exe132. jbig2dec.exe133. jp2launcher.exe134. kinit.exe135. latency.exe136. Launcher x64.exe

Page 89: Advanced Project in Computer Science: System-Calls Based

137. LavasoftGCHelper.exe138. logname.exe139. LuConfig.exe140. magnet.exe141. MailWasherFree 6.3.exe142. MediaMonkey 3.0.4.1185.exe143. MediaMonkey 3.1.0.1242 Debug.exe144. MediaMonkey 3.1.0.1256.exe145. MediaMonkey 3.2.2.1300.exe146. mirc632.exe147. mirc635.exe148. mirc71.exe149. mirc715.exe150. Miro Downloader.exe151. MSOHTMED.EXE.exe152. MSOICONS.EXE.exe153. MxDock.exe154. NBR.exe155. ndntenst.exe156. NMIndexStoreSvr9321C9AF.exe157. NPSWF32 FlashUtil.exe158. Offercast2802 SPC2 .exe159. Omigrate.exe160. PF-Chrome-W78.exe161. PicasaUpdate.exe162. powarc964 2.exe163. PSANCU.exe164. pyw.exe165. qs.exe166. rdcq.exe167. RealPlayer 13.exe168. RealPlayer 3.exe169. RealPlayer 5.exe170. reporter.exe171. RunCmdFile.exe172. SafariSyncClient.exe173. safeguard.exe174. SAM.exe175. san1122.exe176. san1715.exe177. san1866.exe178. san1935.exe179. san2011-1760.exe180. san2011-1764.exe181. SCSIinst.exe182. SetCDfmt.exe

Page 90: Advanced Project in Computer Science: System-Calls Based

183. SevenDex.exe184. sfbeta430-9.exe185. shlibsign.exe186. simpress.exe187. snagit 2.exe188. snapshot.exe189. SNDInst.exe190. sobuster all lang 23.exe191. Speccy.exe192. spybotsd15he-beta1.exe193. spybotsd160-rc2.exe194. spybotsd-2.0.3-beta1.exe195. SpywareTerminator 8.exe196. Stinger 4.exe197. stinger32 42.exe198. Sunbelt-Personal-Firewall 2.exe199. SUPERAntiSpyware 103.exe200. SUPERAntiSpyware 41.exe201. SUPERAntiSpyware 80.exe202. SUPERAntiSpyware 91.exe203. SUPERAntiSpyware 93.exe204. SwHelper 1152602.exe205. SwHelper 1156606.exe206. SwHelper 1159620.exe207. SwHelper 1200112.exe208. TagRename36.exe209. TaskSwitchXP.exe210. ThreatWork.exe211. thunderbird.exe212. timidity.exe213. ToDoList.exe214. TopStyle50 4.exe215. udefrag.exe216. UninstWaDetect.exe217. UpdateInst.exe218. updrgui.exe219. URLPROXY.EXE.exe220. UsrPrmpt.exe221. utorrent 275.exe222. utorrent-1.5.1-beta-build-464.exe223. video-editor full846 2.exe224. virtualdj home.exe225. vlc-cache-gen.exe226. VMware-player-3.1.0-261024.exe227. VoiceFrm.exe228. Vuze 3.1.0.0 windows.exe

Page 91: Advanced Project in Computer Science: System-Calls Based

229. Vuze 3.1.1.0 windows.exe230. Vuze 4.1.0.4 windows.exe231. w9xpopen.exe232. wia.exe233. windowblinds5 public 6.exe234. WindowBlinds7 public.exe235. winpcap-nmap-4.12.exe236. wmad.exe237. wmlaunch.exe238. WPMMAPI.EXE.exe239. XCrashReport.exe240. XnViewMediaDetector.exe241. xpidl.exe242. xpt dump.exe243. YahooWidgets 3.0.exe244. ymsgr750 647 us.exe245. zatray.exe246. ZATUTOR.EXE.exe247. zipper.exe248. zonealarm base.exe249. zsh.exe250. ZSMessage.exe

B.7 Additional Malicious Programs List (in the Updated DB)

1. Virus.Win32.Adson.1651.exe2. Virus.Win32.Agent.ab.exe3. Virus.Win32.Agent.bi.exe4. Virus.Win32.Agent.cg.exe5. Virus.Win32.Alcaul.g.exe6. Virus.Win32.Alcaul.o.exe7. Virus.Win32.Alma.37195.exe8. Virus.Win32.Anuir.3888.exe9. Virus.Win32.AOC.3676.a.exe

10. Virus.Win32.Apparition.a.exe11. Virus.Win32.Artelad.2173.exe12. Virus.Win32.AutoIt.e.exe13. Virus.Win32.Banka.a.exe14. Virus.Win32.Belial.2609.exe15. Virus.Win32.Belus.a.exe16. Virus.Win32.Blakan.2064.exe17. Virus.Win32.Bogus.4096.exe18. Virus.Win32.Bolzano.3164.exe19. Virus.Win32.Bolzano.4096.f.exe20. Virus.Win32.Brof.c.exe21. Virus.Win32.Bube.i.exe

Page 92: Advanced Project in Computer Science: System-Calls Based

22. Virus.Win32.Bytesv.1442.exe23. Virus.Win32.Cabanas.Debug.exe24. Virus.Win32.Cecile.exe25. Virus.Win32.Celex.a.exe26. Virus.Win32.Champ.5707.b.exe27. Virus.Win32.Chiton.a.exe28. Virus.Win32.Chiton.l.exe29. Virus.Win32.Chiton.exe30. Virus.Win32.Compan.a.exe31. Virus.Win32.Crypto.a.exe32. Virus.Win32.Darif.a.exe33. Virus.Win32.Deemo.exe34. Virus.Win32.Delf.ag.exe35. Virus.Win32.Delf.bd.exe36. Virus.Win32.Delf.bm.exe37. Virus.Win32.Delf.c.exe38. Virus.Win32.Delf.cq.exe39. Virus.Win32.Delf.d.exe40. Virus.Win32.Delf.l.exe41. Virus.Win32.Dicomp.8192.b.exe42. Virus.Win32.Ditto.1492.exe43. Virus.Win32.Doser.4187.exe44. Virus.Win32.Downloader.a.exe45. Virus.Win32.Downloader.aj.exe46. Virus.Win32.Downloader.ar.exe47. Virus.Win32.Downloader.ba.exe48. Virus.Win32.Downloader.m.exe49. Virus.Win32.Downloader.x.exe50. Virus.Win32.Drol.5337.b.exe51. Virus.Win32.DunDun.5025.exe52. Virus.Win32.Egolet.a.exe53. Virus.Win32.Elkern.dam.exe54. Virus.Win32.Epoe.1048.exe55. Virus.Win32.Eva.f.exe56. Virus.Win32.Evul.8192.b.exe57. Virus.Win32.Evyl.b.exe58. Virus.Win32.Expiro.e.exe59. Virus.Win32.Expiro.n.exe60. Virus.Win32.Fighter.c.exe61. Virus.Win32.Folcom.e.exe62. Virus.Win32.Freebid.exe63. Virus.Win32.Genu.a.exe64. Virus.Win32.Ginra.3657.exe65. Virus.Win32.Giri.5209.exe66. Virus.Win32.Gremo.2343.exe67. Virus.Win32.Grum.e.exe

Page 93: Advanced Project in Computer Science: System-Calls Based

68. Virus.Win32.Grum.n.exe69. Virus.Win32.Halen.2593.exe70. Virus.Win32.Hefi.a.exe71. Virus.Win32.Henky.5668.exe72. Virus.Win32.Hidrag.a.exe73. Virus.Win32.HIV.6382.exe74. Virus.Win32.HLLC.Delfer.e.exe75. Virus.Win32.HLLC.Hidoc.exe76. Virus.Win32.HLLC.Sulpex.b.exe77. Virus.Win32.HLLC.Vedex.exe78. Virus.Win32.HLLO.Ant.c.exe79. Virus.Win32.HLLO.Delf.b.exe80. Virus.Win32.HLLO.Jetto.b.exe81. Virus.Win32.HLLO.Momac.b.exe82. Virus.Win32.HLLO.Vogad.exe83. Virus.Win32.HLLP.Delf.c.exe84. Virus.Win32.HLLP.Estatic.exe85. Virus.Win32.HLLP.Flatei.d.exe86. Virus.Win32.HLLP.Gogo.a.exe87. Virus.Win32.HLLP.Hetis.exe88. Virus.Win32.HLLP.Semisoft.e.exe89. Virus.Win32.HLLP.Semisoft.n.exe90. Virus.Win32.HLLP.Text.c.exe91. Virus.Win32.HLLP.VB.d.exe92. Virus.Win32.HLLP.Werle.a.exe93. Virus.Win32.HLLP.Zepp.b.exe94. Virus.Win32.HLLP.Zepp.k.exe95. Virus.Win32.HLLW.Alcaul.d.exe96. Virus.Win32.HLLW.Antonio.exe97. Virus.Win32.HLLW.Azha.exe98. Virus.Win32.HLLW.Billrus.e.exe99. Virus.Win32.HLLW.Carpeta.c.exe

100. Virus.Win32.HLLW.Dax.exe101. Virus.Win32.HLLW.Delf.m.exe102. Virus.Win32.HLLW.Editorex.exe103. Virus.Win32.HLLW.Flita.exe104. Virus.Win32.HLLW.Ghotex.c.exe105. Virus.Win32.HLLW.Juejue.exe106. Virus.Win32.HLLW.Lestat.exe107. Virus.Win32.HLLW.Mintop.b.exe108. Virus.Win32.HLLW.Munter.a.exe109. Virus.Win32.HLLW.Oblion.c.exe110. Virus.Win32.HLLW.Parparo.a.exe111. Virus.Win32.HLLW.Proget.a.exe112. Virus.Win32.HLLW.Scareg.exe113. Virus.Win32.HLLW.SoftSix.b.exe

Page 94: Advanced Project in Computer Science: System-Calls Based

114. Virus.Win32.HLLW.Tefuss.c.exe115. Virus.Win32.HLLW.Timese.h.exe116. Virus.Win32.HLLW.Zule.exe117. Virus.Win32.Idele.2104.exe118. Virus.Win32.Iframer.a.exe119. Virus.Win32.Inrar.a.exe120. Virus.Win32.Insom.1972.d.exe121. Virus.Win32.Ipamor.c.exe122. Virus.Win32.Jeepeg.f.exe123. Virus.Win32.Jlok.b.exe124. Virus.Win32.Kangen.a.exe125. Virus.Win32.Keisan.a.exe126. Virus.Win32.Kenston.1936.a.exe127. Virus.Win32.Kies.e.exe128. Virus.Win32.KMKY.exe129. Virus.Win32.Kriz.3742.exe130. Virus.Win32.Kriz.4233.exe131. Virus.Win32.Ladmar.2004.exe132. Virus.Win32.Lamebyte.exe133. Virus.Win32.Lamer.i.exe134. Virus.Win32.Lamicho.e.exe135. Virus.Win32.LazyMin.30.exe136. Virus.Win32.Libertine.d.exe137. Virus.Win32.Lykov.c.exe138. Virus.Win32.Magic.7045.c.exe139. Virus.Win32.Magic.7045.k.exe140. Virus.Win32.Matrix.909.a.exe141. Virus.Win32.Matrix.Ordy.e.exe142. Virus.Win32.Merin.a.exe143. Virus.Win32.Miam.5110.exe144. Virus.Win32.Mkar.e.exe145. Virus.Win32.Mogul.6845.exe146. Virus.Win32.Mooder.e.exe147. Virus.Win32.Moontox.a.exe148. Virus.Win32.Mutarol.2456.exe149. Virus.Win32.Notime.exe150. Virus.Win32.Nvrdoc.exe151. Virus.Win32.Orez.6287.exe152. Virus.Win32.Peansen.2133.exe153. Virus.Win32.Pioneer.c.exe154. Virus.Win32.Porex.c.exe155. Virus.Win32.Projet.2404.b.exe156. Virus.Win32.Qozah.3370.exe157. Virus.Win32.RainSong.4198.exe158. Virus.Win32.Ramm.f.exe159. Virus.Win32.Razenya.exe

Page 95: Advanced Project in Computer Science: System-Calls Based

160. Virus.Win32.Repka.c.exe161. Virus.Win32.Retroy.a.exe162. Virus.Win32.Rikenar.1492.exe163. Virus.Win32.Ruff.4864.exe164. Virus.Win32.Ryex.exe165. Virus.Win32.Sality.g.exe166. Virus.Win32.Sality.q.exe167. Virus.Win32.Sankei.1766.exe168. Virus.Win32.Sankei.3480.exe169. Virus.Win32.Santana.1104.exe170. Virus.Win32.Savior.1800.exe171. Virus.Win32.Selfish.h.exe172. Virus.Win32.Seppuku.1638.exe173. Virus.Win32.Seppuku.3584.exe174. Virus.Win32.Sexy.b.exe175. Virus.Win32.Shodi.g.exe176. Virus.Win32.Silcer.exe177. Virus.Win32.Silly.e.exe178. Virus.Win32.Skoworodka.a.exe179. Virus.Win32.Slow.8192.b.exe180. Virus.Win32.Small.1393.exe181. Virus.Win32.Small.1700.exe182. Virus.Win32.Small.ap.exe183. Virus.Win32.Small.t.exe184. Virus.Win32.Smog.c.exe185. Virus.Win32.Spit.d.exe186. Virus.Win32.Stepar.g.exe187. Virus.Win32.Stupid.a.exe188. Virus.Win32.Tank.c.exe189. Virus.Win32.Tenga.b.exe190. Virus.Win32.Texel.d.exe191. Virus.Win32.This31.16896.exe192. Virus.Win32.Thorin.e.exe193. Virus.Win32.Tirtas.5675.exe194. Virus.Win32.Towloh.1024.exe195. Virus.Win32.Trion.c.exe196. Virus.Win32.Tupac.a.exe197. Virus.Win32.Ultratt.8167.exe198. Virus.Win32.Vampiro.7018.exe199. Virus.Win32.VB.an.exe200. Virus.Win32.VB.ax.exe201. Virus.Win32.VB.bf.exe202. Virus.Win32.VB.bq.exe203. Virus.Win32.VB.bz.exe204. Virus.Win32.VB.ch.exe205. Virus.Win32.VB.cq.exe

Page 96: Advanced Project in Computer Science: System-Calls Based

206. Virus.Win32.VB.dk.exe207. Virus.Win32.VB.du.exe208. Virus.Win32.VB.eh.exe209. Virus.Win32.VB.eu.exe210. Virus.Win32.VB.fg.exe211. Virus.Win32.VB.fr.exe212. Virus.Win32.VB.gj.exe213. Virus.Win32.VB.gz.exe214. Virus.Win32.VB.iu.exe215. Virus.Win32.VB.jm.exe216. Virus.Win32.VB.kb.exe217. Virus.Win32.VB.kk.exe218. Virus.Win32.VB.kv.exe219. Virus.Win32.VB.le.exe220. Virus.Win32.VB.lx.exe221. Virus.Win32.VB.n.exe222. Virus.Win32.VB.x.exe223. Virus.Win32.Vck.3037.exe224. Virus.Win32.Virut.ab.exe225. Virus.Win32.Virut.aj.exe226. Virus.Win32.Virut.au.exe227. Virus.Win32.Virut.bd.exe228. Virus.Win32.Virut.bo.exe229. Virus.Win32.Virut.bx.exe230. Virus.Win32.Virut.cg.exe231. Virus.Win32.Virut.t.exe232. Virus.Win32.Viset.b.exe233. Virus.Win32.Wanhope.1834.exe234. Virus.Win32.Weird.e.exe235. Virus.Win32.Wolf.c.exe236. Virus.Win32.Xorala.exe237. Virus.Win32.Xorer.an.exe238. Virus.Win32.Xorer.bh.exe239. Virus.Win32.Xorer.cm.exe240. Virus.Win32.Xorer.cy.exe241. Virus.Win32.Xorer.eq.exe242. Virus.Win32.Xorer.ez.exe243. Virus.Win32.Xorer.fi.exe244. Virus.Win32.Yerg.9571.exe245. Virus.Win32.Zakk.a.exe246. Virus.Win32.Zevity.exe

C Appendix C: System Calls Monitored By The SystemCalls Recorder

1. NtAcceptConnectPort

Page 97: Advanced Project in Computer Science: System-Calls Based

2. NtAccessCheck3. NtAccessCheckAndAuditAlarm4. NtAccessCheckByType5. NtAccessCheckByTypeAndAuditAlarm6. NtAccessCheckByTypeResultList7. NtAccessCheckByTypeResultListAndAuditAlarm8. NtAccessCheckByTypeResultListAndAuditAlarmByHandle9. NtAcquireCMFViewOwnership

10. NtAddAtom11. NtAddBootEntry12. NtAddDriverEntry13. NtAdjustGroupsToken14. NtAdjustPrivilegesToken15. NtAlertResumeThread16. NtAlertThread17. NtAllocateLocallyUniqueId18. NtAllocateReserveObject19. NtAllocateUserPhysicalPages20. NtAllocateUuids21. NtAllocateVirtualMemory22. NtAlpcAcceptConnectPort23. NtAlpcCancelMessage24. NtAlpcConnectPort25. NtAlpcCreatePort26. NtAlpcCreatePortSection27. NtAlpcCreateResourceReserve28. NtAlpcCreateSectionView29. NtAlpcCreateSecurityContext30. NtAlpcDeletePortSection31. NtAlpcDeleteResourceReserve32. NtAlpcDeleteSectionView33. NtAlpcDeleteSecurityContext34. NtAlpcDisconnectPort35. NtAlpcImpersonateClientOfPort36. NtAlpcOpenSenderProcess37. NtAlpcOpenSenderThread38. NtAlpcQueryInformation39. NtAlpcQueryInformationMessage40. NtAlpcRevokeSecurityContext41. NtAlpcSendWaitReceivePort42. NtAlpcSetInformation43. NtApphelpCacheControl44. NtAreMappedFilesTheSame45. NtAssignProcessToJobObject46. NtCallbackReturn47. NtCancelDeviceWakeupRequest

Page 98: Advanced Project in Computer Science: System-Calls Based

48. NtCancelIoFile49. NtCancelIoFileEx50. NtCancelSynchronousIoFile51. NtCancelTimer52. NtClearAllSavepointsTransaction53. NtClearEvent54. NtClearSavepointTransaction55. NtClose56. NtCloseObjectAuditAlarm57. NtCommitComplete58. NtCommitEnlistment59. NtCommitTransaction60. NtCompactKeys61. NtCompareTokens62. NtCompleteConnectPort63. NtCompressKey64. NtConnectPort65. NtContinue66. NtCreateChannel67. NtCreateDebugObject68. NtCreateDirectoryObject69. NtCreateEnlistment70. NtCreateEvent71. NtCreateEventPair72. NtCreateFile73. NtCreateIoCompletion74. NtCreateJobObject75. NtCreateJobSet76. NtCreateKey77. NtCreateKeyedEvent78. NtCreateKeyTransacted79. NtCreateMailslotFile80. NtCreateMutant81. NtCreateNamedPipeFile82. NtCreatePagingFile83. NtCreatePort84. NtCreatePrivateNamespace85. NtCreateProcess86. NtCreateProcessEx87. NtCreateProfile88. NtCreateProfileEx89. NtCreateResourceManager90. NtCreateSection91. NtCreateSemaphore92. NtCreateSymbolicLinkObject93. NtCreateThread

Page 99: Advanced Project in Computer Science: System-Calls Based

94. NtCreateThreadEx95. NtCreateTimer96. NtCreateToken97. NtCreateTransaction98. NtCreateTransactionManager99. NtCreateUserProcess

100. NtCreateWaitablePort101. NtCreateWorkerFactory102. NtDebugActiveProcess103. NtDebugContinue104. NtDelayExecution105. NtDeleteAtom106. NtDeleteBootEntry107. NtDeleteDriverEntry108. NtDeleteFile109. NtDeleteKey110. NtDeleteObjectAuditAlarm111. NtDeletePrivateNamespace112. NtDeleteValueKey113. NtDeviceIoControlFile114. NtDisableLastKnownGood115. NtDisplayString116. NtDrawText117. NtDuplicateObject118. NtDuplicateToken119. NtEnableLastKnownGood120. NtEnumerateBootEntries121. NtEnumerateDriverEntries122. NtEnumerateKey123. NtEnumerateSystemEnvironmentValuesEx124. NtEnumerateTransactionObject125. NtEnumerateValueKey126. NtExtendSection127. NtFilterToken128. NtFindAtom129. NtFlushBuffersFile130. NtFlushInstallUILanguage131. NtFlushInstructionCache132. NtFlushKey133. NtFlushProcessWriteBuffers134. NtFlushVirtualMemory135. NtFlushWriteBuffer136. NtFreeUserPhysicalPages137. NtFreeVirtualMemory138. NtFreezeRegistry139. NtFreezeTransactions

Page 100: Advanced Project in Computer Science: System-Calls Based

140. NtFsControlFile141. NtGetContextThread142. NtGetCurrentProcessorNumber143. NtGetDevicePowerState144. NtGetMUIRegistryInfo145. NtGetNextProcess146. NtGetNextThread147. NtGetNlsSectionPtr148. NtGetNotificationResourceManager149. NtGetPlugPlayEvent150. NtGetTickCount151. NtGetWriteWatch152. NtImpersonateAnonymousToken153. NtImpersonateClientOfPort154. NtImpersonateThread155. NtInitializeNlsFiles156. NtInitializeRegistry157. NtInitiatePowerAction158. NtIsProcessInJob159. NtIsSystemResumeAutomatic160. NtIsUILanguageComitted161. NtListenChannel162. NtListenPort163. NtListTransactions164. NtLoadDriver165. NtLoadKey166. NtLoadKey2167. NtLoadKeyEx168. NtLockFile169. NtLockProductActivationKeys170. NtLockRegistryKey171. NtLockVirtualMemory172. NtMakePermanentObject173. NtMakeTemporaryObject174. NtMapCMFModule175. NtMapUserPhysicalPages176. NtMapUserPhysicalPagesScatter177. NtMapViewOfSection178. NtMarshallTransaction179. NtModifyBootEntry180. NtModifyDriverEntry181. NtNotifyChangeDirectoryFile182. NtNotifyChangeKey183. NtNotifyChangeMultipleKeys184. NtNotifyChangeSession185. NtOpenChannel

Page 101: Advanced Project in Computer Science: System-Calls Based

186. NtOpenDirectoryObject187. NtOpenEnlistment188. NtOpenEvent189. NtOpenEventPair190. NtOpenFile191. NtOpenIoCompletion192. NtOpenJobObject193. NtOpenKey194. NtOpenKeyedEvent195. NtOpenKeyEx196. NtOpenKeyTransacted197. NtOpenKeyTransactedEx198. NtOpenMutant199. NtOpenObjectAuditAlarm200. NtOpenPrivateNamespace201. NtOpenProcess202. NtOpenProcessToken203. NtOpenProcessTokenEx204. NtOpenResourceManager205. NtOpenSection206. NtOpenSemaphore207. NtOpenSession208. NtOpenSymbolicLinkObject209. NtOpenThread210. NtOpenThreadToken211. NtOpenThreadTokenEx212. NtOpenTimer213. NtOpenTransaction214. NtOpenTransactionManager215. NtPlugPlayControl216. NtPowerInformation217. NtPrepareComplete218. NtPrepareEnlistment219. NtPrePrepareComplete220. NtPrePrepareEnlistment221. NtPrivilegeCheck222. NtPrivilegedServiceAuditAlarm223. NtPrivilegeObjectAuditAlarm224. NtPropagationComplete225. NtPropagationFailed226. NtProtectVirtualMemory227. NtPullTransaction228. NtPulseEvent229. NtQueryAttributesFile230. NtQueryBootEntryOrder231. NtQueryBootOptions

Page 102: Advanced Project in Computer Science: System-Calls Based

232. NtQueryDebugFilterState233. NtQueryDefaultLocale234. NtQueryDefaultUILanguage235. NtQueryDirectoryFile236. NtQueryDirectoryObject237. NtQueryDriverEntryOrder238. NtQueryEaFile239. NtQueryEvent240. NtQueryFullAttributesFile241. NtQueryInformationAtom242. NtQueryInformationEnlistment243. NtQueryInformationFile244. NtQueryInformationJobObject245. NtQueryInformationPort246. NtQueryInformationProcess247. NtQueryInformationResourceManager248. NtQueryInformationThread249. NtQueryInformationToken250. NtQueryInformationTransaction251. NtQueryInformationTransactionManager252. NtQueryInformationWorkerFactory253. NtQueryInstallUILanguage254. NtQueryIntervalProfile255. NtQueryIoCompletion256. NtQueryKey257. NtQueryLicenseValue258. NtQueryMultipleValueKey259. NtQueryMutant260. NtQueryObject261. NtQueryOleDirectoryFile262. NtQueryOpenSubKeys263. NtQueryOpenSubKeysEx264. NtQueryPerformanceCounter265. NtQueryPortInformationProcess266. NtQueryQuotaInformationFile267. NtQuerySection268. NtQuerySecurityAttributesToken269. NtQuerySecurityObject270. NtQuerySemaphore271. NtQuerySymbolicLinkObject272. NtQuerySystemEnvironmentValue273. NtQuerySystemEnvironmentValueEx274. NtQuerySystemInformation275. NtQuerySystemInformationEx276. NtQuerySystemTime277. NtQueryTimer

Page 103: Advanced Project in Computer Science: System-Calls Based

278. NtQueryTimerResolution279. NtQueryValueKey280. NtQueryVirtualMemory281. NtQueryVolumeInformationFile282. NtQueueApcThread283. NtQueueApcThreadEx284. NtRaiseException285. NtRaiseHardError286. NtReadFile287. NtReadFileScatter288. NtReadOnlyEnlistment289. NtReadRequestData290. NtReadVirtualMemory291. NtRecoverEnlistment292. NtRecoverResourceManager293. NtRecoverTransactionManager294. NtRegisterProtocolAddressInformation295. NtRegisterThreadTerminatePort296. NtReleaseCMFViewOwnership297. NtReleaseKeyedEvent298. NtReleaseMutant299. NtReleaseSemaphore300. NtReleaseWorkerFactoryWorker301. NtRemoveIoCompletion302. NtRemoveIoCompletionEx303. NtRemoveProcessDebug304. NtRenameKey305. NtRenameTransactionManager306. NtReplaceKey307. NtReplacePartitionUnit308. NtReplyPort309. NtReplyWaitReceivePort310. NtReplyWaitReceivePortEx311. NtReplyWaitReplyPort312. NtReplyWaitSendChannel313. NtRequestDeviceWakeup314. NtRequestPort315. NtRequestWaitReplyPort316. NtRequestWakeupLatency317. NtResetEvent318. NtResetWriteWatch319. NtRestoreKey320. NtResumeProcess321. NtResumeThread322. NtRollbackComplete323. NtRollbackEnlistment

Page 104: Advanced Project in Computer Science: System-Calls Based

324. NtRollbackSavepointTransaction325. NtRollbackTransaction326. NtRollforwardTransactionManager327. NtSaveKey328. NtSaveKeyEx329. NtSaveMergedKeys330. NtSavepointComplete331. NtSavepointTransaction332. NtSecureConnectPort333. NtSendWaitReplyChannel334. NtSerializeBoot335. NtSetBootEntryOrder336. NtSetBootOptions337. NtSetContextChannel338. NtSetContextThread339. NtSetDebugFilterState340. NtSetDefaultHardErrorPort341. NtSetDefaultLocale342. NtSetDefaultUILanguage343. NtSetDriverEntryOrder344. NtSetEaFile345. NtSetEvent346. NtSetEventBoostPriority347. NtSetHighEventPair348. NtSetHighWaitLowEventPair349. NtSetHighWaitLowThread350. NtSetInformationDebugObject351. NtSetInformationEnlistment352. NtSetInformationFile353. NtSetInformationJobObject354. NtSetInformationKey355. NtSetInformationObject356. NtSetInformationProcess357. NtSetInformationResourceManager358. NtSetInformationThread359. NtSetInformationToken360. NtSetInformationTransaction361. NtSetInformationTransactionManager362. NtSetInformationWorkerFactory363. NtSetIntervalProfile364. NtSetIoCompletion365. NtSetIoCompletionEx366. NtSetLdtEntries367. NtSetLowEventPair368. NtSetLowWaitHighEventPair369. NtSetLowWaitHighThread

Page 105: Advanced Project in Computer Science: System-Calls Based

370. NtSetQuotaInformationFile371. NtSetSecurityObject372. NtSetSystemEnvironmentValue373. NtSetSystemEnvironmentValueEx374. NtSetSystemInformation375. NtSetSystemPowerState376. NtSetSystemTime377. NtSetThreadExecutionState378. NtSetTimer379. NtSetTimerEx380. NtSetTimerResolution381. NtSetUuidSeed382. NtSetValueKey383. NtSetVolumeInformationFile384. NtShutdownSystem385. NtShutdownWorkerFactory386. NtSignalAndWaitForSingleObject387. NtSinglePhaseReject388. NtStartProfile389. NtStartTm390. NtStopProfile391. NtSuspendProcess392. NtSuspendThread393. NtSystemDebugControl394. NtTerminateJobObject395. NtTerminateProcess396. NtTerminateThread397. NtTestAlert398. NtThawRegistry399. NtThawTransactions400. NtTraceControl401. NtTraceEvent402. NtTranslateFilePath403. NtUmsThreadYield404. NtUnloadDriver405. NtUnloadKey406. NtUnloadKey2407. NtUnloadKeyEx408. NtUnlockFile409. NtUnlockVirtualMemory410. NtUnmapViewOfSection411. NtVdmControl412. NtWaitForDebugEvent413. NtWaitForKeyedEvent414. NtWaitForMultipleObjects415. NtWaitForMultipleObjects32

Page 106: Advanced Project in Computer Science: System-Calls Based

416. NtWaitForSingleObject417. NtWaitForWorkViaWorkerFactory418. NtWaitHighEventPair419. NtWaitLowEventPair420. NtWorkerFactoryWorkerReady421. NtWow64CallFunction64422. NtWow64CsrAllocateCaptureBuffer423. NtWow64CsrAllocateMessagePointer424. NtWow64CsrCaptureMessageBuffer425. NtWow64CsrCaptureMessageString426. NtWow64CsrClientCallServer427. NtWow64CsrClientConnectToServer428. NtWow64CsrFreeCaptureBuffer429. NtWow64CsrGetProcessId430. NtWow64CsrIdentifyAlertableThread431. NtWow64CsrVerifyRegion432. NtWow64DebuggerCall433. NtWow64GetCurrentProcessorNumberEx434. NtWow64GetNativeSystemInformation435. NtWow64InterlockedPopEntrySList436. NtWow64QueryInformationProcess64437. NtWow64QueryVirtualMemory64438. NtWow64ReadVirtualMemory64439. NtWow64WriteVirtualMemory64440. NtWriteFile441. NtWriteFileGather442. NtWriteRequestData443. NtWriteVirtualMemory444. NtYieldExecution

D Appendix D: The IDS Configuration File Format

Below is the specification of the ini configuration file used by the IDS. The termhost relates to the inspecting machine, which should not be damaged in any wayby the code inspection.

[host paths]trace output folder = The path in the host to the folder where the system

call recorder output file would be generatedsandbox path = The path in the host to the sandbox file to load by the

sandbox instance. For the VM implementation currently used, It is the path tothe VMX file of the machine to load.

tracer executable folder = The pathtracer additional files folder = C:\Visual Studio 2012\Projects\NtSysCallRecordertracer aux files folder = C:\Visual Studio 2012\Projects\NtSysCallRecorder\Microsoft.VC110.CRT[vm paths]

Page 107: Advanced Project in Computer Science: System-Calls Based

trace output folder = c:\temptracer folder = c:\tempshell path = C:\windows\system32\cmd.exe[vm settings]clean snapshot name = Snapshot after updatevm user name = Administratorvm password = 12345678[tracer settings]executable name = NtSysCallRecorder.exeadditional files = dbgCopy.dll,NtSysCallRecorder.cfgaux files = msvcp110.dll,msvcr110.dll,vccorlib110.dll

E Appendix E: The Windows-specific System CallsRecorder Output Example

An example the output of our system calls recorder for the application calc.exeis shown below. Only the first 8 system calls are shown:

Process 1400 starting at 01012475C:\WINDOWS\system32\calc.exeLoaded DLL at 7C900000 ntdll.dllNtOpenKey( KeyHandle=0x7fc74, DesiredAccess=GENERIC READ, Ob-

jectAttributes=”\Registry\Machine\Software\Microsoft\Windows NT\CurrentVersion\ImageFile Execution Options\calc.exe” ) ⇒ 0xc0000034 [2 ’The system cannot findthe file specified.’]

NtOpenKey( KeyHandle=0x7fc44 [0x7fc], DesiredAccess=GENERIC READ,ObjectAttributes=”\Registry\Machine\System\CurrentControlSet\Control\SessionManager” ) ⇒ 0

NtQueryValueKey( KeyHandle=0x7fc, ValueName=”CWDIllegalInDLLSearch”,KeyValueInformationClass=2 [KeyValuePartialInformation], KeyValueInforma-tion=0x7f7f0, Length=0x400, ResultLength=0x7fbf8 ) ⇒ 0xc0000034 [2 ’Thesystem cannot find the file specified.’]

NtClose( Handle=0x7fc ) ⇒ 0NtOpenKeyedEvent( KeyedEventHandle=0x7fb14 [0x7fc], DesiredAccess=MAXIMUM ALLOWED,

ObjectAttributes=”\KernelObjects\CritSecOutOfMemoryEvent” ) ⇒ 0NtQuerySystemInformation( SystemInformationClass=0 [SystemBasicInfor-

mation], SystemInformation=0x7fa50, Length=0x2c, ReturnLength=null ) ⇒0

NtQuerySystemInformation( SystemInformationClass=0 [SystemBasicInfor-mation], SystemInformation=0x7f928, Length=0x2c, ReturnLength=null ) ⇒0

NtAllocateVirtualMemory( ProcessHandle=-1, lpAddress=0x7f9c0 [0x000a0000],ZeroBits=0, pSize=0x7f9ec [0x00100000], flAllocationType=0x2000, flProtect=4) ⇒ 0

# more system calls appear here

Page 108: Advanced Project in Computer Science: System-Calls Based

F Appendix F: The Platform-Independent (Normalized)System Calls Recorder Output Example

An example the output of our system calls recorder from the previous appendixafter it was converted by our parser is shown below. Only the first 8 system callsare shown:

<?xml version=”1.0”?><process trace pid=”1400” path=”C:\WINDOWS\system32\calc.exe”><system calls>

<system call return value=”0xc0000034 [2 ’The system cannot find thefile specified.’]” name=”NtOpenKey”>

<arg name=”KeyHandle” value=”0x7fc74”/><arg name=”DesiredAccess” value=”GENERIC READ”/>

<arg name=”ObjectAttributes” value=””\Registry\Machine\Software\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options\calc.exe””/>

</system call><system call return value=”0” name=”NtOpenKey”>

<arg name=”KeyHandle” value=”0x7fc44 [0x7fc]”/><arg name=”DesiredAccess” value=”GENERIC READ”/><arg name=”ObjectAttributes” value=

””\Registry\Machine\System\CurrentControlSet\Control\Session Manager””/></system call><system call return value=”0xc0000034 [2 ’The system cannot find the

file specified.’]” name=”NtQueryValueKey”><arg name=”KeyHandle” value=”0x7fc”/><arg name=”ValueName” value=””CWDIllegalInDLLSearch””/>

<arg name=”KeyValueInformationClass” value=”2 [KeyValuePartialInformation]”/><arg name=”KeyValueInformation” value=”0x7f7f0”/><arg name=”Length” value=”0x400”/><arg name=”ResultLength” value=”0x7fbf8”/>

</system call><system call return value=”0” name=”NtClose”>

<arg name=”Handle” value=”0x7fc”/></system call><system call return value=”0” name=”NtOpenKeyedEvent”>

<arg name=”KeyedEventHandle” value=”0x7fb14 [0x7fc]”/><arg name=”DesiredAccess” value=”MAXIMUM ALLOWED”/>

<arg name=”ObjectAttributes” value=””\KernelObjects\CritSecOutOfMemoryEvent””/></system call><system call return value=”0” name=”NtQuerySystemInformation”><arg name=”SystemInformationClass” value=”0 [SystemBasicInformation]”/><arg name=”SystemInformation” value=”0x7fa50”/><arg name=”Length” value=”0x2c”/><arg name=”ReturnLength” value=”null”/>

</system call>

Page 109: Advanced Project in Computer Science: System-Calls Based

<system call return value=”0” name=”NtQuerySystemInformation”><arg name=”SystemInformationClass” value=”0 [SystemBasicInformation]”/><arg name=”SystemInformation” value=”0x7f928”/><arg name=”Length” value=”0x2c”/><arg name=”ReturnLength” value=”null”/>

</system call><system call return value=”0” name=”NtAllocateVirtualMemory”>

<arg name=”ProcessHandle” value=”-1”/><arg name=”lpAddress” value=”0x7f9c0 [0x000a0000]”/><arg name=”ZeroBits” value=”0”/><arg name=”pSize” value=”0x7f9ec [0x00100000]”/><arg name=”flAllocationType” value=”0x2000”/><arg name=”flProtect” value=”4”/>

</system call># more system calls appear here</system calls></process trace>