<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: sumeshi_kun</title>
    <description>The latest articles on DEV Community by sumeshi_kun (@sum3sh1).</description>
    <link>https://dev.to/sum3sh1</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F845739%2Fda4c7fd1-5b9d-4c5d-8953-777427002f1a.jpg</url>
      <title>DEV Community: sumeshi_kun</title>
      <link>https://dev.to/sum3sh1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sum3sh1"/>
    <language>en</language>
    <item>
      <title>Driving Ghidra Static Analysis with Local LLMs (LM Studio + GhidraMCP Setup)</title>
      <dc:creator>sumeshi_kun</dc:creator>
      <pubDate>Mon, 18 Aug 2025 13:50:10 +0000</pubDate>
      <link>https://dev.to/sum3sh1/driving-ghidra-static-analysis-with-local-llms-lm-studio-ghidramcp-setup-ka9</link>
      <guid>https://dev.to/sum3sh1/driving-ghidra-static-analysis-with-local-llms-lm-studio-ghidramcp-setup-ka9</guid>
      <description>&lt;h1&gt;
  
  
  Overview
&lt;/h1&gt;

&lt;p&gt;I wanted to connect the &lt;strong&gt;Ghidra&lt;/strong&gt; static analysis tool to a &lt;strong&gt;local LLM&lt;/strong&gt;.&lt;br&gt;
Since I prefer not to run the analysis environment directly on the host OS, I set up a &lt;strong&gt;dedicated VM for Ghidra&lt;/strong&gt; and kept &lt;strong&gt;only the MCP host (LM Studio)&lt;/strong&gt; on the host machine.&lt;/p&gt;

&lt;p&gt;Here’s the rough architecture:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foi2a1wb9hovfcpokizdc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foi2a1wb9hovfcpokizdc.png" alt="arch" width="800" height="322"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Environment
&lt;/h1&gt;

&lt;p&gt;A machine with mid-range specs, good enough to run fairly recent games. You can build it for around \$800–900 USD.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CPU: 12th Gen Intel Core i5-12400F
GPU: NVIDIA GeForce RTX 3060
RAM: 32GB
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Preparation Steps
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Install &lt;strong&gt;VMware Workstation&lt;/strong&gt; on the host OS.&lt;/li&gt;
&lt;li&gt;Set up a &lt;strong&gt;Windows VM&lt;/strong&gt; (the analysis environment).&lt;/li&gt;
&lt;li&gt;Install &lt;strong&gt;JDK&lt;/strong&gt; in the VM (required for Ghidra).&lt;/li&gt;
&lt;li&gt;Install &lt;strong&gt;Python 3.x&lt;/strong&gt; in the VM (for GhidraMCP).&lt;/li&gt;
&lt;li&gt;Inside the VM, run &lt;code&gt;pip install mcp requests&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Open &lt;strong&gt;TCP/8081&lt;/strong&gt; in the VM’s Windows Firewall.&lt;/li&gt;
&lt;li&gt;Configure the VM’s network to &lt;strong&gt;Host-only&lt;/strong&gt; mode.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Setting Up the Guest OS
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Download GhidraMCP
&lt;/h3&gt;

&lt;p&gt;Download the latest release. I used &lt;strong&gt;GhidraMCP 1.4&lt;/strong&gt;:&lt;br&gt;
&lt;a href="https://github.com/LaurieWired/GhidraMCP/releases" rel="noopener noreferrer"&gt;https://github.com/LaurieWired/GhidraMCP/releases&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The release notes state:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Add support for Ghidra 11.3.2&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So make sure the Ghidra version matches. Unzip after downloading.&lt;/p&gt;
&lt;h3&gt;
  
  
  Download Ghidra
&lt;/h3&gt;

&lt;p&gt;Get version &lt;strong&gt;11.3.2&lt;/strong&gt; here:&lt;br&gt;
&lt;a href="https://github.com/NationalSecurityAgency/ghidra/releases" rel="noopener noreferrer"&gt;https://github.com/NationalSecurityAgency/ghidra/releases&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unzip it as well.&lt;/p&gt;
&lt;h3&gt;
  
  
  Install the GhidraMCP Extension
&lt;/h3&gt;

&lt;p&gt;Follow the instructions in the README:&lt;br&gt;
&lt;a href="https://github.com/LaurieWired/GhidraMCP/releases" rel="noopener noreferrer"&gt;https://github.com/LaurieWired/GhidraMCP/releases&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Run Ghidra&lt;br&gt;
Go to &lt;strong&gt;File → Install Extensions&lt;/strong&gt;&lt;br&gt;
Click &lt;strong&gt;+&lt;/strong&gt; and select the &lt;code&gt;GhidraMCP-1-2.zip&lt;/code&gt; (or whichever version you use)&lt;br&gt;
Restart Ghidra&lt;br&gt;
Enable &lt;strong&gt;GhidraMCPPlugin&lt;/strong&gt; at &lt;strong&gt;File → Configure → Developer&lt;/strong&gt;&lt;br&gt;
(Optional) Configure port settings at &lt;strong&gt;Edit → Tool Options → GhidraMCP HTTP Server&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  Run &lt;code&gt;bridge_mcp_ghidra.py&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Open Command Prompt in the folder containing the script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;python bridge_mcp_ghidra.py --transport sse --mcp-host 0.0.0.0 --mcp-port 8081 --ghidra-server http://127.0.0.1:8080/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sample output:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Connecting to Ghidra server at http://127.0.0.1:8080/
Starting MCP server on http://0.0.0.0:8081/sse
Using transport: sse
INFO: Started server process [7908]
INFO: Waiting for application startup.
INFO: Application startup complete.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Preparing the Host OS
&lt;/h2&gt;

&lt;p&gt;Install &lt;strong&gt;LM Studio&lt;/strong&gt;: &lt;a href="https://lmstudio.ai/" rel="noopener noreferrer"&gt;https://lmstudio.ai/&lt;/a&gt;&lt;br&gt;
Setup is straightforward—just follow the installer.&lt;/p&gt;

