{"componentChunkName":"component---src-templates-post-template-js","path":"/magical-windbg-vol1-01-en","result":{"data":{"markdownRemark":{"id":"09daa934-1ee1-5960-87de-941ccb3cd311","html":"<blockquote>\n<p>This page has been machine-translated from the <a href=\"/magical-windbg-vol1-01\">original page</a>.</p>\n</blockquote>\n<p>In this chapter, I introduce the setup procedure for the environment used in this book.</p>\n<p>This book assumes readers are using Windows Home edition machines, so the setup procedure introduced in Chapter 1 does not use virtual machines. However, when applying the settings and installing the tools introduced in this book, I recommend using a virtual machine whenever possible. (Even if you use Windows 10 / 11 Home edition, you can still use third-party virtualization applications such as VirtualBox or VMware.)</p>\n<!-- omit in toc -->\n<h2 id=\"table-of-contents\" style=\"position:relative;\"><a href=\"#table-of-contents\" aria-label=\"table of contents permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Table of contents</h2>\n<ul>\n<li><a href=\"#environment-used-in-this-book\">Environment used in this book</a></li>\n<li><a href=\"#installing-the-latest-redistributable-package\">Installing the latest redistributable package</a></li>\n<li><a href=\"#installing-debugging-tools-for-windows\">Installing Debugging Tools for Windows</a></li>\n<li><a href=\"#installing-the-sysinternals-utilities\">Installing the Sysinternals utilities</a></li>\n<li><a href=\"#installing-ghidra-23\">Installing Ghidra 2.3</a></li>\n<li><a href=\"#downloading-d4c\">Downloading D4C</a></li>\n<li><a href=\"#configuring-dump-collection-and-keyboard-crash\">Configuring dump collection and keyboard crash</a></li>\n<li><a href=\"#trying-a-full-memory-dump-on-the-machine\">Trying a full memory dump on the machine</a></li>\n<li><a href=\"#configuring-symbol-servers-for-windbg-and-procmon\">Configuring symbol servers for WinDbg and Procmon</a></li>\n<li><a href=\"#summary-of-chapter-1\">Summary of Chapter 1</a></li>\n<li><a href=\"#links-to-each-chapter\">Links to each chapter</a></li>\n</ul>\n<h2 id=\"environment-used-in-this-book\" style=\"position:relative;\"><a href=\"#environment-used-in-this-book\" aria-label=\"environment used in this book permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Environment used in this book</h2>\n<p>The content of this book has been verified in the following environment.</p>\n<p>First, the environment used in this book is as follows.</p>\n<ul>\n<li>Machine: ThinkPad X280 (CPU: Intel i7-8550U / RAM: 16 GB / SSD: 256 GB)</li>\n<li>OS: Windows 10 Pro 22H2</li>\n</ul>\n<p>The environment used in this book is shown above, but there is no need to match the hardware and OS exactly.</p>\n<p>However, to work comfortably, I recommend using a machine with at least an Intel Core i3 CPU and 8 GB of RAM.</p>\n<p>There are no specific requirements for the Windows OS version or edition.</p>\n<h2 id=\"installing-the-latest-redistributable-package\" style=\"position:relative;\"><a href=\"#installing-the-latest-redistributable-package\" aria-label=\"installing the latest redistributable package permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Installing the latest redistributable package</h2>\n<p>First, run <code class=\"language-text\">vc_redist.x64.exe</code>, which can be downloaded from the URL below, to install the latest redistributable package on the virtual machine.</p>\n<br>\n<p>vc_redist.x64.exe:</p>\n<p><a href=\"https://aka.ms/vs/17/release/vc_redist.x64.exe\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://aka.ms/vs/17/release/vc_redist.x64.exe</a></p>\n<br>\n<p>Installing this redistributable package is necessary to run the D4C.exe program used in this book.</p>\n<h2 id=\"installing-debugging-tools-for-windows\" style=\"position:relative;\"><a href=\"#installing-debugging-tools-for-windows\" aria-label=\"installing debugging tools for windows permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Installing Debugging Tools for Windows</h2>\n<p>Next, install Debugging Tools for Windows on the machine that will be used for Windows dump analysis.</p>\n<p>Debugging Tools for Windows includes debuggers such as WinDbg<sup id=\"fnref-1\"><a href=\"#fn-1\" class=\"footnote-ref\">1</a></sup> and tools such as GFlags<sup id=\"fnref-2\"><a href=\"#fn-2\" class=\"footnote-ref\">2</a></sup> that are useful for troubleshooting in Windows environments.</p>\n<p>There are several ways to install Debugging Tools for Windows, but in this book I use Windows SDK (10.0.22621) to install it.</p>\n<p>First, access the Windows SDK download page at the URL below and download <code class=\"language-text\">winsdksetup.exe</code> from [Download the installer].</p>\n<br>\n<p>Windows SDK:</p>\n<p><a href=\"https://developer.microsoft.com/ja-jp/windows/downloads/windows-sdk/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://developer.microsoft.com/ja-jp/windows/downloads/windows-sdk/</a> <sup id=\"fnref-3\"><a href=\"#fn-3\" class=\"footnote-ref\">3</a></sup></p>\n<br>\n<p>Next, double-click the downloaded <code class=\"language-text\">winsdksetup.exe</code> to run it.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 500px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/4243068539b87bc45f865df668fc4dde/0b533/winsdksetup-001.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 73.75%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABsUlEQVQ4y51U2W7CMBDk/78NwQMVEk8IEo6Q20lIyDXdWce0pQi1WFpsb5z1HBtm+8MBaZIiiRNEYSxzKvsEYRgijmOEUYgsy9C27dO43W6o6xp93+s7My6yNEUUxTDGaJFxHPHOKMsSs67rcLlcNFj0fD5jGIZ/FXIAiqKwCBmdRNt2SuN6vaKqGJXSqa+15GrN6762a+Z4uQNwL2hMjuPxKChDTRoJnSVPGsW0Lwqjs80ZeV78QKoFWZ2Qfd9DEAQweS46JmJEjlS07Xt5PtEiMzvbNQel2mw2aggZKULS5IY305jvwRwpUgJHWyVhlJVcmuEonZILEC1IhNxst1ttD0vVKG3OueRYwOSWLhmwENfsDl5SVaWCUpdZkBu6GwRnvZkch95K4UR30jwOx5DvaEEmeLBpGuviRMtJ4AwpixLuLIu77uAZ6kikd4S99CINIGUGJSDd4QHROMmjiJ6MyeVRDtzgeR58z8d+t1OXaYTrL0e1aWqcTid9Bnw5/qsPX30Bj/FqqMt4cxAVC7g2oob8H5jxh7pRw78Gz/PLWiwWWK0+sF6vMZ/PsVwu8QktAI2JUKzRxQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/4243068539b87bc45f865df668fc4dde/8ac56/winsdksetup-001.webp 240w,\n/static/4243068539b87bc45f865df668fc4dde/d3be9/winsdksetup-001.webp 480w,\n/static/4243068539b87bc45f865df668fc4dde/b0a15/winsdksetup-001.webp 500w\"\n              sizes=\"(max-width: 500px) 100vw, 500px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/4243068539b87bc45f865df668fc4dde/8ff5a/winsdksetup-001.png 240w,\n/static/4243068539b87bc45f865df668fc4dde/e85cb/winsdksetup-001.png 480w,\n/static/4243068539b87bc45f865df668fc4dde/0b533/winsdksetup-001.png 500w\"\n            sizes=\"(max-width: 500px) 100vw, 500px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/4243068539b87bc45f865df668fc4dde/0b533/winsdksetup-001.png\"\n            alt=\"Installing Debugging Tools for Windows\"\n            title=\"Installing Debugging Tools for Windows\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>If you proceed through the installer with the default settings, a screen for selecting packages to install appears near the end.</p>\n<p>You can choose any items to download here, but make sure that [Debugging Tools for Windows] is checked.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 500px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/18062a9c40ea76c2449d9f48fc9ad448/0b533/winsdksetup-002.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 73.75%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABwElEQVQ4y41T13LDMAzz//9e+5TUo/Xe2/FGCTlO7euK7hDKCgWSIKUFSYauH9HeesEg+wG3YfvmnrYfJ0zLimGcMUxn8D9iENBfW5cFeZYhy3Nl0yRBWZZomgZlkaMqK8RRjKqqoNa64q+lTdME0zDwbr3DEui6IdaCLmemZSIvCviej7pufiVZJcgOjQd9f4PruvB9H2EYwiNBU58uxXECQ4IEweaT55n4eUiS9ESsCLuukwwt2LYNz/Vgf3ygkMx2p0VkSUQK13WQpqnypyS0XdviJrbv+61k/gzDAE+yY4ZBEKjI3GdZri6SNE1iCebCcRw4d8s7dV2jvZM/CMdxRBRFCls5Bajtrsuz61EyM2RmRVGq1JcDyU54FP43nEu+l0liYm/Srs1/RCfCR8nxVnYqnWMTeP5Tlj/vtxk9ZPjVlJBZsiky7M9mp3AsmZnFcfwAx4YNYnP+a8S3plAnakYdPW+znDeejeNGyAA8o+UzLKWBk7xlLn7vc6sI53lGKwNKdF2rhpVB+NymebsURSEcGfzr9apeTMb3L6C/49i4XC9qFrVn5uzoQ51NwxStQ7y8vkiAi5JGf9NVZZ/hlYjYXXFasgAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/18062a9c40ea76c2449d9f48fc9ad448/8ac56/winsdksetup-002.webp 240w,\n/static/18062a9c40ea76c2449d9f48fc9ad448/d3be9/winsdksetup-002.webp 480w,\n/static/18062a9c40ea76c2449d9f48fc9ad448/b0a15/winsdksetup-002.webp 500w\"\n              sizes=\"(max-width: 500px) 100vw, 500px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/18062a9c40ea76c2449d9f48fc9ad448/8ff5a/winsdksetup-002.png 240w,\n/static/18062a9c40ea76c2449d9f48fc9ad448/e85cb/winsdksetup-002.png 480w,\n/static/18062a9c40ea76c2449d9f48fc9ad448/0b533/winsdksetup-002.png 500w\"\n            sizes=\"(max-width: 500px) 100vw, 500px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/18062a9c40ea76c2449d9f48fc9ad448/0b533/winsdksetup-002.png\"\n            alt=\"Installing Debugging Tools for Windows\"\n            title=\"Installing Debugging Tools for Windows\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>Run the installer with [Debugging Tools for Windows] checked.</p>\n<p>After the installer finishes, confirm that <code class=\"language-text\">windbg.exe</code> and <code class=\"language-text\">gflags.exe</code> exist under <code class=\"language-text\">C:\\Program Files (x86)\\Windows Kits\\10\\Debuggers\\x64</code>. (Although this book does not use it, the x86 version of <code class=\"language-text\">windbg.exe</code> exists under <code class=\"language-text\">C:\\Program Files (x86)\\Windows Kits\\10\\Debuggers\\x86</code>.)</p>\n<p>Because these programs are used frequently, it is a good idea to create shortcuts for them if needed.</p>\n<p>By the way, there is also a newer Windows app version of WinDbg.</p>\n<p>Compared with WinDbg (Classic), which is used in this book, the Windows app version of WinDbg offers a more modern UI and powerful features such as Time Travel Debugging (TTD).</p>\n<p>This book does not use the Windows app version of WinDbg, but the features and commands used for dump analysis are the same as in WinDbg (Classic).</p>\n<p>Therefore, there is no problem if you use the Windows app version of WinDbg for dump analysis.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 500px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/f8ee24592aaee568dfa5627b73f082fe/0b533/store-001.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 112.08333333333333%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAWCAYAAADAQbwGAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB90lEQVQ4y+VUy27TQBT1J4EQIn/Q7+IhVL6EFZuyCixKxYZdRemqKmnkxm97HDv2jB/jHO6MYydxcEPVJRMd3Tt3bo7v3McYF9cLLBYuHNvD/b0Di3S1N00bnhvi99zC5Y2N2dzG2Y8ZLq4dRGEMx4thu0xLP1iCsRRhmMD4NfPw/WqOmekSoQ1Tkdo+FpYHz2MwrQBXty79OcLtnaX3YbhEFCkkGmrfwfj0M8DHSx93QYY45QiWGSKSHVgqwJIcbEUyzelDNpHEyDKO1SpvkSmZUUAWDDxirddrlGV5aKefWlmewahqCUmO6yNQS0qJqqp6cmVu0Z4XRQFDyqZ3eCiyvxPuf1AI8TTC4fn/SyiPVvhRRXkosuFqmoYI69EbaMI850iSlLo9Q5quqJdKat6qhyLopBAFBPXaWISccxiO48P1Avh+pMGYmkkGy3JplsONTc1rrG1BEG1HbgCPeEavrHKlzlTeuojquu6vPJpDlZddh+3MVgc52s3haJWPER5W+YkR7hP+Q4SSCLsXo0OzIdyz7/Sh0puBv67yboTQbtsIqz6HW3vTSF2YsVW0EbbvWrNBp5dlfWBXvpx6kfOCHlOBnCu0uhAl9TL14eT0HJMP3zA53UDr53g1tG/2L959xfM3Uzx7PSX5RUPpL99OcfL+M/4A9yafk0s7Yt4AAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/f8ee24592aaee568dfa5627b73f082fe/8ac56/store-001.webp 240w,\n/static/f8ee24592aaee568dfa5627b73f082fe/d3be9/store-001.webp 480w,\n/static/f8ee24592aaee568dfa5627b73f082fe/b0a15/store-001.webp 500w\"\n              sizes=\"(max-width: 500px) 100vw, 500px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/f8ee24592aaee568dfa5627b73f082fe/8ff5a/store-001.png 240w,\n/static/f8ee24592aaee568dfa5627b73f082fe/e85cb/store-001.png 480w,\n/static/f8ee24592aaee568dfa5627b73f082fe/0b533/store-001.png 500w\"\n            sizes=\"(max-width: 500px) 100vw, 500px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/f8ee24592aaee568dfa5627b73f082fe/0b533/store-001.png\"\n            alt=\"The Windows app version of WinDbg\"\n            title=\"The Windows app version of WinDbg\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>As noted in the documentation below, however, “WinDbg Preview,” available from the Microsoft Store, is already no longer being updated.</p>\n<br>\n<p>Install the Windows debugger:</p>\n<p><a href=\"https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/</a></p>\n<br>\n<p>To obtain the latest Windows app version of WinDbg, use the installer downloadable from the link in the documentation above.</p>\n<h2 id=\"installing-the-sysinternals-utilities\" style=\"position:relative;\"><a href=\"#installing-the-sysinternals-utilities\" aria-label=\"installing the sysinternals utilities permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Installing the Sysinternals utilities</h2>\n<p>Next, obtain Sysinternals<sup id=\"fnref-6\"><a href=\"#fn-6\" class=\"footnote-ref\">6</a></sup>, which includes useful tools such as Process Monitor<sup id=\"fnref-4\"><a href=\"#fn-4\" class=\"footnote-ref\">4</a></sup> and Process Explorer<sup id=\"fnref-5\"><a href=\"#fn-5\" class=\"footnote-ref\">5</a></sup>.</p>\n<p>I will not explain these tools in detail in this book.</p>\n<p>If you want to learn more, the official documentation or books such as the one below may be helpful.<sup id=\"fnref-7\"><a href=\"#fn-7\" class=\"footnote-ref\">7</a></sup></p>\n<p>To install these tools all at once, access the URL below and click [Sysinternals Suite].</p>\n<br>\n<p>Sysinternals utilities:</p>\n<p><a href=\"https://learn.microsoft.com/ja-jp/sysinternals/downloads/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://learn.microsoft.com/ja-jp/sysinternals/downloads/</a></p>\n<br>\n<p>After extracting the ZIP file downloaded from there, you will be able to use tools such as Process Monitor and Process Explorer.</p>\n<h2 id=\"installing-ghidra-23\" style=\"position:relative;\"><a href=\"#installing-ghidra-23\" aria-label=\"installing ghidra 23 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Installing Ghidra 2.3</h2>\n<p>Next, set up Ghidra 2.3<sup id=\"fnref-8\"><a href=\"#fn-8\" class=\"footnote-ref\">8</a></sup>, the reverse engineering tool.</p>\n<p>This book does not explain Ghidra itself or its detailed usage, but the Help bundled with Ghidra and books such as the ones below may be helpful.<sup id=\"fnref-9\"><a href=\"#fn-9\" class=\"footnote-ref\">9</a></sup><sup id=\"fnref-10\"><a href=\"#fn-10\" class=\"footnote-ref\">10</a></sup></p>\n<p>To set up Ghidra, download the Ghidra 10.2.3 package (<code class=\"language-text\">ghidra_10.2.3_PUBLIC_20230208.zip</code>) from the GitHub release page below and extract it.</p>\n<br>\n<p>Ghidra Release Page:</p>\n<p><a href=\"https://github.com/NationalSecurityAgency/ghidra/releases\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://github.com/NationalSecurityAgency/ghidra/releases</a></p>\n<br>\n<p>Next, to install the JDK 17 required to run Ghidra, download the MSI Installer for Windows x64 from the download page below.</p>\n<br>\n<p>Java Downloads:</p>\n<p><a href=\"https://www.oracle.com/jp/java/technologies/downloads/#jdk17-windows\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://www.oracle.com/jp/java/technologies/downloads/#jdk17-windows</a></p>\n<br>\n<p>Run the downloaded JDK 17 MSI installer to complete the JDK 17 installation.</p>\n<p>After the installation is complete, double-click <code class=\"language-text\">ghidraRun.bat</code> inside the extracted <code class=\"language-text\">ghidra_10.2.3_PUBLIC_20230208.zip</code> to start Ghidra.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 500px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/f4181953724ed3e06043574694a36498/0b533/ghidra-setup-001.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 66.25%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAANCAYAAACpUE5eAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABMElEQVQ4y52T646CMBBGef+H25hNjMqlC6VAkZugyx2+7dSA6x9vTU4CneF02g7G76XADCA/HhF4HqJIIggCFEWBvu/Rdd1TmqZBXdfI8xxGLrc4X1olCrHZfMM0TTDGtJQSsix7CSogDEMYRbxH109auNt+Ybfba4QIdGKapi9Bi7uuC+OU2KrkQU1kGIdal9+2rT6GeX4VygaklDAc28YPc1WFEa7Ty7h/ezTuhJz78FSptEUKfMoqXFahc5imaV3xY+EykSTJGvh0SBlfhTRIOI6jZhiGt6B+JQ/dwyrknMP3hbrtAqeyRFWdFdUTzmteWV1gMn4TRqopLcuCYzv6LKhRqbcecWvsVBfi8X9CCsRxfNeoz6At0h9F0DNznJuQZL7v66AQ4m3ou4Np4w8qFebNnCdcUQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/f4181953724ed3e06043574694a36498/8ac56/ghidra-setup-001.webp 240w,\n/static/f4181953724ed3e06043574694a36498/d3be9/ghidra-setup-001.webp 480w,\n/static/f4181953724ed3e06043574694a36498/b0a15/ghidra-setup-001.webp 500w\"\n              sizes=\"(max-width: 500px) 100vw, 500px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/f4181953724ed3e06043574694a36498/8ff5a/ghidra-setup-001.png 240w,\n/static/f4181953724ed3e06043574694a36498/e85cb/ghidra-setup-001.png 480w,\n/static/f4181953724ed3e06043574694a36498/0b533/ghidra-setup-001.png 500w\"\n            sizes=\"(max-width: 500px) 100vw, 500px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/f4181953724ed3e06043574694a36498/0b533/ghidra-setup-001.png\"\n            alt=\"Setting up Ghidra\"\n            title=\"Setting up Ghidra\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>After Ghidra starts, create a project with any name from [File] > [New Project].</p>\n<h2 id=\"downloading-d4c\" style=\"position:relative;\"><a href=\"#downloading-d4c\" aria-label=\"downloading d4c permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Downloading D4C</h2>\n<p>Next, download D4C.exe (v0.1), the tool used in this book to generate dump files for analysis, from the repository below.</p>\n<br>\n<p>D4C Release Page:</p>\n<p><a href=\"https://github.com/kash1064/garyu-windbg/releases/tag/v0.1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://github.com/kash1064/garyu-windbg/releases/tag/v0.1</a><sup id=\"fnref-11\"><a href=\"#fn-11\" class=\"footnote-ref\">11</a></sup></p>\n<br>\n<p>Because this book does not use symbol files for analyzing binaries or dumps, I recommend not downloading <code class=\"language-text\">D4C.pdb</code> at first.</p>\n<h2 id=\"configuring-dump-collection-and-keyboard-crash\" style=\"position:relative;\"><a href=\"#configuring-dump-collection-and-keyboard-crash\" aria-label=\"configuring dump collection and keyboard crash permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Configuring dump collection and keyboard crash</h2>\n<p>Next, on the machine where you will collect dump files, configure full memory dump collection and enable keyboard crash.</p>\n<p>The configuration is simple: copy <code class=\"language-text\">D4C.exe</code>, which you placed in the shared folder earlier, to a local folder on the virtual machine, run it, type <code class=\"language-text\">0</code> at the first menu, and press Enter.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 500px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/9964efa8e3ff7976102f383021848655/0b533/d4c-setting-001.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 58.333333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA8klEQVQoz82Py2rCQBSGxy4zM4kBMzExLnMxD9tLtM9Q0SgiIhoT0ycodNHn+TszIihoG8GFi4+5cM5/vkPy+QLj6QwfkxyrTYFtVWNb7jVF9YndXlKdUsv/A/pe1tgUJZarNb6+f0D6QQDf8xAEPfi+h27XhetKhIBlWeCcweT8T2y7jadWC88vryBJnCCKIoRhiGQwQJqmiOMYQrgwDAOU0n8xTROEEGTDdxDhOLpZWQlp5XQ6cqINxlhj1CY6cCQDtbaccITLtypSk0/PRoHKkF5Z65bQs0B2pbiJ2WXDGxobG9KHDrzryqM7B75lQ/wCLpxNrjs09/0AAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/9964efa8e3ff7976102f383021848655/8ac56/d4c-setting-001.webp 240w,\n/static/9964efa8e3ff7976102f383021848655/d3be9/d4c-setting-001.webp 480w,\n/static/9964efa8e3ff7976102f383021848655/b0a15/d4c-setting-001.webp 500w\"\n              sizes=\"(max-width: 500px) 100vw, 500px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/9964efa8e3ff7976102f383021848655/8ff5a/d4c-setting-001.png 240w,\n/static/9964efa8e3ff7976102f383021848655/e85cb/d4c-setting-001.png 480w,\n/static/9964efa8e3ff7976102f383021848655/0b533/d4c-setting-001.png 500w\"\n            sizes=\"(max-width: 500px) 100vw, 500px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/9964efa8e3ff7976102f383021848655/0b533/d4c-setting-001.png\"\n            alt=\"Changing settings with D4C.exe\"\n            title=\"Changing settings with D4C.exe\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>After that, once the OS is restarted, full memory dump collection and the keyboard crash setting will be enabled.</p>\n<p>For reference, D4C.exe applies settings equivalent to running the following PowerShell script.</p>\n<div class=\"gatsby-highlight\" data-language=\"powershell\"><pre class=\"language-powershell\"><code class=\"language-powershell\"><span class=\"token comment\"># Settings of Full memory dump</span>\n<span class=\"token variable\">$crashControlRegPath</span> = <span class=\"token string\">\"HKLM:System\\CurrentControlSet\\Control\\CrashControl\"</span>\n<span class=\"token variable\">$isExistKey</span> = <span class=\"token function\">Test-Path</span> <span class=\"token operator\">-</span>LiteralPath <span class=\"token variable\">$crashControlRegPath</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token variable\">$isExistKey</span> <span class=\"token operator\">-eq</span> <span class=\"token boolean\">$False</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token function\">New-Item</span> <span class=\"token operator\">-</span>Path <span class=\"token variable\">$crashControlRegPath</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token function\">New-ItemProperty</span> <span class=\"token operator\">-</span>LiteralPath <span class=\"token variable\">$CrashControlRegPath</span> <span class=\"token operator\">-</span>Name <span class=\"token string\">\"CrashDumpEnabled\"</span> <span class=\"token operator\">-</span>PropertyType <span class=\"token string\">\"DWord\"</span> <span class=\"token operator\">-</span>Value <span class=\"token string\">\"1\"</span> <span class=\"token operator\">-</span>Force\n<span class=\"token function\">New-ItemProperty</span> <span class=\"token operator\">-</span>LiteralPath <span class=\"token variable\">$CrashControlRegPath</span> <span class=\"token operator\">-</span>Name <span class=\"token string\">\"AutoReboot\"</span> <span class=\"token operator\">-</span>PropertyType <span class=\"token string\">\"DWord\"</span> <span class=\"token operator\">-</span>Value <span class=\"token string\">\"1\"</span> <span class=\"token operator\">-</span>Force\n<span class=\"token function\">New-ItemProperty</span> <span class=\"token operator\">-</span>LiteralPath <span class=\"token variable\">$CrashControlRegPath</span> <span class=\"token operator\">-</span>Name <span class=\"token string\">\"DumpFile\"</span> <span class=\"token operator\">-</span>PropertyType <span class=\"token string\">\"ExpandString\"</span> <span class=\"token operator\">-</span>Value <span class=\"token string\">\"%SystemRoot%\\FULL_MEMORY.DMP\"</span> <span class=\"token operator\">-</span>Force\n<span class=\"token function\">New-ItemProperty</span> <span class=\"token operator\">-</span>LiteralPath <span class=\"token variable\">$CrashControlRegPath</span> <span class=\"token operator\">-</span>Name <span class=\"token string\">\"LogEvent\"</span> <span class=\"token operator\">-</span>PropertyType <span class=\"token string\">\"DWord\"</span> <span class=\"token operator\">-</span>Value <span class=\"token string\">\"1\"</span> <span class=\"token operator\">-</span>Force\n\n<span class=\"token comment\"># Settings of Full application dump</span>\n<span class=\"token variable\">$localDumpsRegPath</span> = <span class=\"token string\">\"HKLM:SOFTWARE\\Microsoft\\Windows\\Windows Error Reporting\\LocalDumps\"</span>\n<span class=\"token variable\">$isExistKey</span> = <span class=\"token function\">Test-Path</span> <span class=\"token operator\">-</span>LiteralPath <span class=\"token variable\">$localDumpsRegPath</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token variable\">$isExistKey</span> <span class=\"token operator\">-eq</span> <span class=\"token boolean\">$False</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token function\">New-Item</span> <span class=\"token operator\">-</span>Path <span class=\"token variable\">$localDumpsRegPath</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token function\">New-ItemProperty</span> <span class=\"token operator\">-</span>LiteralPath <span class=\"token variable\">$localDumpsRegPath</span> <span class=\"token operator\">-</span>Name <span class=\"token string\">\"DumpFolder\"</span> <span class=\"token operator\">-</span>PropertyType <span class=\"token string\">\"ExpandString\"</span> <span class=\"token operator\">-</span>Value <span class=\"token string\">\"%LOCALAPPDATA%\\CrashDumps\"</span> <span class=\"token operator\">-</span>Force\n<span class=\"token function\">New-ItemProperty</span> <span class=\"token operator\">-</span>LiteralPath <span class=\"token variable\">$localDumpsRegPath</span> <span class=\"token operator\">-</span>Name <span class=\"token string\">\"DumpCount\"</span> <span class=\"token operator\">-</span>PropertyType <span class=\"token string\">\"DWord\"</span> <span class=\"token operator\">-</span>Value <span class=\"token string\">\"2\"</span> <span class=\"token operator\">-</span>Force\n<span class=\"token function\">New-ItemProperty</span> <span class=\"token operator\">-</span>LiteralPath <span class=\"token variable\">$localDumpsRegPath</span> <span class=\"token operator\">-</span>Name <span class=\"token string\">\"DumpType\"</span> <span class=\"token operator\">-</span>PropertyType <span class=\"token string\">\"DWord\"</span> <span class=\"token operator\">-</span>Value <span class=\"token string\">\"2\"</span> <span class=\"token operator\">-</span>Force\n\n<span class=\"token comment\"># Disable CrashOnCtrlScroll</span>\n<span class=\"token variable\">$parameterRegPaths</span> = @<span class=\"token punctuation\">(</span><span class=\"token string\">\"HKLM:System\\CurrentControlSet\\Services\\i8042prt\\Parameters\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token string\">\"HKLM:System\\CurrentControlSet\\Services\\kbdhid\\Parameters\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token string\">\"HKLM:System\\CurrentControlSet\\Services\\hyperkbd\\Parameters\"</span>\n<span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">foreach</span> <span class=\"token punctuation\">(</span><span class=\"token variable\">$parameterRegPath</span> in <span class=\"token variable\">$parameterRegPaths</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token variable\">$isExistKey</span> = <span class=\"token function\">Test-Path</span> <span class=\"token operator\">-</span>LiteralPath <span class=\"token variable\">$parameterRegPath</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token variable\">$isExistKey</span> <span class=\"token operator\">-eq</span> <span class=\"token boolean\">$False</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token function\">New-Item</span> <span class=\"token operator\">-</span>Path <span class=\"token variable\">$parameterRegPath</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token function\">New-ItemProperty</span> <span class=\"token operator\">-</span>LiteralPath <span class=\"token variable\">$parameterRegPath</span> <span class=\"token operator\">-</span>Name <span class=\"token string\">\"CrashOnCtrlScroll\"</span> <span class=\"token operator\">-</span>PropertyType <span class=\"token string\">\"DWord\"</span> <span class=\"token operator\">-</span>Value <span class=\"token string\">\"0\"</span> <span class=\"token operator\">-</span>Force\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token comment\"># Setting alt dump key</span>\n<span class=\"token variable\">$parameterRegPaths</span> = @<span class=\"token punctuation\">(</span><span class=\"token string\">\"HKLM:System\\CurrentControlSet\\Services\\i8042prt\\crashdump\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token string\">\"HKLM:System\\CurrentControlSet\\Services\\kbdhid\\crashdump\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token string\">\"HKLM:System\\CurrentControlSet\\Services\\hyperkbd\\crashdump\"</span>\n<span class=\"token punctuation\">)</span>\n<span class=\"token keyword\">foreach</span> <span class=\"token punctuation\">(</span><span class=\"token variable\">$parameterRegPath</span> in <span class=\"token variable\">$parameterRegPaths</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token variable\">$isExistKey</span> = <span class=\"token function\">Test-Path</span> <span class=\"token operator\">-</span>LiteralPath <span class=\"token variable\">$parameterRegPath</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token variable\">$isExistKey</span> <span class=\"token operator\">-eq</span> <span class=\"token boolean\">$False</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token function\">New-Item</span> <span class=\"token operator\">-</span>Path <span class=\"token variable\">$parameterRegPath</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token function\">New-ItemProperty</span> <span class=\"token operator\">-</span>LiteralPath <span class=\"token variable\">$parameterRegPath</span> <span class=\"token operator\">-</span>Name <span class=\"token string\">\"Dump1Keys\"</span> <span class=\"token operator\">-</span>PropertyType <span class=\"token string\">\"DWord\"</span> <span class=\"token operator\">-</span>Value <span class=\"token string\">\"0x2\"</span> <span class=\"token operator\">-</span>Force\n<span class=\"token function\">New-ItemProperty</span> <span class=\"token operator\">-</span>LiteralPath <span class=\"token variable\">$parameterRegPath</span> <span class=\"token operator\">-</span>Name <span class=\"token string\">\"Dump2Key\"</span> <span class=\"token operator\">-</span>PropertyType <span class=\"token string\">\"DWord\"</span> <span class=\"token operator\">-</span>Value <span class=\"token string\">\"0x3d\"</span> <span class=\"token operator\">-</span>Force\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token comment\"># Change PageFileSize</span>\n<span class=\"token variable\">$totalPhysicalMemSize</span> = $<span class=\"token punctuation\">(</span><span class=\"token namespace\">[Math]</span>::Round<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token function\">Get-WmiObject</span> Win32_OperatingSystem<span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>TotalVisibleMemorySize <span class=\"token operator\">/</span> 1024<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n<span class=\"token variable\">$freeStorageSizeofC</span> = $<span class=\"token punctuation\">(</span><span class=\"token namespace\">[Math]</span>::Round<span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token function\">Get-PSDrive</span> C<span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span>Free <span class=\"token operator\">/</span> 1024 <span class=\"token operator\">/</span> 1024<span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">)</span>\n<span class=\"token variable\">$pageFileSize</span> = <span class=\"token variable\">$totalPhysicalMemSize</span> <span class=\"token operator\">+</span> 400\n<span class=\"token variable\">$pageFileSetting</span> = <span class=\"token string\">\"c:\\pagefile.sys <span class=\"token variable\">$pageFileSize</span> <span class=\"token variable\">$pageFileSize</span>\"</span>\n<span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token variable\">$freeStorageSizeofC</span> <span class=\"token operator\">-gt</span> <span class=\"token variable\">$pageFileSize</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">-eq</span> <span class=\"token boolean\">$True</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n<span class=\"token function\">New-ItemProperty</span> <span class=\"token operator\">-</span>LiteralPath <span class=\"token string\">\"HKLM:System\\CurrentControlSet\\Control\\Session Manager\\Memory Management\"</span> <span class=\"token operator\">-</span>Name <span class=\"token string\">\"PagingFiles\"</span> <span class=\"token operator\">-</span>PropertyType <span class=\"token string\">\"MultiString\"</span> <span class=\"token operator\">-</span>Value <span class=\"token variable\">$pageFileSetting</span> <span class=\"token operator\">-</span>Force\n<span class=\"token punctuation\">}</span> <span class=\"token keyword\">else</span> <span class=\"token punctuation\">{</span>\n<span class=\"token function\">Write-Warning</span> <span class=\"token string\">\"C drive space is too small.\"</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>The configuration procedure above mainly applies the following four settings.</p>\n<ol>\n<li>Change the type of dump generated on system crash to a full memory dump</li>\n<li>Change the page file size to “physical memory size + 400 MB”</li>\n<li>Change the type of process dump generated on application crash to a full dump</li>\n<li>Enable system crash with the operation “press Right Ctrl + Space twice”</li>\n</ol>\n<p>On current Windows systems, when collecting a process dump for an application crash, a minidump collected with options that gather all information can contain more information than a full dump.<sup id=\"fnref-12\"><a href=\"#fn-12\" class=\"footnote-ref\">12</a></sup></p>\n<p>However, the full dump setting is generally sufficient to collect enough information, so in this book I choose full dumps as the type of process dump generated on application crashes because that choice is easier to understand intuitively.</p>\n<p>Also, a full memory dump collected during a system crash includes all page information in the physical memory accessible to the Windows system running on that machine.</p>\n<p>However, to collect a full memory dump, you must configure a page file that is at least “physical memory size + 1 MB.”</p>\n<p>This is the setting required to write out all information in physical memory as a dump file.</p>\n<p>To safely collect a full memory dump, it is also recommended to add another 256 MB or more of page file size beyond “physical memory size + 1 MB” so crash data from device drivers can be included.<sup id=\"fnref-13\"><a href=\"#fn-13\" class=\"footnote-ref\">13</a></sup></p>\n<p>I also introduce an overview of this script in the public blog post below, so if you want to configure the settings manually by running a PowerShell script instead of D4C.exe, please refer to the following link.</p>\n<br>\n<p>Configuring Windows full memory dump collection and keyboard crash with a PowerShell script (Kaeru no Himitsukichi):</p>\n<p><a href=\"https://kashiwaba-yuki.com/windows-setting-fulldump\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://kashiwaba-yuki.com/windows-setting-fulldump</a></p>\n<br>\n<h2 id=\"trying-a-full-memory-dump-on-the-machine\" style=\"position:relative;\"><a href=\"#trying-a-full-memory-dump-on-the-machine\" aria-label=\"trying a full memory dump on the machine permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Trying a full memory dump on the machine</h2>\n<p>To confirm that the settings are working correctly, collect a full memory dump.</p>\n<p>After carrying out the steps in the “Configuring dump collection and keyboard crash” section, sign in to the machine after rebooting.</p>\n<p>Then, while holding down the right Ctrl key on the keyboard, press the Space key twice in quick succession.</p>\n<p>If the keyboard crash setting has been applied, performing those key operations will crash the system and display a blue screen.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 500px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/aed56d2ac06acaecdc7941c14636d092/0b533/fulldump-003.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 49.16666666666667%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABZUlEQVQoz41S2U4CQRBcXxARF8EDwXjFC2OIiQ/GaHzwm4AlgiKigOAVj+iXufeun1J2zyywIQZ5qO2Z7p6artpRlPI3FC2EIqE0BC2If9V69bIuo1IykL6xBRbrNvKPHnIdF/tdT+wzDZnfbLs4eHax0rSw0bax9+BgrWVjt+sgUTMlMZMqmo7MrYV1Kp5++Dh+83Hy7mO742Dr3kGODuzQ+vzrB4cvHo5ePZx9+sg/uaKuElmkog+mZMnxSwMzVwaydxY1GEhem4hRbqpqIFqVtVTdFHuuzdGac5MVY2BVXzJ9eMLVpo15ahQ+FYY8KoZQCFAc8lQLEfKEfHOCblUJyZqcIFqR0/FEKvXEA0yzIo5VuY9R7JMyIZOx3GXCUsOiH2SKOFuTh1k++8Ty+TBL71nCkfNSuvBQR4oIF4gkS9LTDSY1hfzIhY4J9qYUelajnk05kDyysd/8D8ITjtU8Th/hFw2O1/mgLvuiAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/aed56d2ac06acaecdc7941c14636d092/8ac56/fulldump-003.webp 240w,\n/static/aed56d2ac06acaecdc7941c14636d092/d3be9/fulldump-003.webp 480w,\n/static/aed56d2ac06acaecdc7941c14636d092/b0a15/fulldump-003.webp 500w\"\n              sizes=\"(max-width: 500px) 100vw, 500px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/aed56d2ac06acaecdc7941c14636d092/8ff5a/fulldump-003.png 240w,\n/static/aed56d2ac06acaecdc7941c14636d092/e85cb/fulldump-003.png 480w,\n/static/aed56d2ac06acaecdc7941c14636d092/0b533/fulldump-003.png 500w\"\n            sizes=\"(max-width: 500px) 100vw, 500px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/aed56d2ac06acaecdc7941c14636d092/0b533/fulldump-003.png\"\n            alt=\"Blue screen (BSOD)\"\n            title=\"Blue screen (BSOD)\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>After the system restarts, if a <code class=\"language-text\">FULL_MEMORY.DMP</code> file roughly the same size as the virtual machine’s physical memory has been created directly under <code class=\"language-text\">C:\\Windows</code>, you can judge that the full dump setting is working correctly.</p>\n<p>Incidentally, the keyboard crash configured by the procedure in this book does not work when you are connected over RDP.</p>\n<p>If you can use a physical keyboard, you can trigger a system crash by signing in directly to the local machine and pressing the right Ctrl key while pressing the Space key twice.</p>\n<p>If you are using a Hyper-V virtual machine, you can also trigger a keyboard crash by signing in to the machine with Enhanced Session disabled and pressing the right Ctrl key while pressing the Space key twice.</p>\n<p>If you are using another virtual machine platform such as VirtualBox, try seeing whether you can trigger a keyboard crash with a software keyboard.</p>\n<p>If you are in an environment where keyboard crash cannot be used, you can also intentionally reproduce a system crash with <code class=\"language-text\">notmyfault.exe</code>, included in the SysinternalsSuite downloaded when installing the Sysinternals utilities.</p>\n<h2 id=\"configuring-symbol-servers-for-windbg-and-procmon\" style=\"position:relative;\"><a href=\"#configuring-symbol-servers-for-windbg-and-procmon\" aria-label=\"configuring symbol servers for windbg and procmon permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Configuring symbol servers for WinDbg and Procmon</h2>\n<p>When you troubleshoot with tools such as WinDbg or Process Monitor (Procmon), obtaining the proper symbols is extremely important.</p>\n<p>Symbols<sup id=\"fnref-14\"><a href=\"#fn-14\" class=\"footnote-ref\">14</a></sup> are information such as function names and variable names that are not included in executable files such as EXEs and DLLs.</p>\n<p>When you use tools such as WinDbg, obtaining and referencing the appropriate symbols allows you to analyze things more smoothly.</p>\n<p>In general, the symbol information used for dump file analysis can be obtained from the symbol server<sup id=\"fnref-15\"><a href=\"#fn-15\" class=\"footnote-ref\">15</a></sup> published by Microsoft.</p>\n<p>However, symbol information for some non-public modules, or symbol information for software independently developed by third parties, cannot be downloaded from Microsoft’s public symbol server.</p>\n<p>If the program being analyzed was developed by the user, you can also load <code class=\"language-text\">pdb</code> or <code class=\"language-text\">dbg</code> files generated when building the program into the debugger and use them as symbol information.</p>\n<p>In this section, I configure WinDbg and Process Monitor so they can obtain symbols from the symbol server published by Microsoft.</p>\n<p>This book does not require it, but if necessary, it is also a good idea to apply the same settings to Process Explorer.</p>\n<p>First, start WinDbg x64 as administrator and press [Ctrl + S] to open the Symbol Scratch Path window.</p>\n<p>Enter the following value in the Symbol Scratch Path window and click [OK].</p>\n<div class=\"gatsby-highlight\" data-language=\"powershell\"><pre class=\"language-powershell\"><code class=\"language-powershell\">srv*https:<span class=\"token operator\">/</span><span class=\"token operator\">/</span>msdl<span class=\"token punctuation\">.</span>microsoft<span class=\"token punctuation\">.</span>com/download/symbols</code></pre></div>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 500px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/06a570beb37f5c88d5743f41e976f84d/0b533/windbg-symbol-001.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 48.33333333333333%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABjElEQVQoz6WSe0+CUBiH+f5fpJlOByqImxfAa7Y2RZxt3SxDEjW1EBTx13uOzqWt9UdsD7+Xc3kYL0cIfB/eagWfpefx/M8lGLqOSqUCTdNQLpePGEYFtVoNOs2XSjpUtYhiUUM+X0KhwNZWUSK0xg2Mw/5mswmh2WigWq2iddWCZVkwTRPdbhddSlZ3Oh3KDmUbJqsp2ZxlmZDSEi5il4jH44jFYkgkEhBehjZm73P6bB/BenPCesMID3WITRhiFWyw9GhtGKFeryOVSkJRFMiyjGw2C+FuYGMwHOHh+RWDV4fX909D2O4My9Ua80+fBAGmSw/2eIr+ow3juofe4wi6YSCZTHJROp3mCLyTuwg7gm77OorY4Emzt9st3Nkctm2j3TYpR9T7U2Emk9kLd7/AtNFuXwfhFuPZAiMSst46jsN/5g/h8G1Cb15gMv8glmfsx6aUTOa4Uy7s92/hui4/AT+EMj0oiowcNfY3jvM5QlXp6OTpGKkQRfEoOgolSQJD/AtR4oLvnMsYXyzZvMdcurfiAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/06a570beb37f5c88d5743f41e976f84d/8ac56/windbg-symbol-001.webp 240w,\n/static/06a570beb37f5c88d5743f41e976f84d/d3be9/windbg-symbol-001.webp 480w,\n/static/06a570beb37f5c88d5743f41e976f84d/b0a15/windbg-symbol-001.webp 500w\"\n              sizes=\"(max-width: 500px) 100vw, 500px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/06a570beb37f5c88d5743f41e976f84d/8ff5a/windbg-symbol-001.png 240w,\n/static/06a570beb37f5c88d5743f41e976f84d/e85cb/windbg-symbol-001.png 480w,\n/static/06a570beb37f5c88d5743f41e976f84d/0b533/windbg-symbol-001.png 500w\"\n            sizes=\"(max-width: 500px) 100vw, 500px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/06a570beb37f5c88d5743f41e976f84d/0b533/windbg-symbol-001.png\"\n            alt=\"Configuring the Symbol Scratch Path window\"\n            title=\"Configuring the Symbol Scratch Path window\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>After the setting is complete, click [Save Workspace] under [File] in the upper-left corner.</p>\n<p>This saves the setting to the default workspace, so the symbol path configuration will remain in place the next time you start WinDbg.</p>\n<p>Next, run <code class=\"language-text\">Procmon64.exe</code> as administrator from the SysinternalsSuite obtained in the earlier “Installing the Sysinternals utilities” section.</p>\n<p>From the menu at the top of the Procmon window, click [Options] > [Configure Symbols…].</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 500px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/e9eeba7b98afd8eed8b01bc6b167546c/0b533/procmon-symbol-001.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 60%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB40lEQVQoz5VT226bQBDl/6VIVfPQh771H6JWauRGSdTkoQ8pvgEmLra57bLscgkYDPh0IHHrtFWbjnQ4EuyemTMzaGaQQsYRokggTRJEQkAIBcNLYbsSSkq0XYd/xn4/kCa4QMwyiDjGauMhZwFmboiTTwne3UQIfQ8PRYGyLH+g2m7hshgOSxDyEG3bkN6euIVmLxywVQFntYJpLVGul9AJPPCwWTvYuD4YJwciBicXjKCUwujmDme3Or7MbilJgS0l6ciJVlUVtlU5HOozt5SpooqSyMdiqiPyVshiqqJM0BTqCdQKwbGlavuo6xp5nj9a/lM76qbFxVziw12ISzPBpZXifJbiI+F8nuL9WOFbIIez3VF/e9ta/zhGH0XV4O1nhVcjjtMRw5trhdOrHK+vMuIMJxcZJmvVS6Db49ld7aB8/LKj5uYyhO9YcJcmioSj7a0+yCfEyBKJx9M/7/1m+fChnxbnHKZhwTAXcL0AsUwgpCJWA0upcFzMXwV3TYO1F+L+fgnHcWDbNhjjtKvRkIgxRoLy5YL1roHtbDCZTKDrOibjMfSvOizLgkd7GQbhsBUvFuwnx8IAxtyAYRiYE0+nU/i+j5h+gL7K/xI8bH23754NrKFW7Ha7AYd1+VXwO/1tk6Gq5q4FAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/e9eeba7b98afd8eed8b01bc6b167546c/8ac56/procmon-symbol-001.webp 240w,\n/static/e9eeba7b98afd8eed8b01bc6b167546c/d3be9/procmon-symbol-001.webp 480w,\n/static/e9eeba7b98afd8eed8b01bc6b167546c/b0a15/procmon-symbol-001.webp 500w\"\n              sizes=\"(max-width: 500px) 100vw, 500px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/e9eeba7b98afd8eed8b01bc6b167546c/8ff5a/procmon-symbol-001.png 240w,\n/static/e9eeba7b98afd8eed8b01bc6b167546c/e85cb/procmon-symbol-001.png 480w,\n/static/e9eeba7b98afd8eed8b01bc6b167546c/0b533/procmon-symbol-001.png 500w\"\n            sizes=\"(max-width: 500px) 100vw, 500px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/e9eeba7b98afd8eed8b01bc6b167546c/0b533/procmon-symbol-001.png\"\n            alt=\"Configuring Configure Symbols\"\n            title=\"Configuring Configure Symbols\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>By default, <code class=\"language-text\">C:\\WINDOWS\\SYSTEM32\\dbghelp.dll</code> is registered in [DbgHelp.dll path(version 6.0 or later)].</p>\n<p>However, <code class=\"language-text\">C:\\WINDOWS\\SYSTEM32\\dbghelp.dll</code> usually does not satisfy the requirement of version 6.0 or later, so you need to specify the path to a <code class=\"language-text\">dbghelp.dll</code> that does satisfy that requirement.</p>\n<p>A <code class=\"language-text\">dbghelp.dll</code> that meets this requirement is located directly under <code class=\"language-text\">C:\\Program Files (x86)\\Windows Kits\\10\\Debuggers\\x64</code>, along with WinDbg x64 installed in the earlier “Installing Debugging Tools for Windows” section.</p>\n<p>Therefore, specify the following path in [DbgHelp.dll path(version 6.0 or later)].</p>\n<div class=\"gatsby-highlight\" data-language=\"powershell\"><pre class=\"language-powershell\"><code class=\"language-powershell\">C:\\Program Files <span class=\"token punctuation\">(</span>x86<span class=\"token punctuation\">)</span>\\Windows Kits\\10\\Debuggers\\x64\\dbghelp<span class=\"token punctuation\">.</span>dll</code></pre></div>\n<p>Also, in [Symbol paths:], specify the address of Microsoft’s symbol server, just as you did for WinDbg.</p>\n<div class=\"gatsby-highlight\" data-language=\"powershell\"><pre class=\"language-powershell\"><code class=\"language-powershell\">srv*https:<span class=\"token operator\">/</span><span class=\"token operator\">/</span>msdl<span class=\"token punctuation\">.</span>microsoft<span class=\"token punctuation\">.</span>com/download/symbols</code></pre></div>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 500px; \"\n    >\n      <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/6c17ed61bf717d4b603ba711b9911bc9/0b533/procmon-symbol-002.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n    <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 81.25%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACnUlEQVQ4y3VU2XLaQBDk/78pD3lIpVKxMWAQkpDQfcs60I0EdGYWbJzgbFXX7K52e6fn0EwLCzRtjbquMfQdqrZFT+i6HnXboe1anC8Q43LGl+N8PuN0Ogk7C4MI5duA8nCA7fhoogBOnsK1DVSBi7c0R5H5KIsc3bGElNRQwwg7N4LspLA8m8gmXOhRJp0pqoHYaWCYFtTdHr3vQKZD86dfqOw9HMeDbUjI6ZF+yPHdLvBsufi5lPHtaYOVNkdHipqmJdILZv0wkKsTsixHFIZIyIZegCwvyKMjWjpc1y3GcUTfD7iMdH6acOx7NNWBwnBBkiQoy1LIn03TSUyapkEcRYgIcZyIdUUXquoa3wOFRNiqEvPDoaJvV+R5Lr4Jwn6cxIQPbSUJm/UG69UrFosFVssVXmm+XCyxfFngZT6HvJVhGAZ0TYdpmvD9gByIxX1BOE5XQn7J2O8JhrB84X3uui5cx6F4XsFrx3YoYW9CCUt+JKQNVVEgrSXI0lZ4y97w3LZt+J5P3viCyCUUFGOWWRSFeOCDcPiQXEFVd1iTZNMigiAUCKhEPJJl0Z5LpLzmfU5aSXfY2vQAK/yLkD+qpg/F8KA5EXQ3xp7hJWLNMMMMWTsia0ak9UA4Ii5bWKTggZBd1nYathsJ0oYkbxkyhUEV0nfkvSIrYs7hkOjclsKhqqoIxQMhb3DWOBF7fQ+P4vIet7v14P2DgMLBpXaP4a0OecNzPVECTMD1xhmsm/pmG2F76m3uebZd19F/oBFJuXv4iZALVFym7FUfBXwFFzn3uxdn1L+UsCRHmqaijCzLeiTkDZYQUvsFQSDsZ3Bben6I35KJHy8KnmULuq5Bonjqun4nPN4I+U/R3GT9D+0Xknvqae53vs/jD/VFshBwppCnAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <picture>\n          <source\n              srcset=\"/static/6c17ed61bf717d4b603ba711b9911bc9/8ac56/procmon-symbol-002.webp 240w,\n/static/6c17ed61bf717d4b603ba711b9911bc9/d3be9/procmon-symbol-002.webp 480w,\n/static/6c17ed61bf717d4b603ba711b9911bc9/b0a15/procmon-symbol-002.webp 500w\"\n              sizes=\"(max-width: 500px) 100vw, 500px\"\n              type=\"image/webp\"\n            />\n          <source\n            srcset=\"/static/6c17ed61bf717d4b603ba711b9911bc9/8ff5a/procmon-symbol-002.png 240w,\n/static/6c17ed61bf717d4b603ba711b9911bc9/e85cb/procmon-symbol-002.png 480w,\n/static/6c17ed61bf717d4b603ba711b9911bc9/0b533/procmon-symbol-002.png 500w\"\n            sizes=\"(max-width: 500px) 100vw, 500px\"\n            type=\"image/png\"\n          />\n          <img\n            class=\"gatsby-resp-image-image\"\n            src=\"/static/6c17ed61bf717d4b603ba711b9911bc9/0b533/procmon-symbol-002.png\"\n            alt=\"Setting the symbol server in Procmon\"\n            title=\"Setting the symbol server in Procmon\"\n            loading=\"lazy\"\n            style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n          />\n        </picture>\n  </a>\n    </span></p>\n<p>This completes symbol server configuration.</p>\n<h2 id=\"summary-of-chapter-1\" style=\"position:relative;\"><a href=\"#summary-of-chapter-1\" aria-label=\"summary of chapter 1 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Summary of Chapter 1</h2>\n<p>In this chapter, I set up the tools needed for analyzing Windows dump files and for troubleshooting.</p>\n<p>When you analyze dump files for troubleshooting, it is important to understand in advance what kind of information is included in the dump files you collect and roughly how large those files will be.</p>\n<p>Also, while dump files certainly contain a great deal of information, the information you can inspect from a dump file is only a snapshot of memory at the instant the dump was collected.</p>\n<p>So, to troubleshoot more efficiently, you also need to use various investigation tools to trace system behavior before and after the problem occurs, and to investigate OS and application log files.</p>\n<p>I do not believe there is a single fixed formula for troubleshooting.</p>\n<p>Although this book focuses on analyzing Windows dump files, when you actually troubleshoot I hope you will use a variety of tools and features and enjoy analyzing the issue from every angle.</p>\n<h2 id=\"links-to-each-chapter\" style=\"position:relative;\"><a href=\"#links-to-each-chapter\" aria-label=\"links to each chapter permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Links to each chapter</h2>\n<ul>\n<li><a href=\"/magical-windbg-vol1-00-en\">Preface</a></li>\n<li><a href=\"/magical-windbg-vol1-01-en\">Chapter 1: Environment Setup</a></li>\n<li><a href=\"/magical-windbg-vol1-02-en\">Chapter 2: Basic WinDbg Operations</a></li>\n<li><a href=\"/magical-windbg-vol1-03-en\">Chapter 3: Prerequisites for Analysis</a></li>\n<li><a href=\"/magical-windbg-vol1-04-en\">Chapter 4: Analyzing Application Crash Dumps</a></li>\n<li><a href=\"/magical-windbg-vol1-05-en\">Chapter 5: Analyzing Full Memory Dumps from System Crashes</a></li>\n<li><a href=\"/magical-windbg-vol1-06-en\">Chapter 6: Investigating User-Mode Application Memory Leaks from Process Dumps</a></li>\n<li><a href=\"/magical-windbg-vol1-07-en\">Chapter 7: Investigating User-Mode Memory Leaks from Full Memory Dumps</a></li>\n<li><a href=\"/magical-windbg-vol1-50-en\">Appendix A: WinDbg Tips</a></li>\n<li><a href=\"/magical-windbg-vol1-51-en\">Appendix B: Analyzing Crash Dumps with Volatility 3</a></li>\n</ul>\n<div class=\"footnotes\">\n<hr>\n<ol>\n<li id=\"fn-1\">\n<p>What is WinDbg <a href=\"https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/windbg-overview?source=recommendations\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/windbg-overview?source=recommendations</a></p>\n<a href=\"#fnref-1\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-2\">\n<p>GFlags <a href=\"https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/gflags\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/gflags</a></p>\n<a href=\"#fnref-2\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-3\">\n<p>Windows SDK - Windows app development <a href=\"https://developer.microsoft.com/ja-jp/windows/downloads/windows-sdk/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://developer.microsoft.com/ja-jp/windows/downloads/windows-sdk/</a></p>\n<a href=\"#fnref-3\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-4\">\n<p>Process Monitor <a href=\"https://learn.microsoft.com/ja-jp/sysinternals/downloads/procmon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://learn.microsoft.com/ja-jp/sysinternals/downloads/procmon</a></p>\n<a href=\"#fnref-4\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-5\">\n<p>Process Explorer <a href=\"https://learn.microsoft.com/ja-jp/sysinternals/downloads/process-explorer\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://learn.microsoft.com/ja-jp/sysinternals/downloads/process-explorer</a></p>\n<a href=\"#fnref-5\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-6\">\n<p>Sysinternals <a href=\"https://learn.microsoft.com/ja-jp/sysinternals\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://learn.microsoft.com/ja-jp/sysinternals</a></p>\n<a href=\"#fnref-6\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-7\">\n<p>Windows Sysinternals徹底解説 : 無償ツールで極めるトラブルシューティングテクニック (by Mark E. Russinovich, Aaron Margosis / translated by 山内 和朗 / 日経BP社 / 2017)</p>\n<a href=\"#fnref-7\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-8\">\n<p>Ghidra <a href=\"https://github.com/NationalSecurityAgency/ghidra\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://github.com/NationalSecurityAgency/ghidra</a></p>\n<a href=\"#fnref-8\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-9\">\n<p>マスタリング Ghidra 基礎から学ぶリバースエンジニアリング完全マニュアル (by Chris Eagle, Kara Nance / technical supervision by 石川 朝久 / translated by 中島 将太, 小竹 泰一, 原 弘明 / オライリー・ジャパン / 2022)</p>\n<a href=\"#fnref-9\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-10\">\n<p>リバースエンジニアリングツール Ghidra 実践ガイド セキュリティコンテスト入門からマルウェア解析まで (by 中島 将太, 小竹 泰一, 原 弘明, 川畑 公平 / マイナビ出版 / 2020)</p>\n<a href=\"#fnref-10\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-11\">\n<p>garyu-windbg <a href=\"https://github.com/kash1064/garyu-windbg/releases/tag/v0.1\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://github.com/kash1064/garyu-windbg/releases/tag/v0.1</a></p>\n<a href=\"#fnref-11\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-12\">\n<p>User-mode dump files <a href=\"https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/user-mode-dump-files\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/user-mode-dump-files</a></p>\n<a href=\"#fnref-12\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-13\">\n<p><em>Windows Internals, 7th Edition, Part 2</em>, p.571 (by Andrea Allievi, Mark E. Russinovich, Alex Ionescu, David A. Solomon / translated by 山内和朗 / 日系 BP 社 / 2022)</p>\n<a href=\"#fnref-13\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-14\">\n<p>Symbols and symbol files <a href=\"https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/symbols-and-symbol-files\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/symbols-and-symbol-files</a></p>\n<a href=\"#fnref-14\" class=\"footnote-backref\">↩</a>\n</li>\n<li id=\"fn-15\">\n<p>Using a symbol server <a href=\"https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/using-a-symbol-server\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/using-a-symbol-server</a></p>\n<a href=\"#fnref-15\" class=\"footnote-backref\">↩</a>\n</li>\n</ol>\n</div>","fields":{"slug":"/magical-windbg-vol1-01-en","tagSlugs":["/tag/magical-win-dbg/","/tag/windows/","/tag/win-dbg/","/tag/english/"]},"frontmatter":{"date":"2023-11-15","description":"This is the web edition of Magical WinDbg - Enjoying Windows Dump Analysis and Troubleshooting by Feel - VOL.1, distributed at Tech Book Fest 15.","tags":["Magical WinDbg","Windows","WinDbg","English"],"title":"Magical WinDbg VOL.1 [Chapter 1: Environment Setup]","socialImage":{"publicURL":"/static/2dbf3e09d59db889dc9dc41adcc8e827/magical-windbg-vol1.png"}}}},"pageContext":{"slug":"/magical-windbg-vol1-01-en"}},"staticQueryHashes":["251939775","401334301","825871152"]}