<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Exotic Compilers as a Malware Evasion Technique (Discussion Paper)</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Michele Ianni</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Elio Masciari</string-name>
          <email>elio.masciari@icar.cnr.it</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Domenico Sacca</string-name>
          <email>saccag@dimes.unical.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>DIMES, University of Calabria</institution>
          ,
          <addr-line>Rende</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>ICAR, CNR</institution>
          ,
          <addr-line>Rende</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The increasing complexity of new malware and the constant re nement of detection mechanisms are driving malware writers to rethink the malware development process. In this respect, compilers play a key role and can be used to implement evasion techniques able to defeat even the new generation of detection algorithms. In this paper we provide an overview of the endless battle between malware writers and detectors and we discuss some considerations on the bene ts of using high level languages and even exotic compilers (e.g. single instruction compilers) in the process of writing malicious code.</p>
      </abstract>
      <kwd-group>
        <kwd>Metamorphic malware Obfuscation Single instruction compilers</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Malware detection</p>
    </sec>
    <sec id="sec-2">
      <title>Introduction</title>
      <p>History of malware, short for malicious software, is characterized by the endless
battle between malware writers and detectors. Since detection strategies are
becoming more and more complex, malware writers have to invent new techniques
in order to evade detection. Today we can nd many viruses that can be
considered as pieces of art because they employ several clever ideas in order to keep
themselves as stealth as possible. The increasing complexity of new malware is
posing new intriguing challenges both from the malware writer perspective and
detection mechanisms. In order to implement complex malware, able to spread
itself on various operating systems and architectures, it could be useful to move
from pure assembly implementations, to malware written using high level
languages. In this respect the use of compilers is a key concept to take into account.
Compilers, in fact, can be used to implement metamorphic techniques and
obfuscation and can build executables able to defeat new detection mechanisms based
on the extraction of semantic patterns from the binaries. The paper is organized
as follows: in section 2 we describe several techniques used by malware writers
in order to avoid detection. In section 3 we show some of the strategies used
by antivirus software to detect malicious code and we focus our attention on
CFG based detection. In section 4 we discuss the bene ts related to the use of
compilers in the process of writing malicious code and we show the advantages
Copyright c 2019 for the individual papers by the papers authors. Copying
permitted for private and academic purposes. This volume is published and copyrighted by
its editors. SEBD 2019, June 16-19, 2019, Castiglione della Pescaia, Italy.
of using single instruction compilers as an evasion technique. Finally in section 5
we draw our conclusions.
2</p>
    </sec>
    <sec id="sec-3">
      <title>Evasion techniques</title>
      <p>
        The most widespread technique used by commercial anti-malware systems in
