use firehazard::*;
use winapi::um::winnt::*;
fn main() {
heap_enable_termination_on_corruption().unwrap();
let mut policy = PROCESS_MITIGATION_ASLR_POLICY { Flags: 0 };
policy.set_DisallowStrippedImages(1);
policy.set_EnableBottomUpRandomization(1);
policy.set_EnableForceRelocateImages(1);
policy.set_EnableHighEntropy(1);
set_process_mitigation_policy(policy).unwrap();
let mut policy = PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY { Flags: 0 };
policy.set_MicrosoftSignedOnly(1); policy.set_MitigationOptIn(1); set_process_mitigation_policy(policy).unwrap();
let mut policy = PROCESS_MITIGATION_CHILD_PROCESS_POLICY { Flags: 0 };
policy.set_NoChildProcessCreation(1);
policy.set_AllowSecureProcessCreation(0);
set_process_mitigation_policy(policy).unwrap();
let mut policy = PROCESS_MITIGATION_CONTROL_FLOW_GUARD_POLICY { Flags: 0 };
policy.set_EnableControlFlowGuard(1); policy.set_EnableExportSuppression(1); policy.set_StrictMode(1);
let mut policy = PROCESS_MITIGATION_DEP_POLICY { Flags: 0, Permanent: 0 };
policy.set_Enable(1);
policy.set_DisableAtlThunkEmulation(1);
policy.Permanent = 1;
assert_eq!(core::mem::size_of::<usize>()==8, set_process_mitigation_policy(policy).is_err());
let mut policy = PROCESS_MITIGATION_DYNAMIC_CODE_POLICY { Flags: 0 };
policy.set_ProhibitDynamicCode(1);
policy.set_AllowThreadOptOut(0);
policy.set_AllowRemoteDowngrade(0);
set_process_mitigation_policy(policy).unwrap();
let mut policy = PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY { Flags: 0 };
policy.set_DisableExtensionPoints(1);
set_process_mitigation_policy(policy).unwrap();
let mut policy = PROCESS_MITIGATION_FONT_DISABLE_POLICY { Flags: 0 };
policy.set_DisableNonSystemFonts(1);
set_process_mitigation_policy(policy).unwrap();
let mut policy = PROCESS_MITIGATION_IMAGE_LOAD_POLICY { Flags: 0 };
policy.set_NoRemoteImages(1);
policy.set_NoLowMandatoryLabelImages(1);
policy.set_PreferSystem32Images(1);
set_process_mitigation_policy(policy).unwrap();
let mut policy = PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY { Flags: 0 };
policy.set_EnableExportAddressFilter(1);
policy.set_EnableExportAddressFilterPlus(1);
policy.set_EnableImportAddressFilter(1);
policy.set_EnableRopCallerCheck(1);
policy.set_EnableRopSimExec(1);
policy.set_EnableRopStackPivot(1);
let mut policy = PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY { Flags: 0 };
policy.set_HandleExceptionsPermanentlyEnabled(1);
policy.set_RaiseExceptionOnInvalidHandleReference(1);
set_process_mitigation_policy(policy).unwrap();
let mut policy = PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY { Flags: 0 };
policy.set_DisallowWin32kSystemCalls(1);
set_process_mitigation_policy(policy).unwrap();
let mut policy = PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY { Flags: 0 };
policy.set_FilterId(0);
set_process_mitigation_policy(policy).unwrap();
}