예제 #1
0
        public SandboxBuilder ForbidSysCall(bool isNano = false)
        {
            LimitFunction = UIRestrictions.ReadClipboard
                            | UIRestrictions.WriteClipboard
                            | UIRestrictions.Handles
                            | UIRestrictions.GlobalAtoms
                            | UIRestrictions.ExitWindows
                            | UIRestrictions.SystemParameters;

            if (!isNano)
            {
                LimitFunction |= UIRestrictions.Desktop
                                 | UIRestrictions.DisplaySettings;
            }

            return(this);
        }
예제 #2
0
        public unsafe void SetUIRestrictions(UIRestrictions @class)
        {
            var limit = new JobObjectBasicUiRestrictions
            {
                UIRestrictionsClass = @class
            };

            var result = Kernel32.SetInformationJobObject(
                mHandle,
                JobObjectInfoClass.BasicUIRestrictions,
                &limit,
                sizeof(JobObjectBasicUiRestrictions)
                );

            if (!result)
            {
                throw new Win32Exception(Marshal.GetLastWin32Error());
            }
        }