diff options
-rw-r--r-- | Misc/EfiGuard.png | bin | 24954 -> 0 bytes | |||
-rw-r--r-- | Misc/EfiGuard.svg | 243 | ||||
-rw-r--r-- | README.md | 2 |
3 files changed, 244 insertions, 1 deletions
diff --git a/Misc/EfiGuard.png b/Misc/EfiGuard.png Binary files differdeleted file mode 100644 index 1f85806..0000000 --- a/Misc/EfiGuard.png +++ /dev/null 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 QBBGlw4xNfRuCC0xMPTeO+H//x/2zepAWYyLJCe6834zb0ZxPLL1tFopexORSCQS iUQikci/2eWIdByk7lb2KHtr8DOvh/SWQWCSe0A5pKxUsM1r+6r3hPAGSYKRiMyB ckxZVU4pp5WTynHlsHKwem8InzHjBCMTsReUobJWcU25pJxVTkgInymTBCPzurKu 3FceVTxQRsoN5YqE8ImZJpjK3VAeKs+V18q7ijfKCzHpdyWEj828gt8qH5UvyreK r8onMekvJYRvSVPBSP2h/FQ2a/Aa0kN4lS4E//oPIVwWK9izlMK3U7BnKYTvpGBP kcL7JNhThPA+C/ZkKTwnwZ4shOcs2NNL4eyQHZcg2NNWeGeyUxXvF5sDM64sQbBn HuEU2UCs6DqRnSoZyeyYM3pebETJNI0JWu6CPZOEj8SK66LYPJzq7kR2qmZWMziL SOaDOMNPxaZppQj2JOEcG8IpJoqKUe1NMdmrYlc5K0CtRFPN7GQgdga5dO6InV0v mS/mv2zu+OpmNPtErLK5qs8oR8SueFw1DmcJ0Zw1zt5l5bZYT+Zyei82uvwufydr /svmCsfCMXFsFNMHseJ6LHZfGordq2gf3Bhbi6Z1cJc9KnYjGIr1Z2QzeK/35xKE J8H1tpH6NJJHYis+tFHaKW21desgqX2wQ2SnJw7uwnwobaQE4ZME0y7uKbdk65MH V3rraq4nya4/Q9OfaCW5C59V8FXlnFgLrT9L46Z1NdfDzkoS3kQwN76F/LEyLrkL 771gn9yEZyfYp+/Csxfs0zfhxQn22WnhxQv22W7hSyfYZ9HCl16wT9fCQ/CUtBWO WGA7BM+QpsI/V7AdgufIrMKZFj4TE/tKbAjPNC0Ez5lpwlnZWRdb3UHuhthKB9O0 ENwgXjiTMoQznuXfK5AOLCWllekQ3CJe+IrYPBzpwDZVH4I7Sl04QpEOrNPxGr8L 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> @@ -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 -  +  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: |