&lt;p&gt;LM Studio is now &lt;strong&gt;free for commercial use&lt;/strong&gt;, which is a nice bonus.&lt;br&gt;
It suggested &lt;strong&gt;&lt;code&gt;gpt-oss-20b&lt;/code&gt;&lt;/strong&gt;, so I installed that model.&lt;/p&gt;
&lt;h3&gt;
  
  
  Edit &lt;code&gt;mcp.json&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpm720jafofb3x37pefhl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpm720jafofb3x37pefhl.png" alt="mcp" width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open &lt;strong&gt;Edit mcp.json&lt;/strong&gt; from the sidebar and configure it like this (replace with your VM’s IP from &lt;code&gt;ipconfig&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"ghidra"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"http://192.168.xxx.xxx:8081/sse"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After saving, enable &lt;strong&gt;GhidraMCP&lt;/strong&gt; in LM Studio.&lt;br&gt;
If successful, the tool list will appear like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx64359ylkkczn502oae6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx64359ylkkczn502oae6.png" alt="lm" width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If it fails, check host ↔ guest connectivity and firewall settings.&lt;/p&gt;


&lt;h1&gt;
  
  
  Analysis
&lt;/h1&gt;
&lt;h2&gt;
  
  
  Inside the Analysis VM
&lt;/h2&gt;

&lt;p&gt;I compiled a simple &lt;strong&gt;Hello World&lt;/strong&gt; program with tcc to generate an EXE:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;argc&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt; &lt;span class="n"&gt;argv&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Hello World.&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Import it into Ghidra as usual. A &lt;strong&gt;Non-Shared Project&lt;/strong&gt; works fine.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8rf0fio0dhjnqby9bemg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8rf0fio0dhjnqby9bemg.png" width="800" height="518"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  On the LM Studio Side
&lt;/h2&gt;

&lt;p&gt;Since MCP is configured, I tried sending some basic queries:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7nr7pv08x64jvrce9vr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7nr7pv08x64jvrce9vr.png" width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Approve tool usage when prompted. Example interaction:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;How does this binary look?
openai/gpt-oss-20b

list_strings
mcp/ghidra

list_functions
mcp/ghidra

Binary summary

Entry point: 00401038
Output string: "Hello World.\n"
DLLs used: msvcrt.dll → printf, exit, etc.
Main function: FUN_00401000 (calls printf)

Behavior
Starts at entry point (00401038), calls FUN_00401000,
prints "Hello World.\n", then exits.

Conclusion
A simple sample program. No malicious behavior detected.
Useful for learning/demo purposes but not an actual attack sample.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The results were surprisingly solid.&lt;/p&gt;




&lt;h1&gt;
  
  
  Closing Thoughts
&lt;/h1&gt;

&lt;p&gt;The setup was easy, and I was impressed by how capable a &lt;strong&gt;local LLM&lt;/strong&gt; can be when integrated with Ghidra.&lt;br&gt;
I’ve heard &lt;strong&gt;MacBook Pro runs this blazing fast&lt;/strong&gt;—I’m tempted to pick one up.&lt;/p&gt;

&lt;p&gt;That’s it!&lt;/p&gt;




&lt;p&gt;Original Post(Japanese): &lt;a href="https://zenn.dev/sum3sh1/articles/96be8503049432" rel="noopener noreferrer"&gt;https://zenn.dev/sum3sh1/articles/96be8503049432&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ghidra</category>
      <category>malware</category>
      <category>analysis</category>
      <category>llm</category>
    </item>
    <item>
      <title>How to Boot Windows from .E01 (EWF) Disk Images with Arsenal Image Mounter</title>
      <dc:creator>sumeshi_kun</dc:creator>
      <pubDate>Sat, 30 Nov 2024 06:16:24 +0000</pubDate>
      <link>https://dev.to/sum3sh1/booting-an-os-from-a-preserved-e01-ewf-disk-image-file-using-arsenal-image-mounter-cdf</link>
      <guid>https://dev.to/sum3sh1/booting-an-os-from-a-preserved-e01-ewf-disk-image-file-using-arsenal-image-mounter-cdf</guid>
      <description>&lt;h1&gt;
  
  
  Overview
&lt;/h1&gt;

&lt;p&gt;When performing disk forensics, I think it's often the case that the target disk is handled in .E01 format.&lt;/p&gt;

&lt;p&gt;Since it is somewhat compressed, the size becomes smaller, and it is easier to handle, so it has become the de facto standard in this industry. (Although I feel that there are many tools that do not support it.)&lt;/p&gt;

&lt;p&gt;Basically, I proceed with the analysis by collecting artifacts from this .E01 format file, but depending on the situation, there are times when I want to boot the OS and directly tinker with it.&lt;/p&gt;