order to detect viruses is based on malware signatures [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. They are invariant
patterns, usually taken from the program's code or raw le content, used to
uniquely identify the given malware. To evade signature based scanners many
today viruses (called metamorphic) are able to transform themselves during
the propagation phase, without losing their capabilities [
        <xref ref-type="bibr" rid="ref47">47</xref>
        ]. To achieve this
goal several metamorphic transformation are used, including code permutation,
garbage code insertion, code shrinking and expansion, register renaming,
encryption [
        <xref ref-type="bibr" rid="ref15 ref2 ref3">2, 3, 15</xref>
        ]. The result of these transformations is a brand new virus that,
while keeping the functionality of its predecessor, present a di erent structure
and then a di erent signature, thus evading detection [
        <xref ref-type="bibr" rid="ref47">47</xref>
        ]. As explained in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
we de ne M P to be the set of malicious programs, where P is the set of
all programs and S to be the set of signatures. A detector is then a function
D : P M ! f0; 1g. A program p is detected if there is a signature m 2 S such
that D(p; m) = 1. In the case of malwares D(p; m) = 1 () m is a pattern
derived from p.
      </p>
      <p>
        Using signature for malware detection is e cient only if it is applied to known
malware. This technique, compared to dynamic analysis techniques, has less
scanning time, lower false-positive ratio and doesn't su er of the risks of system
infection due to the execution of the malware. The use of code obfuscation
techniques allows to easily generate variants of known malware resulting in new
malware that cannot be detected by signature based scanners and are harder to
comprehend for an human analyst. As stated in [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] more than 80% of malware
is packed, in accordance to [
        <xref ref-type="bibr" rid="ref41">41</xref>
        ] almost 50% of new malware in 2006 were existing
malware obfuscated with packing techniques. The same trend is linked to the use
of other obfuscation approaches. There exist many examples of code obfuscation
designed to avoid AV scanners detection [
        <xref ref-type="bibr" rid="ref17 ref23 ref32 ref34">17, 23, 32, 34</xref>
        ] and all of them are able
to easily evade signature based malware detectors.
      </p>
      <p>
        As described in [
        <xref ref-type="bibr" rid="ref47">47</xref>
        ] except for packing, the rst obfuscation technique
historically used is encryption [
        <xref ref-type="bibr" rid="ref36 ref37 ref45">36, 37, 45</xref>
        ]. The executable body is crypted and the
malware adds to it a decryptor that provides decryption of the body at program
runtime. Since at every infection the cryptographic keys used are di erent the
crypted virus body will be always di erent. One of the rst viruses that
developed this strategy is Cascade, followed by Win95/Mad and Win95 Zombie [
        <xref ref-type="bibr" rid="ref42">42</xref>
        ].
Some of this kind of viruses use also multiple layers of encryption (Win32/Coke).
The major limitation of this approach is that in most cases the decryption is in
clear text and, since it is always the same, it can be used in order to generate
a signature. To overcome this limitation malware writers created new malware
able to change also decryptor code. This led to the birth of polymorphic
malware [
        <xref ref-type="bibr" rid="ref34">34</xref>
        ], that, using many di erent techniques [
        <xref ref-type="bibr" rid="ref11 ref26 ref45">11, 26, 45</xref>
        ] are able to generate
always di erent decryptors, without invariant patterns that could be used as
signatures. The rst viruses that used a real 32-bit polymorphic engine were
Win95/Marburg and Win95/HPS. They have been developed and spreaded
online many polymorphic engines, among these we can cite \The Mutation Engine"
(MtE ) [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ] that is able to easily convert non obfuscated code into polymorphic
malware. Altough polymorphic malware are e ective against signature based
detection, they can be detected using more re ned techniques. After the decryption
phase, in fact, the body of the virus will be always the same. Using
sandboxing techniques [
        <xref ref-type="bibr" rid="ref36 ref37">36, 37</xref>
        ] the detectors are able to emulate malware in a controlled
environment, allowing the decryptor to decrypt malware body in memory. At
this point it is still possible to use signature based techniques on the decrypted
body. To prevent malware emulation several armoring techniques have been
proposed [
        <xref ref-type="bibr" rid="ref36">36</xref>
        ] but the improvements in sandboxing mechanisms brought many of
them to be ine ective. To overcome all these limitations malware writers brought
obfuscation to a new level: metamorphic malware [
        <xref ref-type="bibr" rid="ref17 ref23">17, 23</xref>
        ] [
        <xref ref-type="bibr" rid="ref11 ref26 ref37 ref45">11, 26, 37, 45</xref>
        ]. They
are malware able to transform their own body during infection phase. At each
iteration metamorphic malware is rewritten so that each succeeding version of
the code is di erent from the preceding one.
      </p>
      <p>
        There are numerous techniques used by this kind of malware (and often by
polymorphic malware too):
{ Register swapping : is a technique used, for example, by Vecna's Win95/Regswap
virus [
        <xref ref-type="bibr" rid="ref45">45</xref>
        ]. It consists in changing registers used in various instructions during
the evolution from generation to generation. Wildcard searching makes this
technique ine ective.
{ Instruction substitution : it is based on substituting single, or groups, of
instructions with other instructions (or groups of them). The new instructions
will be equivalent to the previous ones in functionalities but syntactically
di erent [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ].
{ Garbage instructions insertion : is a technique based on the insertion of
garbage instructions, that are useless for the execution of the program. Their
only goal is to vary malware body [
        <xref ref-type="bibr" rid="ref1 ref26 ref45">1, 26, 45</xref>
        ]. They can be single instructions
or sequences that perform useless operations leaving unaltered the state of
the program or even instructions located in areas of the program that will
never be executed. In this case we are talking about dead-code.
{ Transposition: this name is used to de ne many instruction reordering
techniques that leave unaltered the ow of the program [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. One of these
technique consist in randomly reordering some instructions then using
unconditional jumps to reconstruct the original ow. In a more elegant way it is
possible to isolate independent groups of instructions then modify their
order. In this case, since the sequences are independent, there is no need to
make use of unconditional jumps. Finding independent groups of instructions
is not an easy task to perform, so, often developers use easier techniques,
which can be considered a variant of the rst one. It is based on the
reordering of the various subroutines that are present inside the malware [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
One of the malware that used this approach is Win32/Ghost. If we have n
subroutines we are able to generate up to n! di erent variants.
{ Code integration: is the most sophisticated technique used to obfuscate code.
      </p>
      <p>
        It has been introduced by the virus writer Zombie in Win95/Zmist (Zombie
Mistfall). It consists in decompiling the program to infect in distinct parts
and then inserting malware code between them. At the end the original
program and the malware are reassembled in a single executable.
Although several theoretical studies [
        <xref ref-type="bibr" rid="ref10 ref14">10, 14</xref>
        ] have proved that an algorithm able
to detect all types of malware can not exist, a lot of e ort has been put to
improve detection mechanisms. Several methods have been proposed, varying
from support vector machine (SVM) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], to decision trees [
        <xref ref-type="bibr" rid="ref25 ref33">25,33</xref>
        ], to Naive Bayes
Method [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ]. There are two di erent approaches in malware detection: static and
dynamic analysis. The rst analyzes a binary without executing it. Since this
technique is safer, faster and easier to implement than dynamic analysis, it is
the most widespread approach, even if it is more limited than the latter. Some
examples of operations that are performed by static analysis are nding patterns
on executables and code ow analysis. In addition to be fast and safe, static
analysis has the advantage of reaching complete application code coverage, thus
reducing the number of false positives in malware detection. The main problem
in using static analysis is that it is very di cult to detect unknown malware.
Dynamic analysis, instead, runs malware in a sandbox simulating the behaviour
of a real environment, monitoring all system calls. It is clear that the speed of
performing this kind of analysis is much slower than static analysis techniques. In
addition to that, several techniques have been proposed from malware writers in
order to check if the infected executable is running inside a virtual machine, and,
in that case, changing its own behaviour in a non o ensive one. To overcome
the limitation of static analysis they have been introduced many techniques
based on the concept of code normalization. These techniques try to reduce
obfuscated code to a base form that is the same for all obfuscated variants of the
same executable. Many di erent approaches to code normalization have been
proposed. Among them we can cite Christodorescu et al. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], Walenstein et
al. [
        <xref ref-type="bibr" rid="ref44">44</xref>
        ] and Lakhotia et al. [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ]. In the latter the base form is called \zero form"
and the process to reduce an executable to that form is called \zeroing". As
herm1t states in [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] if this kind of approach was perfect a tool that could perform
zeroing reducing all possible variants of a virus into a single \normalized" form
(not necessarily optimal), could then use this strategy with every algorithm thus
proving or refuting their identity. That's known to be indecidable. The e ort of
the creators of detectors is then focused on capturing semantic pattern inside
an executable rather than invariant synctactic features. These techniques vary
from API call analysis [
        <xref ref-type="bibr" rid="ref35">35</xref>
        ] to Control Flow Graph analysis.
      </p>
      <p>
        As explained in [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ] a Control Flow Graph (CFG ) is a graph in which the
nodes are basic blocks of execution and the edges are possible control ow
transfers between them. They are used both for malware detection and
vulnerability discovery. CFG recovery is a widely discussed topic in literature, we can
cite [
        <xref ref-type="bibr" rid="ref13 ref24 ref27 ref39 ref43 ref46">13, 24, 27, 39, 43, 46</xref>
        ].
      </p>
      <p>
        Many CFG recovery algorithms deal with the problem of indirect jumps.
An indirect jump occurs when the control ow is transferred to a target
represented by a value in a register or to a memory location. This makes ow analysis
much harder because the destination of the jump is not easily resolvable. This
is because it could depend from computations speci ed in code, from the
application context or even from function pointers used in object oriented languages
to implement object polymorphism [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ].
      </p>
      <p>
        Control Flow Graph based malware detection As previously stated, due to the
di culty on isolating invariant synctactic features of a self-mutating malware,
the e ort of the creators of detectors is focused on capturing semantic patterns.
CFG are widely used to nd similiarities among executables [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] and, more in
detail, among malwares [4{6,8,9,19,22,30]. The techniques proposed in literature
are based on generating the CFG of a program P to analyze. The generated CFG
is the compared to a set of CFGs of known viruses in order to nd isomorphic
components. Usually ( [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]) before extracting the CFG from a program P a set
of normalization operations [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] are performed on the binary. This step aims to
reduce the e ects of mutation techniques. The normalized binary is then used to
extract the CFG which is then compared to CFG extracted by normalized known
malware. If the CFG of the normalized program contain a subgraph isomorphic
to the CFG of a malware, then the executable is marked as malicious.
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>Using compilers to evade detection</title>
      <p>
        The advances in malware detection and the plethora of di erent devices and
operating systems in use nowadays, pose new intriguing challenges to malware
writers. The use of assembly language is becoming more and more painful,
because of the di culties involved to write portable and easy-to-support code. In
the forward-looking article \Recompiling the metamorphism" [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], the author,
herm1t, suggests to make use of high level languages in order to overcome the
di culties involved in developing malware in pure assembly. He outlines how
using a high level language gives to the developer the opportunity to easily extract
additional information from the code, rather than builtin support for features
like hashes, iterators or objects. The idea of "recompiling the metamorphism"
is without any doubt interesting and introduces many advantages to the virus
writer, however, not all the bene ts of using compilers have been considered in
detail. In order to evade new anti-malware techniques based on the extraction
of semantic patterns from executables, compilers could play an important role.
They, in fact, are able to generate executables characterized by very di erent
structures and could be used in order to defeat detection mechanisms. In this
respect we take into accounts the bene ts introduced by using exotic compilers,
like the M/o/Vfuscator2 3 in order to obtain di erent CFGs, thus fooling the
CFG based detection.
      </p>
      <p>
        Single instruction compilers as an evasion technique In [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], Dolan demonstrates
the Turing-completeness of the x86 instruction mov. After the publication of the
article many people started to implement, most of the time for fun, single
instruction compilers, capable to compile arbitrary programs into lists of only mov
instructions. Several di erent instruction turned out to be Turing-complete, so
many di erent single instruction compilers arose 4. Even if at rst sight it may
seem just like a funny fact, the use of single instruction compilers has very
interesting consequences. Since in single instruction compiled programs comparisons,
jumps, function calls are all implemented with a single instruction, the resulting
CFG is a single (usually long) basic block. This result is very interesting, because
having a CFG composed by a single basic block make ine ective all detection
mechanisms based on CFG isomorphism detection. Using a single instruction
3 https://github.com/xoreaxeaxeax/movfuscator
4 https://github.com/xoreaxeaxeax/movfuscator/tree/master/post
compiler, however, has its drawbacks. First of all a program compiled with a
single instruction compiler could be considered suspicious, thus marked as
malicious. In addition to that, the size of a program compiled with a single instruction
compiler, is, most of the time, much bigger than the size of the same program
compiled using the entire set of instructions. This introduces some problems to
virus writers that in many cases have a limited space in the binary they are going
to infect, so they should keep the malicious code as small as possible. Sometimes
even the performances of the malicious code is important and programs
compiled with a single instruction compiler usually are slower than traditional ones
in terms of execution speed. These problems lead to rethink the way single
instruction compilers are used for evasion purposes. A simple but e ective solution
could be splitting the source code at compilation time. In our implementation we
mark with source code annotation the functions that we want to compile with
a single instruction compiler, then at compilation time, making use of the tools
provided by LLVM [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ] we are able to build an executable that uses the full set
of instructions for the code that cannot be used to determine its malicious
behaviour and a single instruction for the malware routines. In this way we are able
to build a much smaller executable that is still able to fool CFG based malware
detection. It is important to underline that the single block of single instruction
compiled code can be furtherly modi ed using the metamorphic techniques
described in section 2. This single block can be also manipulated in order to obtain
di erent CFGs, this can be easily done by inserting jumps or comparisons, thus
creating branches in the graph. To further variate the result of the obfuscation,
several di erent single instruction compilers can be adopted, resulting in a great
variety of CFGs, making very hard for the detectors to extract signatures, both
syntactically, due to metamorphic transformation, and semantically, thanks to
the always changing CFG.
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusions</title>
      <p>In this paper we presented and overview of the techniques used by malware in
order to avoid detection as well as some detection mechanisms. We showed the
bene ts related to the use of compilers on the process of malware creation and
we proposed the use of single instruction compilers as an evasion mechanisms for
CFG based malware detection. In order to overcome the limitations of this kind
of compilers we proposed several solutions that can greatly increase the ability
of malware to hide itself from detectors.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Balakrishnan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schulze</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Code obfuscation literature survey</article-title>
          .
          <source>CS701 Construction of compilers 19</source>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Barak</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Goldreich</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Impagliazzo</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rudich</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sahai</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vadhan</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>On the (im) possibility of obfuscating programs</article-title>
          .
          <source>In: Annual International Cryptology Conference</source>
          . pp.
          <volume>1</volume>
          {
          <fpage>18</fpage>
          . Springer (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Beaucamps</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Filiol</surname>
          </string-name>
          , E.:
          <article-title>On the possibility of practically obfuscating programs towards a uni ed perspective of code protection</article-title>
          .
          <source>Journal in Computer Virology</source>
          <volume>3</volume>
          (
          <issue>1</issue>
          ),
          <volume>3</volume>
          {
          <fpage>21</fpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Bonfante</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kaczmarek</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Marion</surname>
          </string-name>
          , J.Y.:
          <article-title>Control ow graphs as malware signatures</article-title>
          .
          <source>In: International workshop on the Theory of Computer Viruses</source>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Briones</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gomez</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Graphs, entropy and grid computing: Automatic comparison of malware</article-title>
          . Virus Bulletin pp.
          <volume>1</volume>
          {
          <issue>12</issue>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Bruschi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Martignoni</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Monga</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Detecting self-mutating malware using control- ow graph matching</article-title>
          .
          <source>In: International Conference on Detection of Intrusions and Malware, and Vulnerability Assessment</source>
          . pp.
          <volume>129</volume>
          {
          <fpage>143</fpage>
          . Springer (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Burges</surname>
            ,
            <given-names>C.J.:</given-names>
          </string-name>
          <article-title>A tutorial on support vector machines for pattern recognition. Data mining and knowledge discovery 2(2</article-title>
          ),
          <volume>121</volume>
          {
          <fpage>167</fpage>
          (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Cesare</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xiang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Classi cation of malware using structured control ow</article-title>
          .
          <source>In: Proceedings of the Eighth Australasian Symposium on Parallel and Distributed Computing-Volume</source>
          <volume>107</volume>
          . pp.
          <volume>61</volume>
          {
          <fpage>70</fpage>
          . Australian Computer Society, Inc. (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Cesare</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Xiang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>A fast owgraph based classi cation system for packed and polymorphic malware on the endhost</article-title>
          .
          <source>In: 2010 24th IEEE International Conference on Advanced Information Networking and Applications</source>
          . pp.
          <volume>721</volume>
          {
          <fpage>728</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Chess</surname>
            ,
            <given-names>D.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>White</surname>
            ,
            <given-names>S.R.:</given-names>
          </string-name>
          <article-title>An undetectable computer virus</article-title>
          .
          <source>In: Proceedings of Virus Bulletin Conference</source>
          . vol.
          <volume>5</volume>
          , pp.
          <volume>1</volume>
          {
          <issue>4</issue>
          (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Christodorescu</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jha</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Static analysis of executables to detect malicious patterns</article-title>
          .
          <source>Tech. rep.</source>
          ,
          <source>WISCONSIN UNIV-MADISON DEPT OF COMPUTER SCIENCES</source>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Christodorescu</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kinder</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jha</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Katzenbeisser</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Veith</surname>
          </string-name>
          , H.:
          <article-title>Malware normalization</article-title>
          .
          <source>Tech. rep.</source>
          , University of Wisconsin (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Cifuentes</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van Emmerik</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Recovery of jump table case statements from binary code</article-title>
          .
          <source>Science of Computer Programming</source>
          <volume>40</volume>
          (
          <issue>2-3</issue>
          ),
          <volume>171</volume>
          {
          <fpage>188</fpage>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Cohen</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Computer viruses</article-title>
          .
          <source>Computers &amp; security 6(1)</source>
          ,
          <volume>22</volume>
          {
          <fpage>35</fpage>
          (
          <year>1987</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Collberg</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thomborson</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Low</surname>
            ,
            <given-names>D.:</given-names>
          </string-name>
          <article-title>A taxonomy of obfuscating transformations</article-title>
          .
          <source>Tech. rep.</source>
          , Department of Computer Science, The University of Auckland, New Zealand (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Dolan</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <article-title>: mov is turing-complete</article-title>
          .
          <source>Tech. rep., Tech. rep</source>
          .
          <year>2013</year>
          <article-title>(cit</article-title>
          . on p.
          <source>153)</source>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Driller</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>Metamorphism in practice</article-title>
          .
          <source>29A Magazine</source>
          <volume>1</volume>
          (
          <issue>6</issue>
          ) (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Dullien</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rolles</surname>
          </string-name>
          , R.:
          <article-title>Graph-based comparison of executable objects (english version)</article-title>
          .
          <source>SSTIC 5</source>
          ,
          <issue>1</issue>
          {
          <issue>3</issue>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Eskandari</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hashemi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Metamorphic malware detection using control ow graph mining</article-title>
          .
          <source>Int. J. Comput. Sci. Network Secur</source>
          <volume>11</volume>
          (
          <issue>12</issue>
          ),
          <volume>1</volume>
          {
          <issue>6</issue>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. herm1t:
          <article-title>Recompiling the metamorphism</article-title>
          .
          <source>https://83.133.184</source>
          .251/virensimulation.org/lib/vhe11.html (
          <year>2002</year>
          ), accessed:
          <fpage>2018</fpage>
          -11-13
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Idika</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mathur</surname>
            ,
            <given-names>A.P.:</given-names>
          </string-name>
          <article-title>A survey of malware detection techniques</article-title>
          .
          <source>Purdue University</source>
          <volume>48</volume>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Jeong</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          :
          <article-title>Code graph for malware detection</article-title>
          .
          <source>In: 2008 International Conference on Information Networking</source>
          . pp.
          <volume>1</volume>
          {
          <issue>5</issue>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Julus</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <source>Metamorphism. 29A Magazine</source>
          <volume>1</volume>
          (
          <issue>5</issue>
          ) (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Kinder</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Veith</surname>
          </string-name>
          , H.:
          <article-title>Jakstab: A static analysis platform for binaries</article-title>
          . In: International Conference on Computer Aided Veri cation. pp.
          <volume>423</volume>
          {
          <fpage>427</fpage>
          . Springer (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Kolter</surname>
            ,
            <given-names>J.Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maloof</surname>
            ,
            <given-names>M.A.</given-names>
          </string-name>
          :
          <article-title>Learning to detect malicious executables in the wild</article-title>
          .
          <source>In: Proceedings of the tenth ACM SIGKDD international conference on Knowledge discovery and data mining</source>
          . pp.
          <volume>470</volume>
          {
          <fpage>478</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Konstantinou</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wolthusen</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Metamorphic virus: Analysis and detection</article-title>
          . Royal Holloway University of London 15,
          <issue>15</issue>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>Kruegel</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Robertson</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Valeur</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vigna</surname>
          </string-name>
          , G.:
          <article-title>Static disassembly of obfuscated binaries</article-title>
          .
          <source>In: USENIX security Symposium</source>
          . vol.
          <volume>13</volume>
          , pp.
          <volume>18</volume>
          {
          <issue>18</issue>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Lakhotia</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mohammed</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Imposing order on program statements to assist anti-virus scanners</article-title>
          .
          <source>In: Reverse Engineering</source>
          ,
          <year>2004</year>
          . Proceedings. 11th Working Conference on. pp.
          <volume>161</volume>
          {
          <fpage>170</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Lattner</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Adve</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Llvm: A compilation framework for lifelong program analysis &amp; transformation</article-title>
          . In:
          <article-title>Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization</article-title>
          . p.
          <fpage>75</fpage>
          . IEEE Computer Society (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jeong</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          :
          <article-title>Detecting metamorphic malwares using code graphs</article-title>
          .
          <source>In: Proceedings of the 2010 ACM symposium on applied computing</source>
          . pp.
          <year>1970</year>
          {
          <year>1977</year>
          . ACM (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Lyda</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hamrock</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>Using entropy analysis to nd encrypted and packed malware</article-title>
          .
          <source>IEEE Security &amp; Privacy</source>
          <volume>5</volume>
          (
          <issue>2</issue>
          ),
          <volume>40</volume>
          {
          <fpage>45</fpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          32.
          <string-name>
            <surname>Mohanty</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Anti-virus evasion techniques and countermeasures</article-title>
          . Published online at http://www. hackingspirits. com/eth-hac/papers/whitepapers. asp.
          <volume>18</volume>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          33.
          <string-name>
            <surname>Moser</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kruegel</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kirda</surname>
          </string-name>
          , E.:
          <article-title>Exploring multiple execution paths for malware analysis</article-title>
          .
          <source>In: Security and Privacy</source>
          ,
          <year>2007</year>
          . SP'07. IEEE Symposium on. pp.
          <volume>231</volume>
          {
          <fpage>245</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          34.
          <source>Rajaat: Polimorphism. 29A Magazine</source>
          <volume>1</volume>
          (
          <issue>3</issue>
          ) (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          35.
          <string-name>
            <surname>Sathyanarayan</surname>
            ,
            <given-names>V.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kohli</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bruhadeshwar</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Signature generation and detection of malware families</article-title>
          .
          <source>In: Australasian Conference on Information Security and Privacy</source>
          . pp.
          <volume>336</volume>
          {
          <fpage>349</fpage>
          . Springer (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          36.
          <article-title>Schi man, M.: A brief history of malware obfuscation: Part 1 of 2</article-title>
          . Published online at https://blogs.cisco.
          <article-title>com/security/a brief history of malware obfuscation part 1 of 2</article-title>
          , accessed:
          <fpage>2018</fpage>
          - 11-13
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          37.
          <article-title>Schi man, M.: A brief history of malware obfuscation: Part 2 of 2</article-title>
          . Published online at https://blogs.cisco.
          <article-title>com/security/a brief history of malware obfuscation part 2 of 2</article-title>
          , accessed:
          <fpage>2018</fpage>
          - 11-13
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          38.
          <string-name>
            <surname>Schultz</surname>
            ,
            <given-names>M.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Eskin</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zadok</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stolfo</surname>
            ,
            <given-names>S.J.</given-names>
          </string-name>
          :
          <article-title>Data mining methods for detection of new malicious executables</article-title>
          .
          <source>In: Security and Privacy</source>
          ,
          <year>2001</year>
          .
          <string-name>
            <surname>S&amp;P</surname>
          </string-name>
          <year>2001</year>
          . Proceedings. 2001
          <string-name>
            <given-names>IEEE</given-names>
            <surname>Symposium</surname>
          </string-name>
          <article-title>on</article-title>
          . pp.
          <volume>38</volume>
          {
          <fpage>49</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          39.
          <string-name>
            <surname>Schwarz</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Debray</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Andrews</surname>
          </string-name>
          , G.:
          <article-title>Disassembly of executable code revisited</article-title>
          . In: Reverse engineering,
          <year>2002</year>
          . Proceedings. Ninth working conference on. pp.
          <volume>45</volume>
          {
          <fpage>54</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          40.
          <string-name>
            <surname>Shoshitaishvili</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wang</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salls</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stephens</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Polino</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dutcher</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grosen</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Feng</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hauser</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kruegel</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          , et al.:
          <article-title>Sok:(state of) the art of war: O ensive techniques in binary analysis</article-title>
          .
          <source>In: 2016 IEEE Symposium on Security and Privacy (SP)</source>
          . pp.
          <volume>138</volume>
          {
          <fpage>157</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          41.
          <string-name>
            <surname>Stepan</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Improving proactive detection of packed malware</article-title>
          .
          <source>Virus Bulletin</source>
          <volume>1</volume>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          42.
          <string-name>
            <surname>Szor</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ferrie</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Hunting for metamorphic</article-title>
          .
          <source>In: Virus bulletin conference</source>
          . Prague (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          43.
          <string-name>
            <surname>Troger</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cifuentes</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Analysis of virtual method invocation for binary translation</article-title>
          .
          <source>In: Reverse Engineering</source>
          ,
          <year>2002</year>
          . Proceedings. Ninth Working Conference on. pp.
          <volume>65</volume>
          {
          <fpage>74</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          44.
          <string-name>
            <surname>Walenstein</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mathur</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chouchane</surname>
            ,
            <given-names>M.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lakhotia</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Normalizing metamorphic malware using term rewriting</article-title>
          .
          <source>In: Source Code Analysis and Manipulation</source>
          ,
          <year>2006</year>
          . SCAM'
          <volume>06</volume>
          . Sixth IEEE International Workshop on. pp.
          <volume>75</volume>
          {
          <fpage>84</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          45.
          <string-name>
            <surname>Wong</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stamp</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Hunting for metamorphic engines</article-title>
          .
          <source>Journal in Computer Virology</source>
          <volume>2</volume>
          (
          <issue>3</issue>
          ),
          <volume>211</volume>
          {
          <fpage>229</fpage>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          46.
          <string-name>
            <surname>Xu</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sun</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Su</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          :
          <article-title>Constructing precise control ow graphs from binaries</article-title>
          . University of California, Davis,
          <source>Tech. Rep</source>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          47.
          <string-name>
            <surname>You</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yim</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Malware obfuscation techniques: A brief survey</article-title>
          .
          <source>In: Broadband, Wireless Computing, Communication and Applications (BWCCA)</source>
          , 2010 International Conference on. pp.
          <volume>297</volume>
          {
          <fpage>300</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>