aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Misc/EfiGuard.pngbin24954 -> 0 bytes
-rw-r--r--Misc/EfiGuard.svg243
-rw-r--r--README.md2
3 files changed, 244 insertions, 1 deletions
diff --git a/Misc/EfiGuard.png b/Misc/EfiGuard.png
deleted file mode 100644
index 1f85806..0000000
--- a/Misc/EfiGuard.png
+++ /dev/null
Binary files differ
diff --git a/Misc/EfiGuard.svg b/Misc/EfiGuard.svg
new file mode 100644
index 0000000..d344fb2
--- /dev/null
+++ b/Misc/EfiGuard.svg
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill-opacity="1" color-rendering="auto" color-interpolation="auto" text-rendering="auto" stroke="black" stroke-linecap="square" width="882" stroke-miterlimit="10" shape-rendering="auto" stroke-opacity="1" fill="black" stroke-dasharray="none" font-weight="normal" stroke-width="1" height="396" font-family="'Dialog'" font-style="normal" stroke-linejoin="miter" font-size="12px" stroke-dashoffset="0" image-rendering="auto">
+ <!--Generated by ySVG 2.6-->
+ <defs id="genericDefs"/>
+ <g>
+ <defs id="defs1">
+ <linearGradient x1="210" gradientUnits="userSpaceOnUse" x2="279.3965" y1="287.6509" y2="322.3491" id="linearGradient1" spreadMethod="reflect">
+ <stop stop-opacity="1" stop-color="rgb(232,238,247)" offset="0%"/>
+ <stop stop-opacity="1" stop-color="rgb(183,201,227)" offset="100%"/>
+ </linearGradient>
+ <clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+ <path d="M0 0 L882 0 L882 396 L0 396 L0 0 Z"/>
+ </clipPath>
+ <clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+ <path d="M-202 80 L719 80 L719 493.5102 L-202 493.5102 L-202 80 Z"/>
+ </clipPath>
+ <clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+ <path d="M-205 77 L716 77 L716 490.5102 L-205 490.5102 L-205 77 Z"/>
+ </clipPath>
+ <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+ <path d="M-404 -199.6509 L517 -199.6509 L517 213.8593 L-404 213.8593 L-404 -199.6509 Z"/>
+ </clipPath>
+ <clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+ <path d="M-316.9336 -59.2 L419.8664 -59.2 L419.8664 271.6082 L-316.9336 271.6082 L-316.9336 -59.2 Z"/>
+ </clipPath>
+ <clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+ <path d="M-33.2075 521.819 L-33.2075 -214.981 L297.6006 -214.981 L297.6006 521.819 L-33.2075 521.819 Z"/>
+ </clipPath>
+ </defs>
+ <g fill="white" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="scale(0.9577,0.9577) translate(202,-80)" stroke="white">
+ <rect x="-202" width="921" height="415" y="79" clip-path="url(#clipPath2)" stroke="none"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" stroke-dasharray="6,2" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <rect fill="none" x="-175.5" width="45.0765" height="30" y="452.3491" clip-path="url(#clipPath2)"/>
+ <text x="-122.0941" y="472.4136" clip-path="url(#clipPath2)" font-family="sans-serif" stroke-dasharray="none" stroke="none" xml:space="preserve">optional</text>
+ </g>
+ <g fill="rgb(179,166,145)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124) translate(3,3)" stroke="rgb(179,166,145)">
+ <rect x="194.1509" y="121.5" clip-path="url(#clipPath3)" width="107.3965" rx="4" ry="4" height="65" stroke="none"/>
+ </g>
+ <g fill="rgb(255,204,0)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke="rgb(255,204,0)">
+ <rect x="194.1509" y="121.5" clip-path="url(#clipPath2)" width="107.3965" rx="4" ry="4" height="65" stroke="none"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <rect x="194.1509" y="121.5" clip-path="url(#clipPath2)" fill="none" width="107.3965" rx="4" ry="4" height="65"/>
+ <text x="238.5152" xml:space="preserve" y="151.3633" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">EFI</text>
+ <text x="210.8325" xml:space="preserve" y="166.0645" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">Boot Services</text>
+ </g>
+ <g fill="rgb(179,166,145)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124) translate(3,3)" stroke="rgb(179,166,145)">
+ <rect x="396.5754" y="121.5" clip-path="url(#clipPath3)" width="107.3965" rx="4" ry="4" height="65" stroke="none"/>
+ </g>
+ <g fill="rgb(255,204,0)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke="rgb(255,204,0)">
+ <rect x="396.5754" y="121.5" clip-path="url(#clipPath2)" width="107.3965" rx="4" ry="4" height="65" stroke="none"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <rect x="396.5754" y="121.5" clip-path="url(#clipPath2)" fill="none" width="107.3965" rx="4" ry="4" height="65"/>
+ <text x="440.9397" xml:space="preserve" y="151.3633" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">EFI</text>
+ <text x="403.2581" xml:space="preserve" y="166.0645" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">Runtime Services</text>
+ </g>
+ <g fill="rgb(179,166,145)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124) translate(3,3)" stroke="rgb(179,166,145)">
+ <rect x="454" width="95" height="54" y="278" clip-path="url(#clipPath3)" stroke="none"/>
+ </g>
+ <g fill="rgb(255,255,153)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke="rgb(255,255,153)">
+ <rect x="454" width="95" height="54" y="278" clip-path="url(#clipPath2)" stroke="none"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <text x="471.8193" xml:space="preserve" y="309.7139" clip-path="url(#clipPath2)" stroke="none">Winload.efi</text>
+ <rect fill="none" x="454" width="95" height="54" y="278" clip-path="url(#clipPath2)"/>
+ </g>
+ <g fill="rgb(179,166,145)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124) translate(3,3)" stroke="rgb(179,166,145)">
+ <rect x="320" width="95" height="54" y="278" clip-path="url(#clipPath3)" stroke="none"/>
+ </g>
+ <g fill="rgb(255,255,153)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke="rgb(255,255,153)">
+ <rect x="320" width="95" height="54" y="278" clip-path="url(#clipPath2)" stroke="none"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <text x="336.8203" xml:space="preserve" y="309.7139" clip-path="url(#clipPath2)" stroke="none">Bootmgr.efi</text>
+ <rect x="320" y="278" clip-path="url(#clipPath2)" fill="none" width="95" stroke-dasharray="6,2" height="54"/>
+ </g>
+ <g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,386.8925,191.1966)" image-rendering="optimizeQuality">
+ <image x="0" y="0" clip-path="url(#clipPath4)" width="90" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAAA3CAYAAACMwl2GAAAC7UlEQVR4Xu2bB3PT&#13;&#10;QBBGlw4xNfRuCC0xMPTeO+H//x/2zepAWYyLJCe6834zb0ZxPLL1tFopexORSCQS&#13;&#10;iUQikci/2eWIdByk7lb2KHtr8DOvh/SWQWCSe0A5pKxUsM1r+6r3hPAGSYKRiMyB&#13;&#10;ckxZVU4pp5WTynHlsHKwem8InzHjBCMTsReUobJWcU25pJxVTkgInymTBCPzurKu&#13;&#10;3FceVTxQRsoN5YqE8ImZJpjK3VAeKs+V18q7ijfKCzHpdyWEj828gt8qH5UvyreK&#13;&#10;r8onMekvJYRvSVPBSP2h/FQ2a/Aa0kN4lS4E//oPIVwWK9izlMK3U7BnKYTvpGBP&#13;&#10;kcL7JNhThPA+C/ZkKTwnwZ4shOcs2NNL4eyQHZcg2NNWeGeyUxXvF5sDM64sQbBn&#13;&#10;HuEU2UCs6DqRnSoZyeyYM3pebETJNI0JWu6CPZOEj8SK66LYPJzq7kR2qmZWMziL&#13;&#10;SOaDOMNPxaZppQj2JOEcG8IpJoqKUe1NMdmrYlc5K0CtRFPN7GQgdga5dO6InV0v&#13;&#10;mS/mv2zu+OpmNPtErLK5qs8oR8SueFw1DmcJ0Zw1zt5l5bZYT+Zyei82uvwufydr&#13;&#10;/svmCsfCMXFsFNMHseJ6LHZfGordq2gf3Bhbi6Z1cJc9KnYjGIr1Z2QzeK/35xKE&#13;&#10;J8H1tpH6NJJHYis+tFHaKW21desgqX2wQ2SnJw7uwnwobaQE4ZME0y7uKbdk65MH&#13;&#10;V3rraq4nya4/Q9OfaCW5C59V8FXlnFgLrT9L46Z1NdfDzkoS3kQwN76F/LEyLrkL&#13;&#10;771gn9yEZyfYp+/Csxfs0zfhxQn22WnhxQv22W7hSyfYZ9HCl16wT9fCQ/CUtBWO&#13;&#10;WGA7BM+QpsI/V7AdgufIrMKZFj4TE/tKbAjPNC0Ez5lpwlnZWRdb3UHuhthKB9O0&#13;&#10;ENwgXjiTMoQznuXfK5AOLCWllekQ3CJe+IrYPBzpwDZVH4I7Sl04QpEOrNPxGr8L&#13;&#10;wR0HoUl82o5EIpFIJBKJ/Mlv3YN3YBgBItQAAAAASUVORK5CYII=" height="55" preserveAspectRatio="none"/>
+ <path fill="url(#linearGradient1)" d="M244.6983 287.6509 L279.3965 305 L244.6983 322.3491 L210 305 Z" clip-path="url(#clipPath2)" transform="matrix(1,0,0,1,-202,-279.6509)" stroke="none" image-rendering="auto"/>
+ <path stroke-linecap="butt" transform="matrix(1,0,0,1,-202,-279.6509)" clip-path="url(#clipPath2)" fill="none" image-rendering="auto" d="M244.6983 287.6509 L279.3965 305 L244.6983 322.3491 L210 305 Z" stroke-miterlimit="1.45"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <text x="223.0244" xml:space="preserve" y="309.7139" clip-path="url(#clipPath2)" stroke="none">WinPE?</text>
+ </g>
+ <g fill="rgb(179,166,145)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124) translate(3,3)" stroke="rgb(179,166,145)">
+ <rect x="75.5" width="95" height="54" y="278" clip-path="url(#clipPath3)" stroke="none"/>
+ </g>
+ <g fill="rgb(255,255,153)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke="rgb(255,255,153)">
+ <rect x="75.5" width="95" height="54" y="278" clip-path="url(#clipPath2)" stroke="none"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <text x="88.3184" xml:space="preserve" y="309.7139" clip-path="url(#clipPath2)" stroke="none">Bootmgfw.efi</text>
+ <rect fill="none" x="75.5" width="95" height="54" y="278" clip-path="url(#clipPath2)"/>
+ </g>
+ <g fill="rgb(179,166,145)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124) translate(3,3)" stroke="rgb(179,166,145)">
+ <rect x="-59" width="95" height="54" y="278" clip-path="url(#clipPath3)" stroke="none"/>
+ </g>
+ <g fill="rgb(204,255,255)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke="rgb(204,255,255)">
+ <rect x="-59" width="95" height="54" y="278" clip-path="url(#clipPath2)" stroke="none"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <text x="-38.1865" xml:space="preserve" y="309.7139" clip-path="url(#clipPath2)" stroke="none">Loader.efi</text>
+ <rect x="-59" y="278" clip-path="url(#clipPath2)" fill="none" width="95" stroke-dasharray="6,2" height="54"/>
+ </g>
+ <g fill="rgb(179,166,145)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124) translate(3,3)" stroke="rgb(179,166,145)">
+ <rect x="-193.5" width="95" height="54" y="278" clip-path="url(#clipPath3)" stroke="none"/>
+ </g>
+ <g fill="rgb(255,204,0)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke="rgb(255,204,0)">
+ <rect x="-193.5" width="95" height="54" y="278" clip-path="url(#clipPath2)" stroke="none"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <text x="-169.3379" xml:space="preserve" y="302.3633" clip-path="url(#clipPath2)" stroke="none">EFI DXE</text>
+ <text x="-174.6787" xml:space="preserve" y="317.0645" clip-path="url(#clipPath2)" stroke="none">Dispatcher</text>
+ <rect fill="none" x="-193.5" width="95" height="54" y="278" clip-path="url(#clipPath2)"/>
+ </g>
+ <g fill="rgb(179,166,145)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124) translate(3,3)" stroke="rgb(179,166,145)">
+ <rect x="-71.5" width="120" height="65" y="121.5" clip-path="url(#clipPath3)" stroke="none"/>
+ </g>
+ <g text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)">
+ <rect x="-71.5" width="120" height="65" y="121.5" clip-path="url(#clipPath2)" stroke="none"/>
+ </g>
+ <g stroke-linecap="butt" font-size="14px" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" fill="white" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" stroke="white" font-weight="bold" stroke-miterlimit="1.45">
+ <text x="-64.0137" xml:space="preserve" y="159.4995" clip-path="url(#clipPath2)" stroke="none">EfiGuardDxe.efi</text>
+ </g>
+ <g stroke-linecap="butt" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" fill="rgb(51,51,0)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" stroke="rgb(51,51,0)" stroke-miterlimit="1.45">
+ <rect fill="none" x="-71.5" width="120" height="65" y="121.5" clip-path="url(#clipPath2)"/>
+ </g>
+ <g fill="rgb(179,166,145)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124) translate(3,3)" stroke="rgb(179,166,145)">
+ <rect x="588" width="120" height="82.6484" y="263.6758" clip-path="url(#clipPath3)" stroke="none"/>
+ </g>
+ <g fill="rgb(255,255,153)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke="rgb(255,255,153)">
+ <rect x="588" width="120" height="82.6484" y="263.6758" clip-path="url(#clipPath2)" stroke="none"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <text x="646.333" xml:space="preserve" y="302.3633" clip-path="url(#clipPath2)" stroke="none"> </text>
+ <text x="614.6543" xml:space="preserve" y="317.0645" clip-path="url(#clipPath2)" stroke="none">Ntoskrnl.exe</text>
+ <rect fill="none" x="588" width="120" height="82.6484" y="263.6758" clip-path="url(#clipPath2)"/>
+ </g>
+ <g fill="rgb(60,103,155)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke="rgb(60,103,155)">
+ <rect x="588" width="30" height="30" y="263.6758" clip-path="url(#clipPath2)" stroke="none"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <rect fill="none" x="588" width="30" height="30" y="263.6758" clip-path="url(#clipPath2)"/>
+ <text x="594.3311" y="283.3896" clip-path="url(#clipPath2)" fill="white" font-family="sans-serif" stroke="none" xml:space="preserve">PG</text>
+ </g>
+ <g fill="rgb(60,103,155)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke="rgb(60,103,155)">
+ <rect x="618" width="30" height="30" y="263.6758" clip-path="url(#clipPath2)" stroke="none"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <rect fill="none" x="618" width="30" height="30" y="263.6758" clip-path="url(#clipPath2)"/>
+ <text x="620.6631" y="283.3896" clip-path="url(#clipPath2)" fill="white" font-family="sans-serif" stroke="none" xml:space="preserve">DSE</text>
+ </g>
+ <g fill="rgb(179,166,145)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124) translate(3,3)" stroke="rgb(179,166,145)">
+ <rect x="599" width="95" height="54" y="127" clip-path="url(#clipPath3)" stroke="none"/>
+ </g>
+ <g fill="rgb(183,201,227)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke="rgb(183,201,227)">
+ <rect x="599" width="95" height="54" y="127" clip-path="url(#clipPath2)" stroke="none"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <text x="627.1582" xml:space="preserve" y="158.7139" clip-path="url(#clipPath2)" stroke="none">HAL.dll</text>
+ <rect fill="none" x="599" width="95" height="54" y="127" clip-path="url(#clipPath2)"/>
+ </g>
+ <g fill="rgb(179,166,145)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124) translate(3,3)" stroke="rgb(179,166,145)">
+ <rect x="600.5" width="95" height="54" y="429" clip-path="url(#clipPath3)" stroke="none"/>
+ </g>
+ <g fill="rgb(204,255,255)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke="rgb(204,255,255)">
+ <rect x="600.5" width="95" height="54" y="429" clip-path="url(#clipPath2)" stroke="none"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <text x="609.3223" xml:space="preserve" y="460.7139" clip-path="url(#clipPath2)" stroke="none">EfiDSEFix.exe</text>
+ <rect x="600.5" y="429" clip-path="url(#clipPath2)" fill="none" width="95" stroke-dasharray="6,2" height="54"/>
+ <rect stroke-linecap="square" x="-193.5" y="367.4596" clip-path="url(#clipPath2)" width="901.5" height="1" stroke="none" stroke-miterlimit="10"/>
+ <text x="-177.5195" xml:space="preserve" y="357.9723" clip-path="url(#clipPath2)" stroke="none">Kernel mode</text>
+ <text x="-145.167" xml:space="preserve" y="372.6735" clip-path="url(#clipPath2)" stroke="none"> </text>
+ <text x="-172.8438" xml:space="preserve" y="387.3747" clip-path="url(#clipPath2)" stroke="none">User mode</text>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <path fill="none" d="M437.5 298.125 L440.425 303 L415 303 L415 307 L440.425 307 L437.5 311.875 L454 305 L437.5 298.125 Z" clip-path="url(#clipPath2)"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <path fill="none" d="M242.6983 322.3904 L242.6983 353.7883 L242.6983 355.7883 L503.5 355.7883 L503.5 353.7883 L503.5 345.575 L508.375 348.5 L501.5 332 L494.625 348.5 L499.5 345.575 L499.5 351.7883 L246.6983 351.7883 L246.6983 322.3904 Z" clip-path="url(#clipPath2)"/>
+ <text x="249.0283" xml:space="preserve" y="343.9579" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">No</text>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <path fill="none" d="M303.5 298.125 L306.425 303 L279.3862 303 L279.3862 307 L306.425 307 L303.5 311.875 L320 305 L303.5 298.125 Z" clip-path="url(#clipPath2)"/>
+ <text x="280.3594" xml:space="preserve" y="298.7139" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">Yes</text>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <path fill="none" d="M219.0689 184.8852 L152.9555 264.8467 L152.9555 264.8467 L151.0137 259.3485 L145.324 278 L162.574 268.9068 L156.809 268.0327 L156.809 268.0327 L222.9223 188.0713 L219.0689 184.8852 Z" clip-path="url(#clipPath2)"/>
+ <text x="150.3251" xml:space="preserve" y="227.8806" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">patch</text>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <path fill="none" d="M193.5265 298.125 L196.4515 303 L170.5 303 L170.5 307 L196.4515 307 L193.5265 311.875 L210.0265 305 L193.5265 298.125 Z" clip-path="url(#clipPath2)"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <path fill="none" d="M36 305 L67.5 305" clip-path="url(#clipPath2)"/>
+ <path d="M75.5 305 L63.5 300 L66.5 305 L63.5 310 Z" clip-path="url(#clipPath2)" stroke="none"/>
+ <path fill="none" stroke-dasharray="6,2" d="M-98.5 305 L-67.0386 305" clip-path="url(#clipPath2)"/>
+ <path stroke-dasharray="6,2" d="M-59.0386 305 L-71.0386 300 L-68.0386 305 L-71.0386 310 Z" clip-path="url(#clipPath2)" stroke="none"/>
+ <path fill="none" d="M-121.9503 278 L-45.7697 192.4738" clip-path="url(#clipPath2)"/>
+ <path d="M-40.4487 186.5 L-52.1639 192.1351 L-46.4349 193.2206 L-44.6966 198.7864 Z" clip-path="url(#clipPath2)" stroke="none"/>
+ <path fill="none" d="M-11.5 278 L-11.5 194.5" clip-path="url(#clipPath2)"/>
+ <path d="M-11.5 186.5 L-16.5 198.5 L-11.5 195.5 L-6.5 198.5 Z" clip-path="url(#clipPath2)" stroke="none"/>
+ <text x="-3.8438" xml:space="preserve" y="237.9639" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">load</text>
+ <path fill="none" d="M-40.4487 186.5 L-116.6293 272.0262" clip-path="url(#clipPath2)"/>
+ <path d="M-121.9503 278 L-110.2351 272.3649 L-115.9642 271.2794 L-117.7024 265.7136 Z" clip-path="url(#clipPath2)" stroke="none"/>
+ <path fill="none" d="M48.5 154 L194.167 154" stroke-width="3" clip-path="url(#clipPath2)"/>
+ <path fill="white" d="M0 0 L-16 -6 L-16 6 Z" stroke-width="3" clip-path="url(#clipPath5)" transform="matrix(1.25,0,0,1.25,194.167,154)" stroke="none"/>
+ <path fill="none" d="M0 0 L-16 -6 L-16 6 Z" clip-path="url(#clipPath5)" transform="matrix(1.25,0,0,1.25,194.167,154)"/>
+ <line transform="matrix(1.25,0,0,1.25,194.167,154)" clip-path="url(#clipPath5)" fill="none" x1="-21" x2="-21" y1="-8" y2="8"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <text x="94.3147" xml:space="preserve" y="168.7139" clip-path="url(#clipPath2)" stroke="none">hook</text>
+ <path fill="none" stroke-dasharray="18,6" d="M-11.5 121.5 L-11.5 88.7 L450.2737 88.7 L450.2737 121.5094" stroke-width="3" clip-path="url(#clipPath2)"/>
+ </g>
+ <g stroke-linecap="butt" transform="matrix(0,1.1971,-1.1971,0,624.653,39.7517)" fill="white" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" stroke-dasharray="18,6" stroke="white" stroke-width="3" stroke-miterlimit="1.45">
+ <path d="M0 0 L-16 -6 L-16 6 Z" stroke="none" clip-path="url(#clipPath6)"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(0,1.1971,-1.1971,0,624.653,39.7517)" stroke-linecap="butt">
+ <path fill="none" d="M0 0 L-16 -6 L-16 6 Z" clip-path="url(#clipPath6)"/>
+ <line y2="8" fill="none" x1="-21" clip-path="url(#clipPath6)" x2="-21" y1="-8"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <path fill="none" d="M571.5 298.125 L574.425 303 L549 303 L549 307 L574.425 307 L571.5 311.875 L588 305 L571.5 298.125 Z" clip-path="url(#clipPath2)"/>
+ <text x="554.3223" xml:space="preserve" y="293.7139" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">patch</text>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <path fill="none" d="M647.51 255.6762 L646.8477 188.9996" clip-path="url(#clipPath2)"/>
+ </g>
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" transform="matrix(0.9577,0,0,0.9577,193.4463,-76.6124)" stroke-linecap="butt">
+ <path d="M647.5895 263.6758 L652.47 251.6267 L647.5001 254.6762 L642.4705 251.726 Z" stroke="none" clip-path="url(#clipPath2)"/>
+ <path d="M646.7682 181 L641.8876 193.0491 L646.8576 189.9996 L651.8871 192.9497 Z" clip-path="url(#clipPath2)" stroke="none"/>
+ <path fill="none" d="M591 154 L511.9764 154" clip-path="url(#clipPath2)"/>
+ <path d="M599 154 L587 149 L590 154 L587 159 Z" clip-path="url(#clipPath2)" stroke="none"/>
+ <path d="M503.9764 154 L515.9764 159 L512.9764 154 L515.9764 149 Z" clip-path="url(#clipPath2)" stroke="none"/>
+ <path fill="none" d="M648 421 L648 354.3242" clip-path="url(#clipPath2)"/>
+ <path d="M648 429 L653 417 L648 420 L643 417 Z" clip-path="url(#clipPath2)" stroke="none"/>
+ <path d="M648 346.3242 L643 358.3242 L648 355.3242 L653 358.3242 Z" clip-path="url(#clipPath2)" stroke="none"/>
+ <text x="651.9971" xml:space="preserve" y="399.376" clip-path="url(#clipPath2)" font-family="sans-serif" stroke="none">syscall</text>
+ </g>
+ </g>
+</svg>
diff --git a/README.md b/README.md
index 0be9d3a..19843e1 100644
--- a/README.md
+++ b/README.md
@@ -60,7 +60,7 @@ The output binary `EfiDSEFix.exe` will be in `Application/EfiDSEFix/bin`.
The Visual Studio solution also includes projects for `EfiGuardDxe.efi` and `Loader.efi` which can be used with [VisualUefi](https://github.com/ionescu007/VisualUefi), but these projects are not built by default as they will not link without additional code, and the build output will be inferior (bigger) than what EDK2 produces. `Loader.efi` will not link at all due to VisualUefi missing UefiBootManagerLib. These project files are thus meant as a development aid only and the EFI files should still be compiled with EDK2. To set up VisualUefi for this purpose, clone the repository into `workspace/VisualUefi` and open `EfiGuard.sln`.
# Architecture
- ![architecture](Misc/EfiGuard.png)
+ ![architecture](Misc/EfiGuard.svg)
While EfiGuard is a UEFI bootkit, it did not start out as one. EfiGuard was originally an on-disk patcher running on NT (similar to [UPGDSED](https://github.com/hfiref0x/UPGDSED)), intended to test the viability of a disassembler-based aproach, as opposed to using PDB symbols and version-specific signatures. [PatchNtoskrnl.c](EfiGuardDxe/PatchNtoskrnl.c) still looks very much like this original design. Only after this approach proved successful, with no modifications to code needed in over a year of Windows updates, did UEFI come into the picture as a way to further improve capabilities and ease of use.
Some of the benefits provided by a bootkit approach include: