{"id":9475,"date":"2024-10-30T12:22:05","date_gmt":"2024-10-30T12:22:05","guid":{"rendered":"\/cybersecurity-blog\/?p=9475"},"modified":"2025-07-17T08:25:31","modified_gmt":"2025-07-17T08:25:31","slug":"packers-and-crypters-in-malware","status":"publish","type":"post","link":"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/","title":{"rendered":"Packers and Crypters in Malware <br>and How to Remove Them"},"content":{"rendered":"\n<p>In this article, we\u2019ll explore the most common types of protectors\u2014packers and crypters\u2014along with simple ways to detect and remove them. &nbsp;<\/p>\n\n\n\n<p>We\u2019ll also introduce some useful tools to simplify the process and improve your malware analysis skills.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What Are Protectors and What Types Are There?&nbsp;<\/h2>\n\n\n\n<p>Protectors are tools designed to complicate code analysis, making it harder to detect and examine malware. Two of the most common types of protectors are&nbsp;<strong>packers<\/strong>&nbsp;and&nbsp;<strong>crypters<\/strong>.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Packers&nbsp;<\/h3>\n\n\n\n<p>Packers are utilities that package one or more files into a single executable, often adding compression. This process makes static and dynamic detection more difficult, a tactic many types of malware exploit. &nbsp;<\/p>\n\n\n\n<p>Certain malware, like those written in scripting languages (e.g., Python or JavaScript) or relying on non-standard libraries, require packing to function properly by including interpreters and necessary libraries.&nbsp;<\/p>\n\n\n\n<p>Classic examples of packers include installers like NSI and MSI, UPX, MPress, and self-extracting archives (SFX) made with tools like 7zip or WinRAR.&nbsp;<\/p>\n\n\n\n<p>Packers generally don\u2019t protect application data, making it relatively easy to extract them at runtime in a sandbox or remove the packer using static tools.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. Crypters<\/h3>\n\n\n\n<p>Crypters take protection a step further by encrypting the executable\u2019s contents, often adding layers of packing and obfuscation. Designed to obscure code, crypters make analysis more complex and time-consuming. Examples of crypters include NetReactor, Themida, and VmProtect.&nbsp;<\/p>\n\n\n\n<p><strong>Main Protection Methods of Crypters:<\/strong>&nbsp;<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"1\">\n<li>Dynamic unpacking in memory to avoid leaving any disk trace.&nbsp;<\/li>\n<\/ol>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Encryption of files, data, and code<\/strong>, with decryption at runtime.&nbsp;<\/li>\n<\/ol>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li><strong>Code Obfuscation<\/strong>: Changes the structure and sequence of instructions, transforming (meta)data into unreadable or meaningless characters.&nbsp;<\/li>\n<\/ol>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li><strong>Virtualization<\/strong>: Transforms code into pseudo-instructions that are either regenerated or interpreted at runtime.&nbsp;<\/li>\n<\/ol>\n\n\n\n<p>Note that without virtualization, code is usually weakly protected and can often be restored to its original or near-original state.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Identifying Packers: Simple Techniques and Useful Tools&nbsp;<\/h2>\n\n\n\n<p>Detecting packers can be simplified with a few straightforward techniques and specialized tools like\u00a0<strong>DIE (Detect It Easy)<\/strong>. DIE notifies users when a packer is detected, making it a quick solution for initial identification.\u00a0<\/p>\n\n\n\n<p>Let&#8217;s consider the <a href=\"https:\/\/app.any.run\/tasks\/d32288b8-e0d8-40f1-9895-23686b2f7e0c\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">following sample<\/a>. When analyzing it with DIE v3.10, we can observe the presence of the MPRESS packer.\u00a0<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"604\" height=\"131\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image47.png\" alt=\"\" class=\"wp-image-9477\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image47.png 604w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image47-300x65.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image47-370x80.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image47-270x59.png 270w\" sizes=\"(max-width: 604px) 100vw, 604px\" \/><figcaption class=\"wp-element-caption\"><em>The results of DIE analysis, revealing the packer MPRESS<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>Opening the sample in DIE reveals section names that indicate packing.\u00a0<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"501\" height=\"89\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image48.png\" alt=\"\" class=\"wp-image-9478\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image48.png 501w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image48-300x53.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image48-370x66.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image48-270x48.png 270w\" sizes=\"(max-width: 501px) 100vw, 501px\" \/><figcaption class=\"wp-element-caption\"><em>Section demonstration in DIE with names MPRESS1\u00a0and\u00a0MPRESS2<\/em>\u00a0<\/figcaption><\/figure><\/div>\n\n\n<p>Packers like&nbsp;<strong>UPX<\/strong>&nbsp;and&nbsp;<strong>MPRESS<\/strong>&nbsp;often create sections with distinctive names, such as MPRESS1 and MPRESS2, which help analysts identify their usage.&nbsp;<\/p>\n\n\n\n<p>We can also examine&nbsp;<strong>PE (Portable Executable) information<\/strong>&nbsp;in the&nbsp;<strong>Static Discovering<\/strong>&nbsp;window inside ANY.RUN sandbox. This provides further details to help identify these packers and their specific characteristics.&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/app.any.run\/tasks\/e7348d99-1d37-4a7b-9ba4-86cd5dd2cb55\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">Analysis of a sample with UPX sections<\/a>&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"728\" height=\"595\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image49.png\" alt=\"\" class=\"wp-image-9479\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image49.png 728w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image49-300x245.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image49-370x302.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image49-270x221.png 270w\" sizes=\"(max-width: 728px) 100vw, 728px\" \/><figcaption class=\"wp-element-caption\"><em>Demonstration of UPX0 and UPX1 in Static Discovering section<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>We can identify UPX through section names. In certain cases, packers like&nbsp;<strong>VMProtect<\/strong>&nbsp;and&nbsp;<strong>Themida<\/strong>&nbsp;can also be identified by their distinct section names.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"256\" height=\"33\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4a.png\" alt=\"\" class=\"wp-image-9480\"\/><figcaption class=\"wp-element-caption\"><em>The&nbsp;<\/em><strong><em>.vmp0<\/em><\/strong><em>&nbsp;section characteristic of&nbsp;<\/em><strong><em>VMProtect<\/em><\/strong><em>.<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>Sections, such as&nbsp;.vmp0, indicate VMProtect (<a href=\"https:\/\/app.any.run\/tasks\/d5f7021d-41b4-441f-85d1-48cf149c6489\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">see example<\/a>). <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"269\" height=\"31\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4b.png\" alt=\"\" class=\"wp-image-9481\"\/><figcaption class=\"wp-element-caption\">The .themida section characteristic of Themida&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>Sections, such as&nbsp;.themida&nbsp;or&nbsp;.taggant, signal the presence of Themida (<a href=\"https:\/\/app.any.run\/tasks\/5c864fca-ecc8-43d5-90dd-64aebf4508fd\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">see example<\/a>).<\/p>\n\n\n\n<!-- Regular Banner START -->\n<div class=\"regular-banner\">\n<!-- Text Content -->\n<p class=\"regular-banner__text\">\nTry advanced <span class=\"highlight\">malware analysis<\/span> with ANY.RUN for free&nbsp;\n<\/p>\n<!-- CTA Link -->\n<a class=\"regular-banner__link\" id=\"article-banner-regular\" href=\"https:\/\/app.any.run\/?utm_source=anyrunblog&#038;utm_medium=article&#038;utm_campaign=packers_and_crypters&#038;utm_term=301024&#038;utm_content=linktoregistration#register\/\" rel=\"noopener\" target=\"_blank\">\nSign up now\n<\/a>\n<\/div>\n<!-- Regular Banner END -->\n<!-- Regular Banner Styles START -->\n\n<style>\n.regular-banner {\ndisplay: flex;\ntext-align: center;\nflex-direction: column;\nalign-items: center;\ngap: 1.5rem;\nwidth: 100%;\npadding: 2rem;\nmargin: 1.5rem 0;\nborder-radius: 0.5rem;\nfont-family: 'Catamaran Bold';\nmargin-inline: auto;\nbackground: rgba(32, 168, 241, 0.1);\nborder: 1px solid rgba(75, 174, 227, 0.32);\n}\n\n.regular-banner__text {\nfont-size: 1.5rem;\nmargin: 0;\n}\n\n.highlight {\ncolor: #ea2526;\n}\n\n.regular-banner__link {\npadding: 0.5rem 1.5rem;\nfont-weight: 500;\ntext-decoration: none;\nborder-radius: 0.5rem;\ncolor: #FFFFFF;\nbackground-color: #1491D4;\ntext-align: center;\ntransition: all 0.2s ease-in;\n}\n\n.regular-banner__link:hover {\nbackground-color: #68CBFF;\ncolor: white;\n}\n<\/style>\n<!-- Regular Banner Styles END -->\n\n\n\n<h2 class=\"wp-block-heading\">Common Indicators of Packers&nbsp;<\/h2>\n\n\n\n<p>The most common indicators for packers include:&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Unusual Section Names and Placement<\/strong>&nbsp;<\/h3>\n\n\n\n<p>For instance, packers like Themida\/Winlicense often have sections with random names or blank spaces as section names (<a href=\"https:\/\/app.any.run\/tasks\/fa86ba56-29b0-4914-ba6e-1a885b9b1d42\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">example<\/a>).&nbsp;The image below shows that Sections #4 and #5 have random names, while sections #0 and #3 contain blank spaces instead of names.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"505\" height=\"149\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4c.png\" alt=\"\" class=\"wp-image-9482\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4c.png 505w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4c-300x89.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4c-370x109.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4c-270x80.png 270w\" sizes=\"(max-width: 505px) 100vw, 505px\" \/><figcaption class=\"wp-element-caption\"><em>The presence of a&nbsp;<strong>.taggant<\/strong>&nbsp;section is a distinguishing feature&nbsp;<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>In&nbsp;<strong>VMProtect<\/strong>, the section addresses in the file (specifically the&nbsp;<strong>PointerToRawData<\/strong>&nbsp;field) are often set to zero (<a href=\"https:\/\/app.any.run\/tasks\/a4ec2383-1ceb-484b-9a62-8daad5377013\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">example<\/a>). <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"638\" height=\"202\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4d.png\" alt=\"\" class=\"wp-image-9483\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4d.png 638w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4d-300x95.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4d-370x117.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4d-270x85.png 270w\" sizes=\"(max-width: 638px) 100vw, 638px\" \/><figcaption class=\"wp-element-caption\"><strong>PointerToRawData<\/strong> is set to zero in sections <strong>#0 through #5<\/strong><\/figcaption><\/figure><\/div>\n\n\n<p>In the image above, for sections&nbsp;<strong>#0 through #5<\/strong>, <strong>PointerToRawData<\/strong>&nbsp;is set to zero, which suggests that unpacking occurs dynamically at runtime.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Unusual Imports<\/h3>\n\n\n\n<p>The absence or minimal number of imports suggests that libraries are loaded, and their function addresses are acquired dynamically at runtime.&nbsp;<\/p>\n\n\n\n<p>For .NET applications, a single import (mscoree.dll:: _CorExeMain) is typical. In some cases, a unique mix of functions can reveal the application&#8217;s intentions.&nbsp;&nbsp;<\/p>\n\n\n\n<p>For instance, let\u2019s open the&nbsp;<strong>Static Discovering<\/strong>&nbsp;window inside the ANY.RUN sandbox for this <a href=\"https:\/\/app.any.run\/tasks\/e7348d99-1d37-4a7b-9ba4-86cd5dd2cb55\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">UPX sample<\/a> and go to the Imports section.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"734\" height=\"597\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4e.png\" alt=\"\" class=\"wp-image-9484\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4e.png 734w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4e-300x244.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4e-370x301.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4e-270x220.png 270w\" sizes=\"(max-width: 734px) 100vw, 734px\" \/><figcaption class=\"wp-element-caption\">Static discovering in the ANY.RUN sandbox <\/figcaption><\/figure><\/div>\n\n\n<p>Then, let\u2019s search for KERNEL32.DLL.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"721\" height=\"164\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4f.png\" alt=\"\" class=\"wp-image-9485\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4f.png 721w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4f-300x68.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4f-370x84.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image4f-270x61.png 270w\" sizes=\"(max-width: 721px) 100vw, 721px\" \/><figcaption class=\"wp-element-caption\"><em>LoadLibraryA&nbsp;and&nbsp;GetProcAddress point to dynamic library loading<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>The combination of&nbsp;<strong>LoadLibraryA<\/strong>&nbsp;and&nbsp;<strong>GetProcAddress<\/strong>&nbsp;indicates dynamic library loading, while&nbsp;<strong>VirtualProtect<\/strong>&nbsp;may suggest an intention to change <a href=\"https:\/\/learn.microsoft.com\/en-us\/windows\/win32\/Memory\/memory-protection-constants#constants\" target=\"_blank\" rel=\"noreferrer noopener\">memory page protection<\/a> to executable. &nbsp;<\/p>\n\n\n\n<p>Since only four functions are present here, this combination is unlikely to be coincidental and can signal intentional manipulation for code execution.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>High Entropy<\/strong>&nbsp;<\/h3>\n\n\n\n<p>For unpacked files, the overall entropy typically ranges from&nbsp;<strong>5 to 6.5<\/strong>. Packed &nbsp;files, however, often exhibit entropy levels above&nbsp;<strong>7<\/strong>, approaching&nbsp;<strong>8<\/strong>&nbsp;(the maximum &nbsp;entropy for 8-bit data). &nbsp;<\/p>\n\n\n\n<p>High entropy values can indicate packing or encryption, as they suggest a lack of readable patterns within the file. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"431\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image50-1024x431.png\" alt=\"\" class=\"wp-image-9486\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image50-1024x431.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image50-300x126.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image50-768x323.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image50-370x156.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image50-270x114.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image50-740x311.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image50.png 1051w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Entropy shown in DIE for the <a href=\"https:\/\/app.any.run\/tasks\/24a1c398-36f4-49cf-b866-7b65b43de161\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">following sample<\/a><\/em><\/figcaption><\/figure><\/div>\n\n\n<p>This entropy level can be checked using tools like\u00a0<strong>DIE (Detect it Easy)<\/strong>.\u00a0<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"723\" height=\"73\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image51.png\" alt=\"\" class=\"wp-image-9487\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image51.png 723w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image51-300x30.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image51-370x37.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image51-270x27.png 270w\" sizes=\"(max-width: 723px) 100vw, 723px\" \/><figcaption class=\"wp-element-caption\"><em>Demonstration of entropy in ANY.RUN\u2019s Static discovering section<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>You can also <a href=\"https:\/\/app.any.run\/tasks\/24a1c398-36f4-49cf-b866-7b65b43de161\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">check it right inside the ANY.RUN sandbox<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Unpacking Different Types of Packers&nbsp;<\/h2>\n\n\n\n<p>There are two main types of unpacking:&nbsp;<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"1\">\n<li><strong>Static unpacking<\/strong>: The code is processed by the unpacker but not executed. This method relies on analyzing the packed file without running it, allowing for a safer examination.&nbsp;<\/li>\n<\/ol>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li><strong>Dynamic unpacking<\/strong>: The code is executed and preserved by the unpacker in memory. This approach involves running the packed malware in a controlled environment, often in a sandbox, to observe the unpacked code in action.&nbsp;<\/li>\n<\/ol>\n\n\n\n<p><strong>Dynamic unpacking<\/strong>&nbsp;is the most challenging type of unpacking, as it often requires the use of a debugger and capturing memory dumps. &nbsp;<\/p>\n\n\n\n<p>This approach allows analysts to observe how the code behaves at runtime, but it demands a controlled environment and more advanced tools to monitor and extract the unpacked code accurately.&nbsp;<\/p>\n\n\n\n<p>To make the process of the analysis easier and faster, you can utilize ANY.RUN\u2019s Interactive Sandbox. It provides memory dumps of unpacked and decrypted data, including the decrypted executable payload.&nbsp;<\/p>\n\n\n\n<p>The sandbox generates memory dumps for various processes and makes them available for download, saving analysts significant time and simplifying the analysis process. You can download these memory dumps and analyze them locally. &nbsp;<\/p>\n\n\n\n<p>There are two options for accessing memory dumps generated inside ANY.RUN\u2019s sandbox.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"451\" height=\"118\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image52.png\" alt=\"\" class=\"wp-image-9489\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image52.png 451w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image52-300x78.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image52-370x97.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image52-270x71.png 270w\" sizes=\"(max-width: 451px) 100vw, 451px\" \/><figcaption class=\"wp-element-caption\">Click the DMP button to access dumps<\/figcaption><\/figure><\/div>\n\n\n<p>You can access them by clicking on the DMP button in the process tree section.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"814\" height=\"343\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image53.png\" alt=\"\" class=\"wp-image-9490\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image53.png 814w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image53-300x126.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image53-768x324.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image53-370x156.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image53-270x114.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image53-740x312.png 740w\" sizes=\"(max-width: 814px) 100vw, 814px\" \/><\/figure>\n\n\n\n<p>Alternatively, you can go to &#8220;Advanced Details&#8221; of a process that has the DMP icon next to it and navigate to the &#8220;Process dump&#8221; section, where you can download the dumps.<\/p>\n\n\n\n<p>Let&#8217;s now see how you can address different types of packers.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">SFX Installers&nbsp;<\/h2>\n\n\n\n<p>SFX (Self-Extracting Archives) is an archive format that, when executed, extracts files and can perform specific actions. In most cases, these archives can be unpacked statically with utilities like&nbsp;<strong>7zip<\/strong>&nbsp;or&nbsp;<strong>WinRAR<\/strong>.&nbsp;<\/p>\n\n\n\n<p>To see a typical SFX in action, let\u2019s consider the <a href=\"https:\/\/app.any.run\/tasks\/cadf0d08-6cc3-4d73-b930-5cf537776070\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">following sample<\/a>.<\/p>\n\n\n\n<p>Such archives often have a distinctive icon, indicating they are self-extracting executables:&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"79\" height=\"78\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image54.png\" alt=\"\" class=\"wp-image-9491\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image54.png 79w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image54-70x70.png 70w\" sizes=\"(max-width: 79px) 100vw, 79px\" \/><figcaption class=\"wp-element-caption\"><em><em>SFX file<\/em> icon <\/em><\/figcaption><\/figure><\/div>\n\n\n<p>Use WinRAR to open the archive and view the&nbsp;extraction settings&nbsp;and&nbsp;packed files&nbsp;within the SFX.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"199\" height=\"223\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image55.png\" alt=\"\" class=\"wp-image-9492\"\/><figcaption class=\"wp-element-caption\"><em>Right-click on the file to access the &#8220;Open with WinRAR&#8221; option<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>After opening the file, on the right side, you\u2019ll find extraction parameters, file paths, and the primary executable file. On the left, you can view all files packed within the archive.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image56.png\" alt=\"\" class=\"wp-image-9493\" width=\"650\" height=\"333\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image56.png 831w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image56-300x154.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image56-768x394.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image56-370x190.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image56-270x138.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image56-585x300.png 585w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image56-740x379.png 740w\" sizes=\"(max-width: 650px) 100vw, 650px\" \/><figcaption class=\"wp-element-caption\">Contents of SFX file<\/figcaption><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">MSI Files<\/h2>\n\n\n\n<p>To unpack MSI files, a common method is using the command line with&nbsp;<strong>msiexec \/a<\/strong>. However, this method may not work for every file and can sometimes result in errors. &nbsp;<\/p>\n\n\n\n<p>For instance, with the following sample, attempting this command in a sandbox triggers an error (<a href=\"https:\/\/app.any.run\/tasks\/e2fb33d4-1433-48fb-8a28-467a8d1e39c5\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">see sandbox example<\/a>).&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"350\" height=\"181\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image57.png\" alt=\"\" class=\"wp-image-9494\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image57.png 350w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image57-300x155.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image57-270x140.png 270w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><figcaption class=\"wp-element-caption\"><em>Error unpacking MSI<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>An alternative solution is&nbsp;<a href=\"https:\/\/github.com\/activescott\/lessmsi\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>LessMSI<\/strong><\/a>, a specialized tool for extracting files from MSI packages.&nbsp;<\/p>\n\n\n\n<p>Let\u2019s see how it works this using the <a href=\"https:\/\/app.any.run\/tasks\/b947ab7b-e3ae-4dc8-8d11-0e3ba61b70b7\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">following sample<\/a>. &nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"814\" height=\"547\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image58.png\" alt=\"\" class=\"wp-image-9495\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image58.png 814w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image58-300x202.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image58-768x516.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image58-370x249.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image58-270x181.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image58-740x497.png 740w\" sizes=\"(max-width: 814px) 100vw, 814px\" \/><figcaption class=\"wp-element-caption\">The upload button in ANY.RUN lets you add files to a running sandbox section in real time<\/figcaption><\/figure><\/div>\n\n\n<p>Upload the LessMSI archive to a virtual machine in ANY.RUN via the <em>upload button<\/em>.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"589\" height=\"522\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image59.png\" alt=\"\" class=\"wp-image-9496\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image59.png 589w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image59-300x266.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image59-370x328.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image59-270x239.png 270w\" sizes=\"(max-width: 589px) 100vw, 589px\" \/><figcaption class=\"wp-element-caption\"><em>File demonstration in LessMSI for files packed in an MSI installer<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>Launch the GUI version of LessMSI and select the MSI file.&nbsp;Next, the program will display a list of files and their paths for extraction.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Nullsoft Installer&nbsp;<\/h2>\n\n\n\n<p>Nullsoft installers are often straightforward to unpack using&nbsp;<strong>7zip<\/strong>. By opening these files with 7zip, you can directly access the contents of the installer.&nbsp;<\/p>\n\n\n\n<p>Let\u2019s examine <a href=\"https:\/\/app.any.run\/tasks\/25b99b3c-94f9-4575-8bb9-83c2fb7baf88\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">this sample<\/a> for more details. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"357\" height=\"300\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5a.png\" alt=\"\" class=\"wp-image-9497\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5a.png 357w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5a-300x252.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5a-270x227.png 270w\" sizes=\"(max-width: 357px) 100vw, 357px\" \/><figcaption class=\"wp-element-caption\"><em>Demonstration of files packed in the installer, along with special directories that start with the&nbsp;$&nbsp;symbol<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>Opening the archive in&nbsp;<strong>7zip<\/strong>&nbsp;reveals the files packed within it, including special directories that typically start with the&nbsp;$&nbsp;symbol.&nbsp;<\/p>\n\n\n\n<p>This approach allows you to explore the installer\u2019s files easily. However, a limitation is that it doesn\u2019t reveal the initial installation parameters, which may be necessary for deeper analysis.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">InnoSetup&nbsp;<\/h2>\n\n\n\n<p>Unpacking&nbsp;<strong>InnoSetup<\/strong>&nbsp;installers requires specialized tools. The unpacking becomes more challenging because these files often contain embedded scripts that control the installation process.&nbsp;<\/p>\n\n\n\n<p>In this case, 2 useful tools can be used:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/dscharrer\/innoextract\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>innoextract<\/strong><\/a>: A command-line tool designed to extract files from InnoSetup packages.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/WhatTheBlock\/innounp\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>innounp<\/strong><\/a>: Another tool that offers similar functionality, supporting various versions of InnoSetup.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Let\u2019s consider <a href=\"https:\/\/app.any.run\/tasks\/2154295f-416b-46ed-8a89-f28326e00936\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">this sample<\/a>.&nbsp;<\/p>\n\n\n\n<p>Start a virtual machine with the necessary utilities and unpack <strong>innoextract.<\/strong>&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"173\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5b-1024x173.png\" alt=\"\" class=\"wp-image-9499\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5b-1024x173.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5b-300x51.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5b-768x130.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5b-370x62.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5b-270x46.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5b-740x125.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5b.png 1273w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>As a result, we\u2019ll obtain several directories. The main one is&nbsp;<strong>app\\Redist<\/strong>, which contains the executable file.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"774\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5c-1024x774.png\" alt=\"\" class=\"wp-image-9500\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5c-1024x774.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5c-300x227.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5c-768x580.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5c-370x280.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5c-270x204.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5c-740x559.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5c-80x60.png 80w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5c.png 1048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Additionally, files such as help documents, libraries, samples, and other related resources are extracted.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"312\" height=\"152\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5d.png\" alt=\"\" class=\"wp-image-9501\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5d.png 312w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5d-300x146.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5d-270x132.png 270w\" sizes=\"(max-width: 312px) 100vw, 312px\" \/><\/figure><\/div>\n\n\n<p>Registry data entries are extracted separately as well.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"93\" height=\"233\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5e.png\" alt=\"\" class=\"wp-image-9502\"\/><\/figure><\/div>\n\n\n<p>The&nbsp;<strong>app<\/strong>&nbsp;directory contains files unpacked by the installer.&nbsp;<\/p>\n\n\n\n<p>The&nbsp;<strong>reg$HKCU<\/strong>&nbsp;directory contains data entries that are added to the registry under&nbsp;<strong>CURRENT_USER<\/strong>.&nbsp;<\/p>\n\n\n\n<p><strong>Innounp<\/strong>&nbsp;works in a similar way.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"881\" height=\"139\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5f.png\" alt=\"\" class=\"wp-image-9503\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5f.png 881w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5f-300x47.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5f-768x121.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5f-370x58.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5f-270x43.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image5f-740x117.png 740w\" sizes=\"(max-width: 881px) 100vw, 881px\" \/><\/figure><\/div>\n\n\n<p>As a result, application and registry data are extracted.<\/p>\n\n\n\n<p>The advantage of this utility is that it restores the installation script and saves it in a&nbsp;file.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"120\" height=\"91\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image61.png\" alt=\"\" class=\"wp-image-9504\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image61.png 120w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image61-80x60.png 80w\" sizes=\"(max-width: 120px) 100vw, 120px\" \/><\/figure><\/div>\n\n\n<p>We can open this file in a notepad.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"860\" height=\"782\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image62.png\" alt=\"\" class=\"wp-image-9505\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image62.png 860w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image62-300x273.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image62-768x698.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image62-370x336.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image62-270x246.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image62-740x673.png 740w\" sizes=\"(max-width: 860px) 100vw, 860px\" \/><\/figure>\n\n\n\n<p>The&nbsp;<strong>[Run]<\/strong>&nbsp;section contains information about the files that will be executed after unpacking.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"990\" height=\"147\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image63.png\" alt=\"\" class=\"wp-image-9506\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image63.png 990w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image63-300x45.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image63-768x114.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image63-370x55.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image63-270x40.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image63-740x110.png 740w\" sizes=\"(max-width: 990px) 100vw, 990px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">NSIS + ASAR&nbsp;<\/h2>\n\n\n\n<p>It\u2019s worth mentioning the&nbsp;<strong>SFX archives<\/strong>&nbsp;used by&nbsp;<strong>Electron.js<\/strong>.&nbsp;<\/p>\n\n\n\n<p>Let\u2019s consider <a href=\"https:\/\/app.any.run\/tasks\/ed7543ba-562f-4594-ad5c-e2c9f3387d6e\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">this example<\/a>.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"792\" height=\"397\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/imagee.jpg\" alt=\"\" class=\"wp-image-9507\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/imagee.jpg 792w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/imagee-300x150.jpg 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/imagee-768x385.jpg 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/imagee-370x185.jpg 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/imagee-270x135.jpg 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/imagee-740x371.jpg 740w\" sizes=\"(max-width: 792px) 100vw, 792px\" \/><figcaption class=\"wp-element-caption\"><em>The archive contains a single directory, which is, in fact, the&nbsp;<\/em><strong><em>Nullsoft SFX<\/em><\/strong><\/figcaption><\/figure><\/div>\n\n\n<p>Download the EXE file and start the unpacking process.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"359\" height=\"122\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/imagef.jpg\" alt=\"\" class=\"wp-image-9508\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/imagef.jpg 359w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/imagef-300x102.jpg 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/imagef-270x92.jpg 270w\" sizes=\"(max-width: 359px) 100vw, 359px\" \/><figcaption class=\"wp-element-caption\"><em>&nbsp;The&nbsp;<\/em><strong><em>$PLUGINSDIR<\/em><\/strong><em>&nbsp;directory with the&nbsp;<\/em><strong><em>app-32.7z, <\/em><\/strong><em>containing the application files<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>When extracting with&nbsp;<strong>7zip<\/strong>, we obtain a folder containing various files, including an archive with a renamed Chromium executable (in this case,&nbsp;<strong>Runtime Broker.exe<\/strong>) and its libraries.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"351\" height=\"497\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image10.jpg\" alt=\"\" class=\"wp-image-9509\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image10.jpg 351w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image10-212x300.jpg 212w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image10-270x382.jpg 270w\" sizes=\"(max-width: 351px) 100vw, 351px\" \/><figcaption class=\"wp-element-caption\"><em>The application data in the&nbsp;<\/em><strong><em>app-32.7z<\/em><\/strong><em>&nbsp;archive consists mostly of files related to&nbsp;<\/em><strong><em>Chromium<\/em><\/strong><\/figcaption><\/figure><\/div>\n\n\n<p>The&nbsp;<strong>Electron.js<\/strong>&nbsp;application data is stored in the&nbsp;<strong>resources<\/strong>&nbsp;directory.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"449\" height=\"85\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image11.jpg\" alt=\"\" class=\"wp-image-9510\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image11.jpg 449w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image11-300x57.jpg 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image11-370x70.jpg 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image11-270x51.jpg 270w\" sizes=\"(max-width: 449px) 100vw, 449px\" \/><figcaption class=\"wp-element-caption\"><em>Files in the&nbsp;resources&nbsp;folder<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>The&nbsp;<strong>app.asar<\/strong>&nbsp;file is an archive containing the&nbsp;<strong>Electron.js application data<\/strong>.&nbsp;<\/p>\n\n\n\n<p>To unpack it, you\u2019ll need an&nbsp;<strong>npm<\/strong>&nbsp;module.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Install npm: sudo apt install npm&nbsp;<\/li>\n\n\n\n<li>Run the following command to extract the archive: npx @electron\/asar extract app.asar extracted&nbsp;<\/li>\n\n\n\n<li>If the&nbsp;<strong>asar<\/strong>&nbsp;module isn\u2019t already installed,&nbsp;<strong>npm<\/strong>&nbsp;will prompt you to install it.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>As a result of running the command, the archive will be unpacked into the&nbsp;<strong>extracted<\/strong>&nbsp;folder.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"464\" height=\"118\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image12.jpg\" alt=\"\" class=\"wp-image-9512\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image12.jpg 464w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image12-300x76.jpg 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image12-370x94.jpg 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image12-270x69.jpg 270w\" sizes=\"(max-width: 464px) 100vw, 464px\" \/><figcaption class=\"wp-element-caption\"><em>Files extracted from&nbsp;<\/em><strong><em>app.asar<\/em><\/strong>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>The&nbsp;<strong>node_modules<\/strong>&nbsp;folder contains the&nbsp;<strong>Node.js packages<\/strong>, and&nbsp;<strong>index.js<\/strong>&nbsp;is the initial script of the application.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">UPX&nbsp;<\/h2>\n\n\n\n<p><a href=\"https:\/\/upx.github.io\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">UPX<\/a> (Ultimate Packer for eXecutables) is a packer for executable files.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Compatibility<\/strong>: It supports only native PE (Portable Executable) applications.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Unpacking<\/strong>: UPX-packed files are often easy to unpack statically using the same UPX utility.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>To unpack a UPX-packed file, you only need to use a single command: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>upx \u2013d &lt;file&gt;&nbsp;<\/code><\/pre>\n\n\n\n<p>UPX can be identified by the presence of sections named&nbsp;<strong>UPX0<\/strong>&nbsp;and&nbsp;<strong>UPX1<\/strong>&nbsp;in the file.&nbsp;<\/p>\n\n\n\n<p>Let\u2019s observe it with the <a href=\"https:\/\/app.any.run\/tasks\/e7348d99-1d37-4a7b-9ba4-86cd5dd2cb55\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">following sample<\/a>.<\/p>\n\n\n\n<p>First, download the sample and open it in\u00a0<strong>DIE<\/strong>\u00a0(version 3.10). DIE will indicate the presence of UPX, listing specific indicators.\u00a0<\/p>\n\n\n\n<p>Some malware samples use older versions of UPX. In such cases, you\u2019ll need the corresponding version to unpack them. DIE suggests the recommended version, which, in this example, is\u00a0<strong>3.96<\/strong>.\u00a0<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"611\" height=\"147\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image64.png\" alt=\"\" class=\"wp-image-9513\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image64.png 611w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image64-300x72.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image64-370x89.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image64-270x65.png 270w\" sizes=\"(max-width: 611px) 100vw, 611px\" \/><figcaption class=\"wp-element-caption\"><em>DIE reports the detection of\u00a0<\/em><strong><em>Packer: UPX<\/em><\/strong><\/figcaption><\/figure><\/div>\n\n\n<p>To analyze a sample like this, it\u2019s essential to remove the UPX compression; otherwise, the disassembler won\u2019t be able to interpret the code correctly.&nbsp;<\/p>\n\n\n\n<p>For instance,&nbsp;<strong><a href=\"https:\/\/github.com\/NationalSecurityAgency\/ghidra\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Ghidra<\/a><\/strong>\u2014a free disassembler and decompiler\u2014will display multiple errors when importing a compressed file.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"760\" height=\"186\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image65.png\" alt=\"\" class=\"wp-image-9514\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image65.png 760w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image65-300x73.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image65-370x91.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image65-270x66.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image65-740x181.png 740w\" sizes=\"(max-width: 760px) 100vw, 760px\" \/><\/figure>\n\n\n\n<p>During analysis, Ghidra will detect only a single function. The built-in decompiler will report the incorrect code.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"172\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image66-1024x172.png\" alt=\"\" class=\"wp-image-9515\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image66-1024x172.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image66-300x50.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image66-768x129.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image66-1536x258.png 1536w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image66-370x62.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image66-270x45.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image66-740x124.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image66.png 1627w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>In the image above<em>,<\/em> on the&nbsp;<strong>left side<\/strong>, there is a&nbsp;<strong>Listing<\/strong>&nbsp;displaying the single function, while on the&nbsp;<strong>right side<\/strong>, the&nbsp;<strong>Decompiler<\/strong>&nbsp;window shows an error message.<\/p>\n\n\n\n<p>To conduct analysis, download the latest release of&nbsp;<strong>UPX<\/strong>&nbsp;from GitHub.<\/p>\n\n\n\n<p>Next, upload the sample along with the&nbsp;<strong>upx.exe<\/strong>&nbsp;file (it&#8217;s not necessary to upload the entire archive) to the virtual machine.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"862\" height=\"673\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image67.png\" alt=\"\" class=\"wp-image-9517\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image67.png 862w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image67-300x234.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image67-768x600.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image67-370x289.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image67-270x211.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image67-385x300.png 385w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image67-740x578.png 740w\" sizes=\"(max-width: 862px) 100vw, 862px\" \/><figcaption class=\"wp-element-caption\"><em>In the&nbsp;<\/em><strong><em>Command line<\/em><\/strong><em>&nbsp;field, enter&nbsp;<\/em><strong><em>&#8220;cmd&#8221;<\/em><\/strong><em> and use&nbsp;<\/em><strong><em>Tools collection<\/em><\/strong><em> on the right.<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>To do this, switch to&nbsp;the <strong>Pro mode <\/strong>in the sandbox&nbsp;and select&nbsp;<strong>Tools collection<\/strong>.&nbsp;Here, you can either use previously uploaded tools or upload new ones.&nbsp;<\/p>\n\n\n\n<!-- Regular Banner START -->\n<div class=\"regular-banner\">\n<!-- Text Content -->\n<p class=\"regular-banner__text\">\nAccess all Pro features of <span class=\"highlight\">ANY.RUN sandbox<\/span> for free&nbsp;\n<\/p>\n<!-- CTA Link -->\n<a class=\"regular-banner__link\" id=\"article-banner-regular\" href=\"https:\/\/any.run\/demo\/?utm_source=anyrunblog&#038;utm_medium=article&#038;utm_campaign=packers_and_crypters&#038;utm_term=301024&#038;utm_content=linktodemo\/\" rel=\"noopener\" target=\"_blank\">\nGet 14-day trial\n<\/a>\n<\/div>\n<!-- Regular Banner END -->\n<!-- Regular Banner Styles START -->\n\n<style>\n.regular-banner {\ndisplay: flex;\ntext-align: center;\nflex-direction: column;\nalign-items: center;\ngap: 1.5rem;\nwidth: 100%;\npadding: 2rem;\nmargin: 1.5rem 0;\nborder-radius: 0.5rem;\nfont-family: 'Catamaran Bold';\nmargin-inline: auto;\nbackground: rgba(32, 168, 241, 0.1);\nborder: 1px solid rgba(75, 174, 227, 0.32);\n}\n\n.regular-banner__text {\nfont-size: 1.5rem;\nmargin: 0;\n}\n\n.highlight {\ncolor: #ea2526;\n}\n\n.regular-banner__link {\npadding: 0.5rem 1.5rem;\nfont-weight: 500;\ntext-decoration: none;\nborder-radius: 0.5rem;\ncolor: #FFFFFF;\nbackground-color: #1491D4;\ntext-align: center;\ntransition: all 0.2s ease-in;\n}\n\n.regular-banner__link:hover {\nbackground-color: #68CBFF;\ncolor: white;\n}\n<\/style>\n<!-- Regular Banner Styles END -->\n\n\n\n<p>Before starting the analysis, enter the&nbsp;<strong>&#8220;cmd&#8221;<\/strong>&nbsp;command in the&nbsp;<strong>Command line<\/strong>&nbsp;field. This will prevent the sample from running automatically and will open the console at the start of the session.&nbsp;<\/p>\n\n\n\n<p>All further steps are carried out in the <a href=\"https:\/\/app.any.run\/tasks\/42faf059-1721-4f0e-ab84-9529c0b2f735\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">following analysis session<\/a>.&nbsp;<\/p>\n\n\n\n<p>Unpack the UPX archive and enter the following command in the console:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;path_to_upx&gt;\\upx.exe -d &lt;filename&gt;&nbsp;<\/code><\/pre>\n\n\n\n<p>As a result of the command execution, the file will be overwritten with the decompressed version.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1001\" height=\"434\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image68.png\" alt=\"\" class=\"wp-image-9518\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image68.png 1001w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image68-300x130.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image68-768x333.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image68-370x160.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image68-270x117.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image68-740x321.png 740w\" sizes=\"(max-width: 1001px) 100vw, 1001px\" \/><figcaption class=\"wp-element-caption\"><em>UPX confirms a successful unpacking; the file has been&nbsp;<\/em><strong><em>overwritten<\/em><\/strong><\/figcaption><\/figure><\/div>\n\n\n<p>To ensure the unpacked sample is functioning correctly, let\u2018s run it in a sandbox.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"715\" height=\"64\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image69.png\" alt=\"\" class=\"wp-image-9519\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image69.png 715w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image69-300x27.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image69-370x33.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image69-270x24.png 270w\" sizes=\"(max-width: 715px) 100vw, 715px\" \/><figcaption class=\"wp-element-caption\"><em>The sample did not crash and is successfully sending network requests.<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>When clicking the&nbsp;<strong>PE<\/strong>&nbsp;button, the&nbsp;<strong>Static Discovering<\/strong>&nbsp;window opens, where we can observe a different hash.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"794\" height=\"375\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6a.png\" alt=\"\" class=\"wp-image-9520\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6a.png 794w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6a-300x142.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6a-768x363.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6a-370x175.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6a-270x128.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6a-740x349.png 740w\" sizes=\"(max-width: 794px) 100vw, 794px\" \/><figcaption class=\"wp-element-caption\">Static analysis of the unpacked file<\/figcaption><\/figure><\/div>\n\n\n<p>The <strong>Static Discovering<\/strong> window&nbsp;for the unpacked file, shows the name under which it was saved to disk. We can see a&nbsp;<strong>decrease in entropy<\/strong>, an&nbsp;<strong>increase in file size<\/strong>, and a&nbsp;<strong>different hash<\/strong>&nbsp;value.<\/p>\n\n\n\n<p>Now, Ghidra can handle this file without any issues.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"420\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6b-1024x420.png\" alt=\"\" class=\"wp-image-9521\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6b-1024x420.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6b-300x123.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6b-768x315.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6b-370x152.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6b-270x111.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6b-740x303.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6b.png 1285w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><strong><em>Ghidra<\/em><\/strong><em>&nbsp;successfully disassembled the file and identified the library functions<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>In the&nbsp;<strong>Listing<\/strong> section, we see numerous references and functions, and the&nbsp;<strong>Decompiler<\/strong>&nbsp;window displays the correct code.<\/p>\n\n\n\n<p>The same process can be done on a physical machine, as&nbsp;<strong>UPX<\/strong>&nbsp;does not execute code during unpacking.&nbsp;<\/p>\n\n\n\n<!-- CTA Split START -->\n<div class=\"cta-split\">\n<div class=\"cta__split-left\">\n\n<!-- Image -->\n<img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/mcusercontent.com\/663b94f19348582a8dc323efe\/images\/0d88188b-3e89-2314-5a60-cb87e8077326.png\" alt=\"Learn to analyze malware in a sandbox\" class=\"cta__split-icon\" \/>\n<\/div>\n\n<div class=\"cta__split-right\">\n<div>\n\n<!-- Heading -->\n<h3 class=\"cta__split-heading\"><br>Learn to analyze cyber threats<\/h3>\n\n<!-- Text -->\n<p class=\"cta__split-text\">\nSee a detailed guide to using ANY.RUN&#8217;s <span class=\"highlight\">Interactive Sandbox<\/span> for malware and phishing analysis\n<br \/>\n<br \/>\n<\/p>\n<\/div>\n<!-- CTA Link -->\n<a target=\"_blank\" rel=\"noopener\" id=\"article-banner-split\" href=\"https:\/\/any.run\/cybersecurity-blog\/malware-analysis-in-a-sandbox\/\"><div class=\"cta__split-link\">Read full guide<\/div><\/a>\n<\/div>\n<\/div>\n<!-- CTA Split END -->\n<!-- CTA Split Styles START -->\n<style>\n.cta-split {\noverflow: hidden;\nmargin: 3rem 0;\ndisplay: grid;\njustify-items: center;\nborder-radius: 0.5rem;\nwidth: 100%;\nmin-height: 25rem;\ngrid-template-columns: repeat(2, 1fr);\nborder: 1px solid rgba(75, 174, 227, 0.32);\nfont-family: 'Catamaran Bold';\n}\n\n.cta__split-left {\ndisplay: flex;\nalign-items: center;\njustify-content: center;\nheight: 100%;\nwidth: 100%;\nbackground-color: #161c59;\nbackground-position: center center;\nbackground: rgba(32, 168, 241, 0.1);\n}\n\n.cta__split-icon { \nwidth: 100%;\nheight: auto;\nobject-fit: contain;\nmax-width: 100%;\n}\n\n.cta__split-right {\ndisplay: flex;\nflex-direction: column;\njustify-content: space-between;\npadding: 2rem;\n}\n\n.cta__split-heading { font-size: 1.5rem; }\n\n.cta__split-text {\nmargin-top: 1rem;\nfont-family: Lato, Roboto, sans-serif;\n}\n\n.cta__split-link {\npadding: 0.5rem 1rem;\nfont-weight: 500;\ntext-decoration: none;\nborder-radius: 0.5rem;\ncolor: white;\nbackground-color: #1491D4;\ntext-align: center;\ntransition: all 0.2s ease-in;\ndisplay: block;\nz-index: 1000;\nposition: relative;\ncursor: pointer !important;\n}\n\n.cta__split-link:hover {\nbackground-color: #68CBFF;\ncolor: white;\ncursor: pointer;\n}\n\n.highlight { color: #ea2526;}\n\n\n\/* Mobile styles START *\/\n@media only screen and (max-width: 768px) {\n\n.cta-split {\ngrid-template-columns: 1fr;\nmin-height: auto;\n}\n\n.cta__split-left {\nheight: auto;\nmin-height: 10rem;\n}\n\n\n.cta__split-left, .cta__split-right {\nheight: auto;\n}\n\n.cta__split-heading { font-size: 1.2rem; }\n\n.cta__split-text { font-size: 1rem; }\n.cta__split-icon {\nmax-height: auto;\nobject-fit: cover;\n}\n\n}\n\/* Mobile styles END *\/\n<\/style>\n<!-- CTA Split Styles END -->\n\n\n\n<h2 class=\"wp-block-heading\">AutoIt&nbsp;<\/h2>\n\n\n\n<p>AutoIt is often used as a crypter.&nbsp;The simplest way to detect AutoIt is by checking the&nbsp;<strong>file description<\/strong>.&nbsp;To do this, go to the&nbsp;<strong>Main<\/strong>&nbsp;tab in the&nbsp;<strong>Static Discovering<\/strong>&nbsp;window inside ANY.RUN and scroll down.&nbsp;<\/p>\n\n\n\n<p>You may find different mentions of AutoIt in the description.&nbsp;<\/p>\n\n\n\n<p>Let\u2019s consider the <a href=\"https:\/\/app.any.run\/tasks\/3759cb63-e721-43af-899c-1dfb4ff7ed99\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">following sample<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"725\" height=\"594\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6c.png\" alt=\"\" class=\"wp-image-9522\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6c.png 725w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6c-300x246.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6c-370x303.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6c-270x221.png 270w\" sizes=\"(max-width: 725px) 100vw, 725px\" \/><figcaption class=\"wp-element-caption\"><em>ANY.RUN detects presence of AutoIt<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>Here is <a href=\"https:\/\/app.any.run\/tasks\/ba95229c-61d7-4bd4-bc4f-576fad3dcc11\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">another example<\/a>. Usually, such a file is an&nbsp;<strong>AutoIt interpreter<\/strong>&nbsp;bundled with a script.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"404\" height=\"36\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6d.png\" alt=\"\" class=\"wp-image-9524\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6d.png 404w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6d-300x27.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6d-370x33.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6d-270x24.png 270w\" sizes=\"(max-width: 404px) 100vw, 404px\" \/><\/figure><\/div>\n\n\n<p>In some cases, a deeper examination is required. Let\u2019s look at the <a href=\"https:\/\/app.any.run\/tasks\/217c1781-f448-4fa9-bcb0-c8f12679d840\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">following example<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"502\" height=\"138\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6e.png\" alt=\"\" class=\"wp-image-9525\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6e.png 502w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6e-300x82.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6e-370x102.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6e-270x74.png 270w\" sizes=\"(max-width: 502px) 100vw, 502px\" \/><figcaption class=\"wp-element-caption\">ANY.RUN automatically add AutoIt tag to the session<\/figcaption><\/figure><\/div>\n\n\n<p>In this example, AutoIt was detected by ANY.RUN\u2019s sandbox. Let\u2019s confirm this in\u00a0<strong>DIE<\/strong>.\u00a0<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"619\" height=\"174\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image13.jpg\" alt=\"\" class=\"wp-image-9526\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image13.jpg 619w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image13-300x84.jpg 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image13-370x104.jpg 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image13-270x76.jpg 270w\" sizes=\"(max-width: 619px) 100vw, 619px\" \/><figcaption class=\"wp-element-caption\"><em>DIE reports the detection of an\u00a0<\/em><strong><em>AutoIt signature<\/em><\/strong><\/figcaption><\/figure><\/div>\n\n\n<p>To extract and decompile the script, we can use&nbsp;<a href=\"https:\/\/github.com\/nazywam\/AutoIt-Ripper\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>AutoIt-Ripper<\/strong><\/a>.&nbsp;<\/p>\n\n\n\n<p>Let\u2019s install it using pip install autoit-ripper. &nbsp;<\/p>\n\n\n\n<p>The latter is quite easy to use: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code><strong>autoit-ripper &lt;file&gt; &lt;output_dir&gt;<\/strong>&nbsp;<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"362\" height=\"75\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image14.jpg\" alt=\"\" class=\"wp-image-9527\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image14.jpg 362w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image14-300x62.jpg 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image14-270x56.jpg 270w\" sizes=\"(max-width: 362px) 100vw, 362px\" \/><\/figure>\n\n\n\n<p>As a result of running the command, the restored script is saved to a file named&nbsp;<strong>script.au3.<\/strong> Besides, all the associated files were detected and saved.&nbsp;<\/p>\n\n\n\n<p>Now it\u2019s possible to analyze the script&#8217;s actions by opening it in a text editor.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"800\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image15-1024x800.jpg\" alt=\"\" class=\"wp-image-9528\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image15-1024x800.jpg 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image15-300x234.jpg 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image15-768x600.jpg 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image15-370x289.jpg 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image15-270x211.jpg 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image15-385x300.jpg 385w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image15-740x578.jpg 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image15.jpg 1101w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>In most cases, the scripts are also obfuscated and will require more in-depth analysis<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>In this example, we see the execution of&nbsp;<strong>CL_Debug_Log.txt<\/strong>&nbsp;with specific parameters.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"88\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image16-1024x88.jpg\" alt=\"\" class=\"wp-image-9529\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image16-1024x88.jpg 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image16-300x26.jpg 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image16-768x66.jpg 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image16-1536x132.jpg 1536w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image16-370x32.jpg 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image16-270x23.jpg 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image16-740x63.jpg 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image16.jpg 1587w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">The script drops to disk and modifies asacpiex.dll, saves it as a separate file, and then unpacks it<\/figcaption><\/figure><\/div>\n\n\n<p>Opening\u00a0<strong>CL_Debug_Log.txt<\/strong>\u00a0in\u00a0<strong>DIE<\/strong>\u00a0reveals that it is a standalone version of\u00a0<strong>7zip<\/strong>. \u00a0<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"675\" height=\"179\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image17.jpg\" alt=\"\" class=\"wp-image-9530\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image17.jpg 675w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image17-300x80.jpg 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image17-370x98.jpg 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image17-270x72.jpg 270w\" sizes=\"(max-width: 675px) 100vw, 675px\" \/><figcaption class=\"wp-element-caption\"><em>The&nbsp;<\/em><strong><em>VS_VERSION_INFO<\/em><\/strong><em>&nbsp;can be spoofed, but in this case, all evidence suggests that this file is an archiver<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>In this way, the malware unpacks the files necessary for its operation.&nbsp;In addition, the script contains checks for execution in a virtual environment.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"37\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image18-1024x37.jpg\" alt=\"\" class=\"wp-image-9531\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image18-1024x37.jpg 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image18-300x11.jpg 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image18-768x28.jpg 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image18-370x14.jpg 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image18-270x10.jpg 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image18-740x27.jpg 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image18.jpg 1177w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>The script checks information about graphic adapters in the system<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>It also includes checks for the presence of antivirus software.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"757\" height=\"798\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image19.jpg\" alt=\"\" class=\"wp-image-9533\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image19.jpg 757w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image19-285x300.jpg 285w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image19-370x390.jpg 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image19-270x285.jpg 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image19-740x780.jpg 740w\" sizes=\"(max-width: 757px) 100vw, 757px\" \/><figcaption class=\"wp-element-caption\"><em>The script checks running processes for names that match popular antivirus solutions<\/em><\/figcaption><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">NetReactor&nbsp;<\/h2>\n\n\n\n<p>NetReactor is a packer and obfuscator for applications written in&nbsp;<strong>.NET<\/strong>.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Supports code virtualization.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Files and libraries are not saved to disk but are loaded directly into memory.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Changes the structure of the code, making analysis more difficult.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Most files can be successfully unpacked using&nbsp;<strong><a href=\"https:\/\/github.com\/SychicBoy\/NETReactorSlayer\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">NetReactorSlayer<\/a><\/strong>, but for the best results,&nbsp;<strong>dynamic unpacking<\/strong>&nbsp;is recommended. This method executes the code within the operating system, allowing system functions to be called as needed for a more accurate unpacking process.&nbsp;<\/p>\n\n\n\n<p>Let&#8217;s look at an <a href=\"https:\/\/app.any.run\/tasks\/ce36d275-a23b-4b1c-99cc-642727376458\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">example<\/a> with the&nbsp;<strong>PureHVNC payload<\/strong>.<\/p>\n\n\n\n<p>Next, run the analysis session using&nbsp;<strong>dnSpy<\/strong>&nbsp;and&nbsp;<strong>NetReactorSlayer<\/strong>. &nbsp;<\/p>\n\n\n\n<p><strong><a href=\"https:\/\/github.com\/dnSpy\/dnSpy\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">dnSpy<\/a><\/strong>&nbsp;is no longer maintained; however, you can download a <a href=\"https:\/\/github.com\/dnSpyEx\/dnSpy\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">forked version<\/a>.&nbsp;<\/p>\n\n\n\n<p>Then, open the sample in&nbsp;<strong>dnSpy<\/strong>.&nbsp;<\/p>\n\n\n\n<p>Before processing, you can see numerous&nbsp;<strong>namespaces<\/strong>.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"333\" height=\"815\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6f.png\" alt=\"\" class=\"wp-image-9535\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6f.png 333w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6f-123x300.png 123w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image6f-270x661.png 270w\" sizes=\"(max-width: 333px) 100vw, 333px\" \/><figcaption class=\"wp-element-caption\"><em>Multiple namespaces are visible<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>Let\u2019s locate the configuration class.&nbsp;<\/p>\n\n\n\n<p>Open&nbsp;<strong>Type References<\/strong>&nbsp;and locate the&nbsp;<strong>IPAddress<\/strong>&nbsp;class.&nbsp;<\/p>\n\n\n\n<p>Right-click on it and select&nbsp;<strong>Analyze<\/strong>.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"511\" height=\"437\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image70.png\" alt=\"\" class=\"wp-image-9536\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image70.png 511w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image70-300x257.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image70-370x316.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image70-270x231.png 270w\" sizes=\"(max-width: 511px) 100vw, 511px\" \/><\/figure><\/div>\n\n\n<p>In the opened window, click on&nbsp;<strong>Used by<\/strong>&nbsp;to find the method where this class is used.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"850\" height=\"313\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image71.png\" alt=\"\" class=\"wp-image-9537\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image71.png 850w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image71-300x110.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image71-768x283.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image71-370x136.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image71-270x99.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image71-740x272.png 740w\" sizes=\"(max-width: 850px) 100vw, 850px\" \/><figcaption class=\"wp-element-caption\"><em>The obfuscated code<\/em><\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"354\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image72-1024x354.png\" alt=\"\" class=\"wp-image-9539\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image72-1024x354.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image72-300x104.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image72-768x265.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image72-370x128.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image72-270x93.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image72-740x256.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image72.png 1306w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>We see&nbsp;presence of <\/em><strong><em>goto <\/em><\/strong><em>and labels scattered throughout the code to confuse the execution flow<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>Now, open&nbsp;<strong>NetReactorSlayer<\/strong>&nbsp;and select the sample.&nbsp;<\/p>\n\n\n\n<p>There are multiple settings available; the default settings work well for this purpose.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"570\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image73-1024x570.png\" alt=\"\" class=\"wp-image-9540\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image73-1024x570.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image73-300x167.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image73-768x427.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image73-370x206.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image73-270x150.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image73-740x412.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image73.png 1387w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Click&nbsp;<strong>Start Deobfuscation<\/strong>&nbsp;and wait for the process to complete.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"564\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image74-1024x564.png\" alt=\"\" class=\"wp-image-9542\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image74-1024x564.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image74-300x165.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image74-768x423.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image74-370x204.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image74-270x149.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image74-740x408.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image74.png 1396w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The program decrypts strings, simplifies the code, and even attempts to remove virtualization.&nbsp;<\/p>\n\n\n\n<p>The file is saved with the suffix&nbsp;<strong>_Slayed<\/strong>.&nbsp;<\/p>\n\n\n\n<p>Now, open the received file in&nbsp;<strong>dnSpy<\/strong>. As a result, the unnecessary namespaces have been removed.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"332\" height=\"349\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image75.png\" alt=\"\" class=\"wp-image-9543\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image75.png 332w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image75-285x300.png 285w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image75-270x284.png 270w\" sizes=\"(max-width: 332px) 100vw, 332px\" \/><figcaption class=\"wp-element-caption\"><em>No excessive namespaces<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>The classes have been renamed too.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"348\" height=\"825\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image76.png\" alt=\"\" class=\"wp-image-9544\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image76.png 348w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image76-127x300.png 127w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image76-270x640.png 270w\" sizes=\"(max-width: 348px) 100vw, 348px\" \/><figcaption class=\"wp-element-caption\"><em>Renamed classes<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>Next, let\u2019s look for the usage of&nbsp;<strong>IPAddress<\/strong>&nbsp;as well.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"505\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image77-1024x505.png\" alt=\"\" class=\"wp-image-9545\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image77-1024x505.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image77-300x148.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image77-768x379.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image77-370x183.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image77-270x133.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image77-740x365.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image77.png 1334w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Now, the&nbsp;<\/em><strong><em>goto statements<\/em><\/strong><em>&nbsp;are positioned appropriately, and the labels are no longer scattered <\/em><\/figcaption><\/figure><\/div>\n\n\n<p>The lengthy class names have been shortened, and the fields have been renamed according to their respective values.&nbsp;The code has become easier to analyze, and string literals are now included.&nbsp;<\/p>\n\n\n\n<p>Often, in addition to being packed, malware is stored in an encrypted form within a special loader (crypter).&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/app.any.run\/tasks\/899f779b-30cf-424b-9355-10f43d06dd47\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">This analysis<\/a> demonstrates the process of extracting the payload using&nbsp;<strong>dnSpy<\/strong>.&nbsp;<\/p>\n\n\n\n<p>After execution, the crypter decrypts the payload and performs an injection into the target process.&nbsp;<\/p>\n\n\n\n<p>With the help of <strong>dnSpy<\/strong>, let&#8217;s attach the debugger to the process. To do this, go to the&nbsp;<strong>Debug<\/strong>&nbsp;tab and click on&nbsp;<strong>Attach to Process<\/strong>.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"578\" height=\"199\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image78.png\" alt=\"\" class=\"wp-image-9547\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image78.png 578w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image78-300x103.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image78-370x127.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image78-270x93.png 270w\" sizes=\"(max-width: 578px) 100vw, 578px\" \/><figcaption class=\"wp-element-caption\"><em>Click Attack to Process<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>Then, choose the process you want.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"607\" height=\"119\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image79.png\" alt=\"\" class=\"wp-image-9548\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image79.png 607w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image79-300x59.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image79-370x73.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image79-270x53.png 270w\" sizes=\"(max-width: 607px) 100vw, 607px\" \/><figcaption class=\"wp-element-caption\">Pick the process of your interest<\/figcaption><\/figure><\/div>\n\n\n<p>Note that to debug 32-bit processes, you should run&nbsp;<strong>dnSpy x86<\/strong>, and for 64-bit processes, use&nbsp;<strong>dnSpy x64<\/strong>.&nbsp;<\/p>\n\n\n\n<p>Pause the process and open the&nbsp;<strong>Modules<\/strong>&nbsp;window.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"623\" height=\"384\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7a.png\" alt=\"\" class=\"wp-image-9549\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7a.png 623w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7a-300x185.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7a-370x228.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7a-270x166.png 270w\" sizes=\"(max-width: 623px) 100vw, 623px\" \/><figcaption class=\"wp-element-caption\"><em>Click <strong>Modules<\/strong><\/em><\/figcaption><\/figure><\/div>\n\n\n<p>Right-click on the main module, then select&nbsp;<strong>Open Module from Memory<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"880\" height=\"413\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7b.png\" alt=\"\" class=\"wp-image-9550\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7b.png 880w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7b-300x141.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7b-768x360.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7b-370x174.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7b-270x127.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7b-740x347.png 740w\" sizes=\"(max-width: 880px) 100vw, 880px\" \/><figcaption class=\"wp-element-caption\"><em>We see that&nbsp;<strong>InstallUtil<\/strong>&nbsp;has been replaced with&nbsp;<strong>EMPRESA992<\/strong><\/em><\/figcaption><\/figure><\/div>\n\n\n<p>After opening the module, obfuscation can be observed.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1002\" height=\"488\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7c.png\" alt=\"\" class=\"wp-image-9551\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7c.png 1002w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7c-300x146.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7c-768x374.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7c-370x180.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7c-270x131.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7c-740x360.png 740w\" sizes=\"(max-width: 1002px) 100vw, 1002px\" \/><\/figure><\/div>\n\n\n<p>Click&nbsp;<strong>Save Module<\/strong>&nbsp;and transfer the saved file to the console version of&nbsp;<strong>NetReactorSlayer<\/strong>.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"749\" height=\"314\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7d.png\" alt=\"\" class=\"wp-image-9552\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7d.png 749w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7d-300x126.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7d-370x155.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7d-270x113.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7d-740x310.png 740w\" sizes=\"(max-width: 749px) 100vw, 749px\" \/><\/figure><\/div>\n\n\n<p>As a result, we get the following output.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"390\" height=\"244\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7e.png\" alt=\"\" class=\"wp-image-9553\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7e.png 390w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7e-300x188.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7e-370x231.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7e-270x169.png 270w\" sizes=\"(max-width: 390px) 100vw, 390px\" \/><\/figure><\/div>\n\n\n<p><strong>NetReactorSlayer<\/strong>&nbsp;corrected the entry point, removed unnecessary code, and saved result to disk as <strong>InstallUtil_Slayed.exe<\/strong>.&nbsp;<\/p>\n\n\n\n<p>The associated library&nbsp;<strong>MessagePack.dll <\/strong>has been saved as a separate file.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"97\" height=\"85\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image7f.png\" alt=\"\" class=\"wp-image-9554\"\/><figcaption class=\"wp-element-caption\"><em>MessagePack.dll<\/em><strong><em> <\/em><\/strong><\/figcaption><\/figure><\/div>\n\n\n<p>Now, the payload&nbsp;<strong>InstallUtil_Slayed.exe<\/strong> can be run separately and analyzed through debugging (<a href=\"https:\/\/app.any.run\/tasks\/cbe5fbde-9b7e-4d1c-88db-b86956f91484\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">See sample analysis<\/a>).&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">SmartAssembly and Other .NET Packers&nbsp;<\/h2>\n\n\n\n<p>Another popular packer for .NET applications is&nbsp;<strong>SmartAssembly<\/strong>.&nbsp;<\/p>\n\n\n\n<p>Check out <a href=\"https:\/\/app.any.run\/tasks\/5d1ddb2e-4da3-40ae-8c22-c62078c45cd7\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">this example<\/a>.<\/p>\n\n\n\n<p>Besides obfuscating the code (which makes the execution order unclear and renames identifiers to unreadable terms), SmartAssembly complicates analysis with a large number of delegates that are resolved at runtime, including those used for decrypting strings.&nbsp;<\/p>\n\n\n\n<p>Let\u2019s open the sample in\u00a0<strong>DIE<\/strong>\u00a0and confirm the presence of the protector. \u00a0<\/p>\n\n\n\n<p>We can see how DIE detects Protector Smart Assembly.\u00a0<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"611\" height=\"128\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image80.png\" alt=\"\" class=\"wp-image-9557\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image80.png 611w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image80-300x63.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image80-370x78.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image80-270x57.png 270w\" sizes=\"(max-width: 611px) 100vw, 611px\" \/><figcaption class=\"wp-element-caption\"><em>Smart Assembly detected by DIE<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>In the&nbsp;<strong>US<\/strong>&nbsp;(User Strings) tab, there is an abnormally small number of strings.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"129\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image81-1024x129.png\" alt=\"\" class=\"wp-image-9558\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image81-1024x129.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image81-300x38.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image81-768x97.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image81-370x47.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image81-270x34.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image81-740x93.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image81.png 1046w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Let\u2019s switch to&nbsp;<strong>dnSpy<\/strong>.&nbsp;<\/p>\n\n\n\n<p>Upon opening the sample, you will immediately notice an attribute indicating the presence of the&nbsp;<strong>SmartAssembly<\/strong> protector.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"630\" height=\"150\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image82.png\" alt=\"\" class=\"wp-image-9559\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image82.png 630w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image82-300x71.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image82-370x88.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image82-270x64.png 270w\" sizes=\"(max-width: 630px) 100vw, 630px\" \/><\/figure><\/div>\n\n\n<p>You will also notice the characteristic namespaces associated with&nbsp;<strong>SmartAssembly<\/strong>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image83.png\" alt=\"\" class=\"wp-image-9560\" width=\"446\" height=\"465\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image83.png 445w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image83-288x300.png 288w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image83-370x386.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image83-270x282.png 270w\" sizes=\"(max-width: 446px) 100vw, 446px\" \/><\/figure><\/div>\n\n\n<p>These artifacts are quite common among protectors, particularly in&nbsp;<strong>.NET<\/strong>&nbsp;applications.&nbsp;<\/p>\n\n\n\n<p>Next, click on&nbsp;<strong>Go to Entry Point<\/strong>.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"479\" height=\"503\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image84.png\" alt=\"\" class=\"wp-image-9561\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image84.png 479w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image84-286x300.png 286w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image84-370x389.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image84-270x284.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image84-285x300.png 285w\" sizes=\"(max-width: 479px) 100vw, 479px\" \/><\/figure><\/div>\n\n\n<p>In this case, while the code (control flow) is not obfuscated, the strings are obtained through a delegate call with a numeric argument.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"838\" height=\"642\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image85.png\" alt=\"\" class=\"wp-image-9562\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image85.png 838w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image85-300x230.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image85-768x588.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image85-370x283.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image85-270x207.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image85-740x567.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image85-80x60.png 80w\" sizes=\"(max-width: 838px) 100vw, 838px\" \/><figcaption class=\"wp-element-caption\"><em>We see a call to&nbsp;<\/em><strong><em>Console.WriteLine<\/em><\/strong><em>&nbsp;that displays the result from a delegate using a numeric argument.<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>Earlier, we used&nbsp;<strong>NetReactorSlayer<\/strong>&nbsp;to remove the protector.&nbsp;<\/p>\n\n\n\n<p>While it is a specialized tool, it can also be used for general purposes, such as simplifying code, though with some limitations.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"564\" height=\"351\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image86.png\" alt=\"\" class=\"wp-image-9564\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image86.png 564w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image86-300x187.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image86-370x230.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image86-270x168.png 270w\" sizes=\"(max-width: 564px) 100vw, 564px\" \/><\/figure><\/div>\n\n\n<p>Let\u2019s try to simplify the code using&nbsp;<strong>NetReactorSlayer<\/strong>.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"337\" height=\"370\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image87.png\" alt=\"\" class=\"wp-image-9565\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image87.png 337w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image87-273x300.png 273w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image87-270x296.png 270w\" sizes=\"(max-width: 337px) 100vw, 337px\" \/><\/figure>\n\n\n\n<p>While this tool simplified the code readability, it was unable to decrypt the strings.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"698\" height=\"653\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image88.png\" alt=\"\" class=\"wp-image-9566\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image88.png 698w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image88-300x281.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image88-370x346.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image88-270x253.png 270w\" sizes=\"(max-width: 698px) 100vw, 698px\" \/><figcaption class=\"wp-element-caption\"><em>In the simplified code, the purpose of the delegates used in&nbsp;<\/em><strong><em>Console.WriteLine<\/em><\/strong><em>&nbsp;is clear<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>Now, let&#8217;s use another tool\u2014<a href=\"https:\/\/github.com\/de4dot\/de4dot\" target=\"_blank\" rel=\"noreferrer noopener nofollow\"><strong>de4dot<\/strong><\/a>\u2014which is also part of what&nbsp;<strong>NetReactorSlayer<\/strong>&nbsp;uses for code simplification. You can also utilize <a href=\"https:\/\/github.com\/ViRb3\/de4dot-cex\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">de4dot-cex<\/a>, which is the improved version of de4dot.&nbsp;<\/p>\n\n\n\n<p>For this case, we will use&nbsp;<strong>de4dot<\/strong>&nbsp;to remove&nbsp;<strong>SmartAssembly<\/strong>.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"633\" height=\"150\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image1a.jpg\" alt=\"\" class=\"wp-image-9567\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image1a.jpg 633w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image1a-300x71.jpg 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image1a-370x88.jpg 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image1a-270x64.jpg 270w\" sizes=\"(max-width: 633px) 100vw, 633px\" \/><\/figure><\/div>\n\n\n<p>As a result, the file is processed in a similar way.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"348\" height=\"439\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image89.png\" alt=\"\" class=\"wp-image-9568\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image89.png 348w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image89-238x300.png 238w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image89-270x341.png 270w\" sizes=\"(max-width: 348px) 100vw, 348px\" \/><figcaption class=\"wp-element-caption\"><strong><em>de4dot<\/em><\/strong><em>&nbsp;and&nbsp;<\/em><strong><em>NetReactor<\/em><\/strong><em>&nbsp;simplify names in the same way<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>However, the string encryption has also been removed.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"640\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image8a.png\" alt=\"\" class=\"wp-image-9569\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image8a.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image8a-300x250.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image8a-370x308.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image8a-270x225.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image8a-740x617.png 740w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure><\/div>\n\n\n<p>The&nbsp;<strong>GetString<\/strong>&nbsp;delegates have been replaced with string literals.&nbsp;<\/p>\n\n\n\n<p>In\u00a0<strong>DIE<\/strong>, you can view all the decrypted strings.\u00a0<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"461\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image8b-1024x461.png\" alt=\"\" class=\"wp-image-9570\" srcset=\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image8b-1024x461.png 1024w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image8b-300x135.png 300w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image8b-768x346.png 768w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image8b-370x167.png 370w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image8b-270x122.png 270w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image8b-740x333.png 740w, https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2024\/10\/image8b.png 1042w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>The processed file often retains functionality and can make runtime <a href=\"https:\/\/app.any.run\/tasks\/009b5e1b-9f5a-4cdf-926c-f790cfb4d5fd\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">analysis<\/a> easier.&nbsp;<\/p>\n\n\n\n<p><strong>de4dot<\/strong>&nbsp;works with many other protectors and can simplify code analysis.&nbsp;<\/p>\n\n\n\n<p>If&nbsp;<strong>de4dot<\/strong>&nbsp;doesn\u2019t succeed, try&nbsp;using <strong>NetReactorSlayer<\/strong>, which may be more effective at further simplifying complex code.&nbsp;<\/p>\n\n\n\n<p>However, for older versions of&nbsp;<strong>NetReactor<\/strong>&nbsp;(below 6.0),&nbsp;<strong>de4dot<\/strong>&nbsp;remains the preferred option.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Themida, VMProtect&nbsp;<\/h2>\n\n\n\n<p>Themida and VMProtect are packers and obfuscators for applications that support virtualization and code mutation.&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Virtualization<\/strong>: This feature protects the malware code at runtime, not just in static analysis.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Extracting Samples<\/strong>: In most cases, virtualization is not applied, allowing an unpacked sample to be extracted from memory, though it may be partially modified.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Static Unpacking<\/strong>: This is generally unlikely, as these commercial packers adapt quickly to new analysis methods.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>For a more detailed analysis, refer to our article:&nbsp;<a href=\"https:\/\/any.run\/cybersecurity-blog\/vmprotect-themida-malware-analysis\/\" target=\"_blank\" rel=\"noreferrer noopener\">VMProtect and Themida Malware Analysis<\/a>.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">About ANY.RUN&nbsp;&nbsp;<\/h2>\n\n\n\n<p>ANY.RUN helps more than 500,000 cybersecurity professionals worldwide. Our&nbsp;<a href=\"https:\/\/any.run\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktolanding\" target=\"_blank\" rel=\"noreferrer noopener\">interactive sandbox<\/a>&nbsp;simplifies malware analysis of threats that target both Windows and&nbsp;<a href=\"https:\/\/any.run\/cybersecurity-blog\/linux-malware-analysis-cases\/\" target=\"_blank\" rel=\"noreferrer noopener\">Linux<\/a>&nbsp;systems. Our threat intelligence products,&nbsp;<a href=\"https:\/\/any.run\/cybersecurity-blog\/introducing-any-run-threat-intelligence-lookup\/\" target=\"_blank\" rel=\"noreferrer noopener\">TI Lookup<\/a>,&nbsp;<a href=\"https:\/\/any.run\/cybersecurity-blog\/yara-search\/\" target=\"_blank\" rel=\"noreferrer noopener\">YARA Search<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/any.run\/cybersecurity-blog\/ti-feeds-integration\/\" target=\"_blank\" rel=\"noreferrer noopener\">Feeds<\/a>, help you find&nbsp;<a href=\"https:\/\/any.run\/cybersecurity-blog\/indicators-of-compromise\/\" target=\"_blank\" rel=\"noreferrer noopener\">IOCs<\/a>&nbsp;or files to learn more about the threats and respond to incidents faster.&nbsp;&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>With ANY.RUN you can:<\/strong>&nbsp;<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Detect malware in seconds.&nbsp;<\/li>\n\n\n\n<li>Interact with samples in real time.&nbsp;<\/li>\n\n\n\n<li>Save time and money on sandbox setup and maintenance&nbsp;<\/li>\n\n\n\n<li>Record and study all aspects of malware behavior.&nbsp;<\/li>\n\n\n\n<li>Collaborate with your team&nbsp;<\/li>\n\n\n\n<li>Scale as you need.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p><a href=\"https:\/\/any.run\/demo\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=packers_and_crypters&amp;utm_term=301024&amp;utm_content=linktodemo\" target=\"_blank\" rel=\"noreferrer noopener\">Request free trial \u2192<\/a>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we\u2019ll explore the most common types of protectors\u2014packers and crypters\u2014along with simple ways to detect and remove them. &nbsp; We\u2019ll also introduce some useful tools to simplify the process and improve your malware analysis skills.&nbsp; What Are Protectors and What Types Are There?&nbsp; Protectors are tools designed to complicate code analysis, making [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":9593,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[57,10,15,34,40],"class_list":["post-9475","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-malware-analysis","tag-anyrun","tag-cybersecurity","tag-malware","tag-malware-analysis","tag-malware-behavior"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.10 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Packers and Crypters in Malware and How to Remove Them - ANY.RUN&#039;s Cybersecurity Blog<\/title>\n<meta name=\"description\" content=\"Explore the most common types of protectors\u2014packers and crypters\u2014along with simple ways to detect and remove them. \u00a0\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ANY.RUN\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"34 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/\"},\"author\":{\"name\":\"ANY.RUN\",\"@id\":\"https:\/\/any.run\/\"},\"headline\":\"Packers and Crypters in Malware and How to Remove Them\",\"datePublished\":\"2024-10-30T12:22:05+00:00\",\"dateModified\":\"2025-07-17T08:25:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/\"},\"wordCount\":4375,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/any.run\/\"},\"keywords\":[\"ANYRUN\",\"cybersecurity\",\"malware\",\"malware analysis\",\"malware behavior\"],\"articleSection\":[\"Malware Analysis\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/\",\"url\":\"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/\",\"name\":\"Packers and Crypters in Malware and How to Remove Them - ANY.RUN&#039;s Cybersecurity Blog\",\"isPartOf\":{\"@id\":\"https:\/\/any.run\/\"},\"datePublished\":\"2024-10-30T12:22:05+00:00\",\"dateModified\":\"2025-07-17T08:25:31+00:00\",\"description\":\"Explore the most common types of protectors\u2014packers and crypters\u2014along with simple ways to detect and remove them. \u00a0\",\"breadcrumb\":{\"@id\":\"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/any.run\/cybersecurity-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Malware Analysis\",\"item\":\"https:\/\/any.run\/cybersecurity-blog\/category\/malware-analysis\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Packers and Crypters in Malware and How to Remove Them\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/any.run\/\",\"url\":\"https:\/\/any.run\/\",\"name\":\"ANY.RUN&#039;s Cybersecurity Blog\",\"description\":\"Cybersecurity Blog covers topics for experienced professionals as well as for those new to it.\",\"publisher\":{\"@id\":\"https:\/\/any.run\/\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/any.run\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/any.run\/\",\"name\":\"ANY.RUN\",\"url\":\"https:\/\/any.run\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/any.run\/\",\"url\":\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2020\/08\/ANYRUN-Icon.svg\",\"contentUrl\":\"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2020\/08\/ANYRUN-Icon.svg\",\"width\":1,\"height\":1,\"caption\":\"ANY.RUN\"},\"image\":{\"@id\":\"https:\/\/any.run\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/www.any.run\/\",\"https:\/\/twitter.com\/anyrun_app\",\"https:\/\/www.linkedin.com\/company\/30692044\",\"https:\/\/www.youtube.com\/channel\/UCOgCPho7lzmH7m6fPNlukrQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/any.run\/\",\"name\":\"ANY.RUN\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/any.run\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c4ce3a6c672056b4a8cd6b0110782215?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c4ce3a6c672056b4a8cd6b0110782215?s=96&d=mm&r=g\",\"caption\":\"ANY.RUN\"},\"url\":\"https:\/\/any.run\/cybersecurity-blog\/author\/a-bespalova\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Packers and Crypters in Malware and How to Remove Them - ANY.RUN&#039;s Cybersecurity Blog","description":"Explore the most common types of protectors\u2014packers and crypters\u2014along with simple ways to detect and remove them. \u00a0","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/","twitter_misc":{"Written by":"ANY.RUN","Est. reading time":"34 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/#article","isPartOf":{"@id":"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/"},"author":{"name":"ANY.RUN","@id":"https:\/\/any.run\/"},"headline":"Packers and Crypters in Malware and How to Remove Them","datePublished":"2024-10-30T12:22:05+00:00","dateModified":"2025-07-17T08:25:31+00:00","mainEntityOfPage":{"@id":"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/"},"wordCount":4375,"commentCount":0,"publisher":{"@id":"https:\/\/any.run\/"},"keywords":["ANYRUN","cybersecurity","malware","malware analysis","malware behavior"],"articleSection":["Malware Analysis"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/","url":"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/","name":"Packers and Crypters in Malware and How to Remove Them - ANY.RUN&#039;s Cybersecurity Blog","isPartOf":{"@id":"https:\/\/any.run\/"},"datePublished":"2024-10-30T12:22:05+00:00","dateModified":"2025-07-17T08:25:31+00:00","description":"Explore the most common types of protectors\u2014packers and crypters\u2014along with simple ways to detect and remove them. \u00a0","breadcrumb":{"@id":"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/any.run\/cybersecurity-blog\/packers-and-crypters-in-malware\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/any.run\/cybersecurity-blog\/"},{"@type":"ListItem","position":2,"name":"Malware Analysis","item":"https:\/\/any.run\/cybersecurity-blog\/category\/malware-analysis\/"},{"@type":"ListItem","position":3,"name":"Packers and Crypters in Malware and How to Remove Them"}]},{"@type":"WebSite","@id":"https:\/\/any.run\/","url":"https:\/\/any.run\/","name":"ANY.RUN&#039;s Cybersecurity Blog","description":"Cybersecurity Blog covers topics for experienced professionals as well as for those new to it.","publisher":{"@id":"https:\/\/any.run\/"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/any.run\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/any.run\/","name":"ANY.RUN","url":"https:\/\/any.run\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/any.run\/","url":"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2020\/08\/ANYRUN-Icon.svg","contentUrl":"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2020\/08\/ANYRUN-Icon.svg","width":1,"height":1,"caption":"ANY.RUN"},"image":{"@id":"https:\/\/any.run\/"},"sameAs":["https:\/\/www.facebook.com\/www.any.run\/","https:\/\/twitter.com\/anyrun_app","https:\/\/www.linkedin.com\/company\/30692044","https:\/\/www.youtube.com\/channel\/UCOgCPho7lzmH7m6fPNlukrQ"]},{"@type":"Person","@id":"https:\/\/any.run\/","name":"ANY.RUN","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/any.run\/","url":"https:\/\/secure.gravatar.com\/avatar\/c4ce3a6c672056b4a8cd6b0110782215?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c4ce3a6c672056b4a8cd6b0110782215?s=96&d=mm&r=g","caption":"ANY.RUN"},"url":"https:\/\/any.run\/cybersecurity-blog\/author\/a-bespalova\/"}]}},"_links":{"self":[{"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/posts\/9475"}],"collection":[{"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/comments?post=9475"}],"version-history":[{"count":32,"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/posts\/9475\/revisions"}],"predecessor-version":[{"id":9596,"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/posts\/9475\/revisions\/9596"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/media\/9593"}],"wp:attachment":[{"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/media?parent=9475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/categories?post=9475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/any.run\/cybersecurity-blog\/wp-json\/wp\/v2\/tags?post=9475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}