summaryrefslogtreecommitdiff
path: root/security
diff options
context:
space:
mode:
authorBarry Golden <[email protected]>2015-07-30 16:03:24 -0700
committerBarry Golden <[email protected]>2015-07-30 16:03:24 -0700
commit4dc90ad04d5e40851e2e370f487b7cc9a3be071b (patch)
treec2e74dd18a743893c555d311f29ad9fba77b60c6 /security
parentd3abcb10a801986a2956d6bbdfeb652bda1d9a74 (diff)
Update README.md
Diffstat (limited to 'security')
-rw-r--r--security/elam/ReadMe.md31
1 files changed, 15 insertions, 16 deletions
diff --git a/security/elam/ReadMe.md b/security/elam/ReadMe.md
index 64fa0308..101a5202 100644
--- a/security/elam/ReadMe.md
+++ b/security/elam/ReadMe.md
@@ -3,11 +3,9 @@ Early Launch Anti-Malware Driver
This sample demonstrates how to use the [**IoRegisterBootDriverCallback**](http://msdn.microsoft.com/en-us/library/windows/hardware/hh439379) and [**IoUnRegisterBootDriverCallback**](http://msdn.microsoft.com/en-us/library/windows/hardware/hh439394) DDIs from an Early Launch Anti-Malware driver, to receive notifications about the initialization of regular boot start drivers.
-The building and installation instructions given here apply to Windows® 8 and later operating systems.
-
This sample driver is a minimal driver meant to demonstrate the usage of the APIs mentioned above. It is not intended for use in a production environment.
-SIGNING THE SAMPLE
+**SIGNING THE SAMPLE**
Early Launch drivers are required to be signed with a code-signing certificate that also contains the Early Launch EKU "1.3.6.1.4.1.311.61.4.1". In a production environment, Early Launch drivers are signed by Microsoft for qualifying Anti-Malware vendors with a WHQL certificate that contains this EKU. The makecert.exe tool can be used to generate a self-signed test certificate that contains both the Early Launch EKU and the “1.3.6.1.5.5.7.3.3” Code Signing EKU. Once a certificate of this form has been created, signtool.exe can be used to sign elamsample.sys.
@@ -15,36 +13,37 @@ Early Launch drivers are required to be signed with a code-signing certificate t
Run the sample
--------------
-INSTALLING THE SAMPLE
+**INSTALLING THE SAMPLE**
1. Copy the signed elamsample.sys file to the %WINDIR%\\System32\\Drivers directory on your test machine.
2. Use the sc.exe tool present in Windows to install the driver:
-sc create ElamSample binpath=%windir%\\system32\\drivers\\elamsample.sys type=kernel start=boot error=critical group=Early-Launch
-
+ `sc create ElamSample binpath=%windir%\\system32\\drivers\\elamsample.sys type=kernel start=boot error=critical group=Early-Launch`
+
3. Enable test signing:
-bcdedit /set testsigning on
+ `bcdedit /set testsigning on`
-CODE TOUR
+**CODE TOUR**
-DriverEntry - Creates a framework driver object and calls IoRegisterBootDriverCallback to register to boot driver status callbacks.
+**DriverEntry:** Creates a framework driver object and calls IoRegisterBootDriverCallback to register to boot driver status callbacks.
-ElamSampleEvtDriverUnload: Calls IoUnregisterBootDriverCallback to unregister for callbacks when elamsample.sys is about to be unloaded.
+**ElamSampleEvtDriverUnload:** Calls IoUnregisterBootDriverCallback to unregister for callbacks when elamsample.sys is about to be unloaded.
-ElamSampleBootDriverCallback: Dispatches to other functions to process the specific callback types.
+**ElamSampleBootDriverCallback**: Dispatches to other functions to process the specific callback types.
-ElamSampleProcessStatusUpdate: Displays callback BdCbStatusUpdate information, such as when dependencies and drivers are about to be initialized, or when the ELAM driver is about to be unload.
+**ElamSampleProcessStatusUpdate:** Displays callback BdCbStatusUpdate information, such as when dependencies and drivers are about to be initialized, or when the ELAM driver is about to be unload.
-ElamSampleProcessInitializeImage: Displays callback BdCbInitializeImage information, such as the driver image name and the name of the entity that signed the driver.
+**ElamSampleProcessInitializeImage:** Displays callback BdCbInitializeImage information, such as the driver image name and the name of the entity that signed the driver.
-ElamSamplePrintHex: A utility function to display a buffer in hexadecimal form.
+**ElamSamplePrintHex:** A utility function to display a buffer in hexadecimal form.
-TESTING
+**TESTING**
After installing the driver, attach the Kernel Debugger and reboot your test machine. If ELAMSAMPLE\_TRACE\_LEVEL is set to DPFLTR\_ERROR\_LEVEL, traces will be output to the debugger automatically. For example:
+```
ElamSample is being initialized.
ElamSample reports the following dependency is about to be initialized: ElamSample:
@@ -108,4 +107,4 @@ ElamSample: 93 29 d5 f2 e2 7a c9 79 41 b2 6d c0 78 35 2a d3
ElamSample: da 2d 7e 72 f0 05 5f 8b 63 8c 7b a2 6b 37 5c 4f
ElamSample reports that all Boot Start drivers have been initialized and that ElamSample is about to be unloaded ElamSample is being unloaded.
-
+```