&lt;p&gt;For example, when I want to actually run malware on the investigation target environment and observe its behavior, or when I want to run investigation tools (like &lt;a href="https://learn.microsoft.com/en-us/sysinternals/downloads/autoruns" rel="noopener noreferrer"&gt;Autoruns&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;I haven't tested it, but I think this method will generally work even if it's not an .E01 file.&lt;br&gt;&lt;br&gt;
For details, read the "Disk Image Support" section at the link below.&lt;br&gt;&lt;br&gt;
&lt;a href="https://arsenalrecon.com/arsenal-image-mounter-aim-walkthrough" rel="noopener noreferrer"&gt;https://arsenalrecon.com/arsenal-image-mounter-aim-walkthrough&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are paid tools specialized for such purposes, like VFC, but it is also possible to handle it by using the Free version of &lt;a href="https://arsenalrecon.com/products/arsenal-image-mounter" rel="noopener noreferrer"&gt;Arsenal Image Mounter&lt;/a&gt;, which is provided by Arsenal Recon. In addition, with the Professional version, it seems that mechanisms that allow you to start virtual disks more easily are available.&lt;/p&gt;

&lt;h1&gt;
  
  
  Operating Environment
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;VMware Workstation Pro 17.5.2&lt;br&gt;&lt;br&gt;
Arsenal Image Mounter 3.11.293&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Procedure
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Mounting the Disk
&lt;/h2&gt;

&lt;p&gt;After starting Arsenal Image Mounter, click &lt;strong&gt;Mount Disk Image&lt;/strong&gt; at the bottom left and select the .E01 file you want to boot.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft70rnryqqgkj3pexgx97.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft70rnryqqgkj3pexgx97.png" alt=" " width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You will be asked various things, but select &lt;strong&gt;Disk device, write temporary&lt;/strong&gt; at the top.&lt;br&gt;&lt;br&gt;
Also, select &lt;strong&gt;Specify alternate differencing file location&lt;/strong&gt; and save it in an appropriate place.&lt;/p&gt;

&lt;p&gt;By doing this, you can make changes without modifying the original E01 file, and extract the differences as a separate file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7msdjjcern3joanec4kg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7msdjjcern3joanec4kg.png" alt=" " width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, select &lt;strong&gt;Advanced &amp;gt; Offline Disk&lt;/strong&gt; from the top toolbar.&lt;br&gt;&lt;br&gt;
Then, I think the &lt;strong&gt;Online/Offline&lt;/strong&gt; column has become &lt;strong&gt;Offline&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff4hcra5rxf1b9fdgux3d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff4hcra5rxf1b9fdgux3d.png" alt=" " width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With this, you have mounted the .E01 file as a physical disk.&lt;/p&gt;

&lt;h2&gt;
  
  
  Booting with VMware Workstation
&lt;/h2&gt;

&lt;p&gt;When starting VMware Workstation, &lt;strong&gt;be sure to run it as administrator&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Otherwise, the disk mounting will fail.&lt;/p&gt;

&lt;p&gt;Create a new VM and select &lt;strong&gt;Custom (advanced)&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Basically, you can just keep clicking &lt;strong&gt;Next&lt;/strong&gt;, but I will note some points to be careful about.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft5w2y7ys3lpxi4rfquaz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft5w2y7ys3lpxi4rfquaz.png" alt=" " width="499" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;Firmware Type&lt;/strong&gt;, it depends on the settings of the .E01 file, so choose one intuitively.&lt;br&gt;&lt;br&gt;
If it doesn't boot, try changing the settings later.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3mqv2ka3zx2gyx11rimq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3mqv2ka3zx2gyx11rimq.png" alt=" " width="499" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For &lt;strong&gt;Network Connection&lt;/strong&gt;, be sure to select &lt;strong&gt;Do not use a network connection&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Otherwise, as soon as it boots, malware communications might go somewhere and cause a big problem.&lt;/p&gt;

&lt;p&gt;It's common (really) for incident responders to cause incidents themselves, so please be careful. When you gaze into the incident, the incident gazes into you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fna4nuxbje42b6jmpp4mh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fna4nuxbje42b6jmpp4mh.png" alt=" " width="499" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;Select a Disk&lt;/strong&gt;, check &lt;strong&gt;Use a physical disk&lt;/strong&gt; and select the mounted .E01.&lt;br&gt;&lt;br&gt;
If you don't know the disk number, check with &lt;strong&gt;diskpart&lt;/strong&gt; or &lt;strong&gt;Disk Management&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo45ef5rcuvw7ibfngfnp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo45ef5rcuvw7ibfngfnp.png" alt=" " width="499" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, after creating the VM and clicking the start button, it worked.&lt;br&gt;&lt;br&gt;
You can either unlock the password with effort, or politely ask the original owner.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftx9uoyfkf6316ff5amrt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftx9uoyfkf6316ff5amrt.png" alt=" " width="800" height="708"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Arsenal Image Mounter is a very useful tool.&lt;br&gt;&lt;br&gt;
In particular, being able to write-mount without modifying the original file is wonderful, and it's handy when you want to run antivirus software, so I think it's worth having one in every household.&lt;/p&gt;

&lt;p&gt;This article was translated by ChatGPT o1-preview.&lt;br&gt;
Original Post(Japanese): &lt;a href="https://zenn.dev/sum3sh1/articles/08fe13c70d5b24" rel="noopener noreferrer"&gt;https://zenn.dev/sum3sh1/articles/08fe13c70d5b24&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Reference Sites
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.reddit.com/r/computerforensics/comments/u80g7c/no_boot_after_conversion_of_e01/" rel="noopener noreferrer"&gt;https://www.reddit.com/r/computerforensics/comments/u80g7c/no_boot_after_conversion_of_e01/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>forensics</category>
      <category>windows</category>
    </item>
    <item>
      <title>Disk Preservation and Imaging with Paladin Linux</title>
      <dc:creator>sumeshi_kun</dc:creator>
      <pubDate>Sat, 30 Nov 2024 05:52:47 +0000</pubDate>
      <link>https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-paladin-3mn1</link>
      <guid>https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-paladin-3mn1</guid>
      <description>&lt;h1&gt;
  
  
  Overview
&lt;/h1&gt;

&lt;p&gt;Paladin is a Linux distribution developed for forensic purposes.&lt;br&gt;&lt;br&gt;
There are two versions: Paladin LTS and Paladin Edge. As the name suggests, LTS stands for Long-Term Support. Edge is lighter and also offers a 32-bit version, so it might be more suitable for preservation tasks.&lt;br&gt;&lt;br&gt;
&lt;a href="https://sumuri.com/software/paladin/" rel="noopener noreferrer"&gt;https://sumuri.com/software/paladin/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Importantly, if you use Paladin LTS for commercial purposes, it is paid (requires a donation of 25 USD or more).&lt;br&gt;&lt;br&gt;
Edge doesn't specify such restrictions, but if you can afford it, consider donating.&lt;/p&gt;

&lt;p&gt;In this article, I will cover how to preserve disk images of devices under forensic investigation using Paladin.&lt;/p&gt;

&lt;p&gt;I have also previously covered preservation using C.A.IN.E. and Tsurugi.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-caine-2hio"&gt;https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-caine-2hio&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-tsurugi-linux-21im"&gt;https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-tsurugi-linux-21im&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Paladin is also an Ubuntu-based OS. The wallpaper is cool.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcjzz1adhnvbdfflvlkdc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcjzz1adhnvbdfflvlkdc.jpg" alt=" " width="800" height="570"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;
  
  
  Launch
&lt;/h1&gt;

&lt;p&gt;In this article, I will use Paladin LTS 8.05.&lt;br&gt;&lt;br&gt;
After downloading, make sure to check the hash value.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;› &lt;span class="nb"&gt;certutil&lt;/span&gt; &lt;span class="na"&gt;-hashfile &lt;/span&gt;&lt;span class="kd"&gt;carbon&lt;/span&gt;&lt;span class="na"&gt;-paladin&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;.05.iso &lt;span class="kd"&gt;sha1&lt;/span&gt;
&lt;span class="kd"&gt;SHA1&lt;/span&gt; &lt;span class="kd"&gt;hash&lt;/span&gt; &lt;span class="kd"&gt;of&lt;/span&gt; &lt;span class="kd"&gt;carbon&lt;/span&gt;&lt;span class="na"&gt;-paladin&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="m"&gt;8&lt;/span&gt;.05.iso:
&lt;span class="kd"&gt;cb0de1883ac5ecb6165e2e96b8fd18bed9a159a8&lt;/span&gt;
&lt;span class="kd"&gt;CertUtil&lt;/span&gt;: &lt;span class="na"&gt;-hashfile &lt;/span&gt;&lt;span class="kd"&gt;command&lt;/span&gt; &lt;span class="kd"&gt;completed&lt;/span&gt; &lt;span class="kd"&gt;successfully&lt;/span&gt;.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Preservation Procedure
&lt;/h1&gt;

&lt;p&gt;In this procedure, I am using &lt;a href="https://github.com/msuhanov/ntfs-samples" rel="noopener noreferrer"&gt;msuhanov/ntfs-samples/ntfs.raw&lt;/a&gt; as the disk image to be preserved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparation
&lt;/h2&gt;

&lt;p&gt;First, adjust the time zone to match your local region. Also, make sure to record the actions taken and their timestamps during preservation. For detailed procedures and precautions, it is good to follow the guidelines of trusted organizations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mounting the Disk
&lt;/h2&gt;

&lt;p&gt;In Paladin, you can perform a series of operations using an integrated tool called &lt;strong&gt;Paladin Toolbox&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
It seems you can not only perform simple partitioning and imaging but also convert images and perform carving. Amazing!&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8sguzh40fxyidl3q86z0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8sguzh40fxyidl3q86z0.jpg" alt=" " width="800" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Connect a disk larger than the preservation target (100GB), format it, and mount it. You can do it by simply clicking buttons. You don't need to mount the preservation target.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preservation
&lt;/h2&gt;

&lt;p&gt;The preservation target is &lt;strong&gt;/dev/sdb&lt;/strong&gt;, and the destination is &lt;strong&gt;/dev/sda1&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Click &lt;strong&gt;Imager&lt;/strong&gt; in the side menu to set the image type and other settings. There are five formats available, which is quite a lot.  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;dd(RAW), EWF(E01), EWF2(Ex01), SMART(S01), DMG(dmg)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For E01, you can choose from three compression levels, which is easy to understand.  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;None, Fast, Best&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once you've made your selections, click &lt;strong&gt;Start&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7cx77jxj8yt8idlxpbeb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7cx77jxj8yt8idlxpbeb.jpg" alt=" " width="800" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When it's finished, the log is displayed.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fomk9ct9gjdct8ybpjyuk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fomk9ct9gjdct8ybpjyuk.jpg" alt=" " width="800" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Confirmation
&lt;/h2&gt;

&lt;p&gt;When the preservation is complete, you can confirm that the &lt;strong&gt;.E01&lt;/strong&gt; file and various logs are preserved on the specified disk.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fars1q87tkz4pnl2oes2e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fars1q87tkz4pnl2oes2e.jpg" alt=" " width="800" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By looking at &lt;strong&gt;paladin.complete.log&lt;/strong&gt;, you can see that the hash values of the image are recorded.&lt;br&gt;&lt;br&gt;
It seems that MD5 and SHA1 are calculated by default.&lt;/p&gt;

&lt;p&gt;Paladin is also properly listed in the CFTT, and the test results are published.&lt;br&gt;&lt;br&gt;
&lt;a href="https://www.nist.gov/itl/ssd/software-quality-group/computer-forensics-tool-testing-program-cftt/cftt-technical/disk" rel="noopener noreferrer"&gt;https://www.nist.gov/itl/ssd/software-quality-group/computer-forensics-tool-testing-program-cftt/cftt-technical/disk&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;By using Paladin, I was able to preserve the disk entirely through a GUI.&lt;br&gt;&lt;br&gt;
Compared to Tsurugi Linux and C.A.IN.E., having an integrated tool might be suitable for beginners or for standardized tasks.&lt;/p&gt;

&lt;p&gt;I had the impression that macOS forensic researchers often use it, but I had never touched this OS before. Using it, it seems capable of various things, which is interesting.&lt;br&gt;&lt;br&gt;
They also sell various commercial tools and devices, so if you are in a department that can allocate a budget, it might be one of the good options.&lt;/p&gt;

&lt;p&gt;This article was translated by ChatGPT o1-preview.&lt;br&gt;
Original Post(Japanese): &lt;a href="https://zenn.dev/sum3sh1/articles/04f8f0265e8807" rel="noopener noreferrer"&gt;https://zenn.dev/sum3sh1/articles/04f8f0265e8807&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>forensics</category>
      <category>linux</category>
    </item>
    <item>
      <title>Disk Preservation and Imaging with Tsurugi Linux</title>
      <dc:creator>sumeshi_kun</dc:creator>
      <pubDate>Sat, 30 Nov 2024 05:44:49 +0000</pubDate>
      <link>https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-tsurugi-linux-21im</link>
      <guid>https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-tsurugi-linux-21im</guid>
      <description>&lt;h1&gt;
  
  
  Overview
&lt;/h1&gt;

&lt;p&gt;Tsurugi Linux is a Linux distribution tailored for forensic purposes.&lt;br&gt;&lt;br&gt;
There are two editions: Tsurugi Acquire (a lightweight edition for preservation) and Tsurugi Linux &lt;a href="https://dev.toan%20investigation%20edition%20equipped%20with%20many%20tools"&gt;LAB&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tsurugi-linux.org/" rel="noopener noreferrer"&gt;https://tsurugi-linux.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this article, I will cover how to preserve disk images of devices under forensic investigation using Tsurugi.&lt;br&gt;&lt;br&gt;
In separate articles, I have also covered preservation using C.A.IN.E. and Paladin.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-caine-2hio"&gt;https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-caine-2hio&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-paladin-3mn1"&gt;https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-paladin-3mn1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Like C.A.IN.E. and Paladin, Tsurugi is also an Ubuntu-based OS.&lt;/p&gt;
&lt;h1&gt;
  
  
  Launch
&lt;/h1&gt;

&lt;p&gt;In this article, I will use Tsurugi Acquire 2021.1.&lt;br&gt;&lt;br&gt;
After downloading, make sure to check the hash value:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;› &lt;span class="nb"&gt;certutil&lt;/span&gt; &lt;span class="na"&gt;-hashfile &lt;/span&gt;&lt;span class="kd"&gt;tsurugi_acquire_2021&lt;/span&gt;.1.iso &lt;span class="kd"&gt;sha512&lt;/span&gt;
&lt;span class="kd"&gt;SHA512&lt;/span&gt; &lt;span class="kd"&gt;hash&lt;/span&gt; &lt;span class="kd"&gt;of&lt;/span&gt; &lt;span class="kd"&gt;tsurugi_acquire_2021&lt;/span&gt;.1.iso:
&lt;span class="kd"&gt;bd5488e9e75bbcbc6560d166031e84c70bf19c1b9db6f872df99212fef110296c3e7735e39bdee533aaaa92a64e1096fb674b1d45dd4c88cde280442737d77fe&lt;/span&gt; 
&lt;span class="kd"&gt;CertUtil&lt;/span&gt;: &lt;span class="na"&gt;-hashfile &lt;/span&gt;&lt;span class="kd"&gt;command&lt;/span&gt; &lt;span class="kd"&gt;completed&lt;/span&gt; &lt;span class="kd"&gt;successfully&lt;/span&gt;.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Preservation Procedure
&lt;/h1&gt;

&lt;p&gt;In this procedure, I am using &lt;a href="https://github.com/msuhanov/ntfs-samples" rel="noopener noreferrer"&gt;msuhanov/ntfs-samples/ntfs.raw&lt;/a&gt; as the disk image to be preserved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparation
&lt;/h2&gt;

&lt;p&gt;First, adjust the time zone to match your local region. Also, for detailed procedures and precautions, it is good to follow the guidelines of trusted organizations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mounting the Disk
&lt;/h2&gt;

&lt;p&gt;In Tsurugi Acquire, all devices are set to readonly by default.&lt;br&gt;&lt;br&gt;
You can open &lt;strong&gt;Tsurugi Device Unlocker&lt;/strong&gt; on the desktop and press the &lt;strong&gt;Unlock&lt;/strong&gt; button to make the target device writable.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1nwdtcdhe36azsjxaj1o.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1nwdtcdhe36azsjxaj1o.jpg" alt=" " width="800" height="590"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note that once you unlock a device, it seems you cannot revert it back to readonly.&lt;/p&gt;

&lt;p&gt;Let's also prepare the disk where the preservation image will be saved.&lt;br&gt;&lt;br&gt;
Prepare a disk larger than the preservation image (100GB), &lt;strong&gt;Unlock&lt;/strong&gt; it, and perform partitioning and formatting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy05ikgpenoygl0onruky.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy05ikgpenoygl0onruky.jpg" alt=" " width="800" height="590"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the screenshot, I used commands, but &lt;strong&gt;Gparted&lt;/strong&gt; is included, so you can use that instead.&lt;/p&gt;

&lt;p&gt;If you click &lt;strong&gt;Advanced&lt;/strong&gt; in Tsurugi Device Unlocker, you can configure settings for each partition.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftsrc177q1xj8swhg2cqo.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftsrc177q1xj8swhg2cqo.jpg" alt=" " width="800" height="590"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Preservation
&lt;/h2&gt;

&lt;p&gt;Use &lt;strong&gt;Guymager&lt;/strong&gt; to perform the image preservation. Here, the preservation target is &lt;strong&gt;/dev/sdb&lt;/strong&gt;, and the preservation destination is &lt;strong&gt;/dev/sda1&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Right-click on the preservation target &lt;strong&gt;/dev/sdb&lt;/strong&gt; and select &lt;strong&gt;Acquire Image&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiwsi2jbsm7111c33w09z.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiwsi2jbsm7111c33w09z.jpg" alt=" " width="800" height="590"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Other than the save destination, I use the defaults. The settings are to save in E01 format, splitting every 2GB.&lt;br&gt;&lt;br&gt;
You can change the split size from &lt;strong&gt;Split size&lt;/strong&gt; or adjust the hash calculation settings from &lt;strong&gt;Hash calculation / verification&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftzybclbuwezijiost7u5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftzybclbuwezijiost7u5.jpg" alt=" " width="800" height="590"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are using it for work, it is good to calculate two or more hash values to prepare for collisions.&lt;/p&gt;

&lt;p&gt;Press &lt;strong&gt;Start&lt;/strong&gt; to begin disk preservation, and the progress will be displayed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc9hemb085b30tre5ds9g.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc9hemb085b30tre5ds9g.jpg" alt=" " width="800" height="590"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Confirmation
&lt;/h2&gt;

&lt;p&gt;When the preservation is complete, you can confirm that &lt;strong&gt;.E01&lt;/strong&gt; files and a &lt;strong&gt;.info&lt;/strong&gt; file are preserved on the specified disk.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu7k5pmbmclnrhjncugxy.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu7k5pmbmclnrhjncugxy.jpg" alt=" " width="800" height="590"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;.info&lt;/strong&gt; file records the version of Guymager used for preservation, detailed information, and the hash values of the preserved image.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;By using Tsurugi Linux, I was able to easily preserve the disk through a GUI.&lt;br&gt;&lt;br&gt;
Compared to C.A.IN.E., being able to switch &lt;strong&gt;Unlock&lt;/strong&gt; per disk might be an advantageous point.&lt;/p&gt;

&lt;p&gt;Also, since there is an analysis environment called &lt;strong&gt;[LAB]&lt;/strong&gt;, it would be a good choice if you want to do both preservation and analysis.&lt;/p&gt;

&lt;p&gt;This article was translated by ChatGPT o1-preview.&lt;br&gt;
Original Post(Japanese): &lt;a href="https://zenn.dev/sum3sh1/articles/c3a40c4977fe48" rel="noopener noreferrer"&gt;https://zenn.dev/sum3sh1/articles/c3a40c4977fe48&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>forensics</category>
      <category>linux</category>
    </item>
    <item>
      <title>Disk Preservation and Imaging with C.A.IN.E. Linux</title>
      <dc:creator>sumeshi_kun</dc:creator>
      <pubDate>Sat, 30 Nov 2024 05:30:34 +0000</pubDate>
      <link>https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-caine-2hio</link>
      <guid>https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-caine-2hio</guid>
      <description>&lt;h1&gt;
  
  
  Overview
&lt;/h1&gt;

&lt;p&gt;As the name suggests, C.A.IN.E. (Computer Aided Investigative Environment) is an investigative support environment for PCs. While there are several Linux distributions designed for forensics, C.A.IN.E. stands out because it's specifically engineered for that purpose, making it intuitive to use with well-organized documentation. I personally recommend it.&lt;/p&gt;

&lt;p&gt;In this article, I will cover how to preserve disk images of devices under forensic investigation using C.A.IN.E.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.caine-live.net/" rel="noopener noreferrer"&gt;https://www.caine-live.net/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have also experimented with the Tsurugi and Paladin versions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-tsurugi-linux-21im"&gt;https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-tsurugi-linux-21im&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-paladin-3mn1"&gt;https://dev.to/sum3sh1/disk-preservation-using-the-forensic-linux-paladin-3mn1&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;C.A.IN.E. is an Ubuntu-based OS.&lt;/p&gt;

&lt;h1&gt;
  
  
  Launch
&lt;/h1&gt;

&lt;p&gt;In this article, I will focus on C.A.IN.E. 13.0 "WARP". After downloading, make sure to check the hash value:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight batchfile"&gt;&lt;code&gt;› &lt;span class="nb"&gt;certutil&lt;/span&gt; &lt;span class="na"&gt;-hashfile &lt;/span&gt;&lt;span class="kd"&gt;caine13&lt;/span&gt;.0.iso &lt;span class="kd"&gt;sha256&lt;/span&gt;
&lt;span class="kd"&gt;SHA256&lt;/span&gt; &lt;span class="kd"&gt;hash&lt;/span&gt; &lt;span class="kd"&gt;of&lt;/span&gt; &lt;span class="kd"&gt;caine13&lt;/span&gt;.0.iso:
&lt;span class="m"&gt;6&lt;/span&gt;&lt;span class="kd"&gt;d25180757d6a8a71e98706009d7a9ba3613131727fc96c2037d78bbd4c8ce3a&lt;/span&gt;
&lt;span class="kd"&gt;CertUtil&lt;/span&gt;: &lt;span class="na"&gt;-hashfile &lt;/span&gt;&lt;span class="kd"&gt;command&lt;/span&gt; &lt;span class="kd"&gt;completed&lt;/span&gt; &lt;span class="kd"&gt;successfully&lt;/span&gt;.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In practice, you'd likely boot from USB on the target device, but for explanatory purposes, I will use VMware this time.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7jp7n2ws8ss5e1i4nmcy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7jp7n2ws8ss5e1i4nmcy.png" alt=" " width="800" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Preservation Procedure
&lt;/h1&gt;

&lt;p&gt;The official website provides instructions on how to preserve image files. Please refer to it as well:&lt;br&gt;
&lt;a href="https://www.caine-live.net/page8/CAINE%20Imaging%20Instructions%20(March%202021)%20-%20External.pdf" rel="noopener noreferrer"&gt;Imaging with CAINE&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this procedure, I am using &lt;a href="https://github.com/msuhanov/ntfs-samples" rel="noopener noreferrer"&gt;msuhanov/ntfs-samples/ntfs.raw&lt;/a&gt; as the disk image to be preserved. It's small at 64GB (compressed to 80MB), making it convenient for testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparation
&lt;/h2&gt;

&lt;p&gt;First, adjust the time zone to match your local region. Also, make sure to record the actions taken and their timestamps during preservation. For detailed guidelines, refer to trusted organizations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mounting the Disk
&lt;/h2&gt;

&lt;p&gt;Click on the Mounter (the green HDD icon at the bottom right of the screen) to mount the target for preservation. Using this Mounter ensures the disk is mounted in ReadOnly mode for safety.&lt;/p&gt;

&lt;p&gt;Here, the target for preservation is &lt;strong&gt;Test_volume&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33gxq4s33coy9egebfaq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F33gxq4s33coy9egebfaq.png" alt=" " width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Next, set up the destination for the image. Prepare a disk larger than the preservation image (128GB), partition it, and then right-click the Mounter icon to switch to Writable mount mode.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5ya5snm3zw0d3joynpl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5ya5snm3zw0d3joynpl.png" alt=" " width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Be cautious, as disks mounted from this point will be in Writable mode. As before, select the disk and click OK to confirm it's mounted as Writable.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5w0hsmglrcib3vt7a17i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5w0hsmglrcib3vt7a17i.png" alt=" " width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Preservation
&lt;/h2&gt;

&lt;p&gt;Use &lt;strong&gt;Guymager&lt;/strong&gt; to perform the image preservation. Right-click on &lt;code&gt;/dev/sdb&lt;/code&gt;, the target disk, and select &lt;strong&gt;Acquire Image&lt;/strong&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuvatrtitgy9sdsniwish.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuvatrtitgy9sdsniwish.png" alt=" " width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While there are various settings available, I will proceed with mostly the defaults. The image will be saved in E01 format, split into 2GB segments.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flfz9m082o9qj2g0xgksg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flfz9m082o9qj2g0xgksg.png" alt=" " width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click &lt;strong&gt;Start&lt;/strong&gt; to begin the disk preservation. The progress will be displayed.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsan191l2f6ludcmlvf3x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsan191l2f6ludcmlvf3x.png" alt=" " width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Confirmation
&lt;/h2&gt;

&lt;p&gt;Once the preservation is complete, you can verify that the &lt;code&gt;.E01&lt;/code&gt; files and a &lt;code&gt;.info&lt;/code&gt; file are saved on the specified disk.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiduagqnq51uf1thwybcl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiduagqnq51uf1thwybcl.png" alt=" " width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;.info&lt;/code&gt; file contains details like the version of Guymager used, detailed information, and the hash value of the preserved image.&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;By using C.A.IN.E., I was able to easily preserve the disk through a GUI. It includes essential features like default ReadOnly mode, showing that it's developed with real forensic use in mind.&lt;/p&gt;

&lt;p&gt;Personally, I find it quite user-friendly, so having a Live boot USB ready and handy might be a good idea.&lt;/p&gt;

&lt;p&gt;This article was translated by ChatGPT o1-preview.&lt;br&gt;
Original Post(Japanese): &lt;a href="https://zenn.dev/sum3sh1/articles/a497f834ce1bbc" rel="noopener noreferrer"&gt;https://zenn.dev/sum3sh1/articles/a497f834ce1bbc&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>forensics</category>
      <category>linux</category>
    </item>
    <item>
      <title>How to Run Komga PDF Viewer on QNAP NAS</title>
      <dc:creator>sumeshi_kun</dc:creator>
      <pubDate>Sat, 20 Jul 2024 13:57:08 +0000</pubDate>
      <link>https://dev.to/sum3sh1/komga-pdf-viewer-on-qnap-nas-56je</link>
      <guid>https://dev.to/sum3sh1/komga-pdf-viewer-on-qnap-nas-56je</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;I bought a QNAP NAS, and it seems Docker is supported on it.&lt;br&gt;
ChatGPT recommended a PDF viewer that can be set up on-premises like Apple's Books, called Komga.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyp22lvcphlvih89lfkwq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyp22lvcphlvih89lfkwq.png" alt="komga-books" width="800" height="489"&gt;&lt;/a&gt;&lt;br&gt;
Here's how it looks in the end. It's a web application, so you can access it from a smartphone.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://komga.org/" rel="noopener noreferrer"&gt;https://komga.org/&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Environment
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;NAS Model&lt;/th&gt;
&lt;th&gt;Used Application&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.qnap.com/ja-jp/product/ts-133" rel="noopener noreferrer"&gt;QNAP TS-133&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Container Station&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;It's one of the cheapest entry-level models. If you have a newer QNAP product that runs Container Station, it should work similarly.&lt;/p&gt;
&lt;h2&gt;
  
  
  Setup Procedure
&lt;/h2&gt;
&lt;h3&gt;
  
  
  Confirm UID, GID
&lt;/h3&gt;

&lt;p&gt;Since SSH is disabled by default, you need to enable it using tools like Qfinder Pro. Select the NAS, then choose &lt;strong&gt;Connect via SSH&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3vyky835q0brfnxz1wc6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3vyky835q0brfnxz1wc6.png" alt="qfinder-ui" width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once enabled, you can SSH using tools like WSL or Putty.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;ssh &lt;span class="o"&gt;{{&lt;/span&gt;USER_NAME&lt;span class="o"&gt;}}&lt;/span&gt;@&lt;span class="o"&gt;{{&lt;/span&gt;NAS_IP_ADDRESS&lt;span class="o"&gt;}}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once SSHed in, execute the following command to check UID and GID. Typically, if you're the first user, UID=1000, GID=100 should be fine.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;id&lt;/span&gt; &lt;span class="o"&gt;{{&lt;/span&gt;USER_NAME&lt;span class="o"&gt;}}&lt;/span&gt;
&lt;span class="nv"&gt;uid&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1000&lt;span class="o"&gt;({{&lt;/span&gt;USER_NAME&lt;span class="o"&gt;}})&lt;/span&gt; &lt;span class="nv"&gt;gid&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;100&lt;span class="o"&gt;(&lt;/span&gt;everyone&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reference: &lt;a href="https://www.forum-nas.fr/threads/tuto-se-connecter-%C3%A0-son-nas-qnap-par-ssh.19604/" rel="noopener noreferrer"&gt;https://www.forum-nas.fr/threads/tuto-se-connecter-%C3%A0-son-nas-qnap-par-ssh.19604/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create config, data Directories
&lt;/h3&gt;

&lt;p&gt;When you install Container Station, a /Container directory should be created. Under /Container, create a komga directory, and under /Container/komga, create config and data directories.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2qdt00z5r2a28jrzodt9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2qdt00z5r2a28jrzodt9.png" alt="qnap-directories" width="273" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Run Komga Application
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2dyjzldxc6q23eear5i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2dyjzldxc6q23eear5i.png" alt="qnap-container-station" width="800" height="514"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From &lt;code&gt;Container Station &amp;gt; Applications &amp;gt; Create&lt;/code&gt;, input the following Docker-Compose configuration to create the container. Adjust each item as necessary.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;3.8'&lt;/span&gt;

&lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;komga&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;gotson/komga&lt;/span&gt;
    &lt;span class="na"&gt;container_name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;komga&lt;/span&gt;
    &lt;span class="na"&gt;volumes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/share/CE_CACHEDEV1_DATA/Container/komga/config:/config'&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/share/CE_CACHEDEV1_DATA/Container/komga/data:/data'&lt;/span&gt;
    &lt;span class="na"&gt;ports&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;8282:25600&lt;/span&gt;
    &lt;span class="na"&gt;user&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;1000:100"&lt;/span&gt;
    &lt;span class="na"&gt;restart&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;unless-stopped&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Volumes
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;/share/CE_CACHEDEV1_DATA/Container/komga/config:/config&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Specify &lt;code&gt;Host Directory:Container Directory&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
CE_CACHEDEV1_DATA may vary depending on your environment. Check the volume mount point if it fails.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5kpq8hyg3w3pw9ri6xqv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5kpq8hyg3w3pw9ri6xqv.png" alt="qnap-container-station-mountpoints" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Ports
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;8282:25600&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Specify &lt;code&gt;Host Port:Container Port&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
25600 is Komga's default, so you can leave it unchanged. Use 8282 or any port you prefer for accessing.&lt;/p&gt;

&lt;h4&gt;
  
  
  User
&lt;/h4&gt;

&lt;blockquote&gt;
&lt;p&gt;"1000:100"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Specify the previously mentioned &lt;code&gt;UID:GID&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Execution Result
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Farjy8qtr2nlcye1k54p3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Farjy8qtr2nlcye1k54p3.png" alt="komga-ui" width="800" height="1074"&gt;&lt;/a&gt;&lt;br&gt;
After waiting a bit, access via &lt;code&gt;http://{{NAS_IP_ADDRESS}}:8282&lt;/code&gt; should be available.&lt;/p&gt;

&lt;p&gt;On first access, create an account and proceed.&lt;br&gt;&lt;br&gt;
When adding PDFs, place them in /Container/komga/data and reference them from the web application.&lt;/p&gt;

&lt;p&gt;Reference: &lt;a href="https://www.forum-nas.fr/threads/tuto-installation-de-komga-en-docker-sur-un-nas-qnap-container-station.19616/" rel="noopener noreferrer"&gt;https://www.forum-nas.fr/threads/tuto-installation-de-komga-en-docker-sur-un-nas-qnap-container-station.19616/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;This post has been translated by GPT-4.&lt;br&gt;
Original Post(Japanese): &lt;a href="https://zenn.dev/sum3sh1/articles/2e905fa139d37b" rel="noopener noreferrer"&gt;https://zenn.dev/sum3sh1/articles/2e905fa139d37b&lt;/a&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>pdf</category>
    </item>
    <item>
      <title>Quickly Search &amp; Extract Files from Windows Disk Images</title>
      <dc:creator>sumeshi_kun</dc:creator>
      <pubDate>Sat, 25 Nov 2023 10:19:04 +0000</pubDate>
      <link>https://dev.to/sum3sh1/extraction-of-files-from-an-ntfs-image-using-ntfsdump-and-ntfsfind-1inl</link>
      <guid>https://dev.to/sum3sh1/extraction-of-files-from-an-ntfs-image-using-ntfsdump-and-ntfsfind-1inl</guid>
      <description>&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;If you work in digital forensics, incident response, or malware analysis, you probably deal with disk images all the time.&lt;br&gt;
And sooner or later, you’ll want to &lt;strong&gt;find specific files inside an image and extract them for analysis&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Sure, you can mount images with tools like &lt;strong&gt;FTK Imager&lt;/strong&gt; or &lt;strong&gt;Arsenal Image Mounter&lt;/strong&gt; and browse the filesystem manually.&lt;br&gt;
But doing that for tens or hundreds of images? And repeating the same clicks over and over?&lt;br&gt;
That’s exactly the kind of workflow that should be automated — so I built these tools.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sumeshi/ntfsdump" rel="noopener noreferrer"&gt;https://github.com/sumeshi/ntfsdump&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/sumeshi/ntfsfind" rel="noopener noreferrer"&gt;https://github.com/sumeshi/ntfsfind&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These tools let you &lt;strong&gt;search and extract files, directories, and alternate data streams (ADS) directly from disk image files — without mounting them&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For example, you can search like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ntfsfind.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;IMAGEFILE.raw&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;".*\.evtx"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;/Windows/System32/winevt/Logs/Setup.evtx&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nx"&gt;/Windows/System32/winevt/Logs/Microsoft-Windows-All-User-Install-Agent&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="nx"&gt;4Admin.evtx&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;/Logs/Windows&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;PowerShell.evtx&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;/Logs/Microsoft-Windows-Winlogon&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="nx"&gt;4Operational.evtx&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;/Logs/Microsoft-Windows-WinINet-Config&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="nx"&gt;4ProxyConfigChanged.evtx&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then pipe the results directly into another command to extract them:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ntfsfind.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;IMAGEFILE.raw&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;".*\.evtx"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ntfsdump.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;IMAGEFILE.raw&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For more details, check out the README on GitHub.&lt;br&gt;
Stars are always welcome ⭐&lt;/p&gt;
&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;p&gt;Precompiled binaries are available on GitHub Releases:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sumeshi/ntfsfind/releases" rel="noopener noreferrer"&gt;https://github.com/sumeshi/ntfsfind/releases&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/sumeshi/ntfsdump/releases" rel="noopener noreferrer"&gt;https://github.com/sumeshi/ntfsdump/releases&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The following command searches for &lt;code&gt;.evtx&lt;/code&gt; files inside a dd (raw) image file called &lt;code&gt;ntfs.raw&lt;/code&gt;.&lt;br&gt;
The second argument is a regex query. Note that file paths must use &lt;code&gt;/&lt;/code&gt; as the separator — this is consistent across both Linux and Windows builds.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ntfsfind.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\ntfs.raw&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;".*\.evtx"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To extract a specific file from the root of the image:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ntfsdump.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;\ntfs.raw&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/hoge.txt"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also pipe search results into &lt;code&gt;ntfsdump&lt;/code&gt; to extract many files in one go:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="err"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ntfsfind.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;IMAGEFILE.raw&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;".*\.evtx"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;ntfsdump.exe&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;IMAGEFILE.raw&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Since &lt;code&gt;ntfsdump&lt;/code&gt; simply reads paths from standard input, you’re free to redirect, filter, or preprocess the list however you like.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Precompiled Binaries
&lt;/h3&gt;

&lt;p&gt;Prebuilt binaries for Windows and Linux (Ubuntu) are available on GitHub Releases.&lt;br&gt;
Just download the appropriate file and run it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/sumeshi/ntfsdump/releases" rel="noopener noreferrer"&gt;https://github.com/sumeshi/ntfsdump/releases&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/sumeshi/ntfsfind/releases" rel="noopener noreferrer"&gt;https://github.com/sumeshi/ntfsfind/releases&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Install via PyPI
&lt;/h3&gt;

&lt;p&gt;Python 3.13 or newer is supported.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;ntfsdump ntfsfind
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://pypi.org/project/ntfsdump/" rel="noopener noreferrer"&gt;https://pypi.org/project/ntfsdump/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://pypi.org/project/ntfsfind/" rel="noopener noreferrer"&gt;https://pypi.org/project/ntfsfind/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;These tools follow a “small, sharp tools” philosophy:&lt;br&gt;
simple, minimal, and easy to carry around in your toolkit.&lt;br&gt;
Ideally, you just keep a single binary handy and use it whenever you need quick, scriptable access to NTFS disk images.&lt;/p&gt;

&lt;p&gt;If they help streamline your forensic workflow even a little, I’ll be happy 🙂&lt;/p&gt;




&lt;p&gt;Original Post(Japanese): &lt;a href="https://zenn.dev/sum3sh1/articles/file-extraction-from-ntfs-image-files" rel="noopener noreferrer"&gt;https://zenn.dev/sum3sh1/articles/file-extraction-from-ntfs-image-files&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>security</category>
      <category>windows</category>
      <category>forensics</category>
    </item>
  </channel>
</rss>
