├── AutoEncryptDemo.exe ├── AutoFileCryptTool.exe ├── Bin ├── arm64 │ ├── EaseFlt.sys │ ├── FilterAPI.dll │ └── FilterAPI.lib ├── win32 │ ├── EaseFlt.sys │ ├── FilterAPI.dll │ └── FilterAPI.lib └── x64 │ ├── EaseFlt.sys │ ├── FilterAPI.dll │ └── FilterAPI.lib ├── CommonObjects.dll ├── Demo_Source_Code ├── CPlusPlusDemo │ ├── AESEncryption.h │ ├── CPlusPlusDemo.cpp │ ├── CPlusPlusDemo.rc │ ├── ControlFilterHandler.cpp │ ├── ControlFilterHandler.h │ ├── EaseFltCPPDemo.vs2019.vcxproj │ ├── EaseFltCPPDemo.vs2019.vcxproj.filters │ ├── EaseFltCPPDemo.vs2019.vcxproj.user │ ├── EncryptionHandler.h │ ├── EncryptionTest.cpp │ ├── FileControlHandler.h │ ├── FileMonitorHandler.h │ ├── FilterAPI.h │ ├── FilterControl.cpp │ ├── FilterControl.h │ ├── FilterMessage.cpp │ ├── FilterMessage.h │ ├── FilterRule.h │ ├── FilterWorker.cpp │ ├── FilterWorker.h │ ├── ProcessFilterHandler.h │ ├── ProcessFilterTest.cpp │ ├── ProcessFilterTest.h │ ├── ReadMe.txt │ ├── RegistryFilterHandler.h │ ├── RegistryFilterTest.cpp │ ├── RegistryFilterTest.h │ ├── ReparseFilterHandler.h │ ├── TestData.cpp │ ├── TestData.h │ ├── Tools.cpp │ ├── Tools.h │ ├── UnitTest.cpp │ ├── UnitTest.h │ ├── WinDataStructures.h │ ├── WindowsService.cpp │ ├── WindowsService.h │ ├── resource.h │ ├── stdafx.cpp │ ├── stdafx.h │ └── targetver.h ├── CSharpDemo │ ├── AutoEncryptDemo │ │ ├── AutoEncryptDemo.csproj │ │ ├── AutoEncryptDemo.csproj.user │ │ ├── AutoEncryptForm.Designer.cs │ │ ├── AutoEncryptForm.cs │ │ ├── AutoEncryptForm.resx │ │ ├── DRMForm.Designer.cs │ │ ├── DRMForm.cs │ │ ├── DRMForm.resx │ │ ├── DRMServer.cs │ │ ├── Program.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ └── Settings.settings │ │ ├── app.config │ │ ├── app.manifest │ │ └── logo-120.ico │ ├── AutoEncryptDemoConsole │ │ ├── App.config │ │ ├── AutoEncryptDemoConsole.csproj │ │ ├── Program.cs │ │ └── Properties │ │ │ └── AssemblyInfo.cs │ ├── AutoFileCryptTool │ │ ├── AutoFileCryptTool.csproj │ │ ├── AutoFileCryptTool.csproj.user │ │ ├── AutoFileCryptTool.vs2019.csproj │ │ ├── BlackListForm.Designer.cs │ │ ├── BlackListForm.cs │ │ ├── BlackListForm.resx │ │ ├── DropFolderForm.Designer.cs │ │ ├── DropFolderForm.cs │ │ ├── DropFolderForm.resx │ │ ├── FilterDriverService.cs │ │ ├── FormFileCrypt.Designer.cs │ │ ├── FormFileCrypt.cs │ │ ├── FormFileCrypt.resx │ │ ├── PasswordForm.Designer.cs │ │ ├── PasswordForm.cs │ │ ├── PasswordForm.resx │ │ ├── Program.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ └── Settings.settings │ │ ├── Resources │ │ │ └── about.png │ │ ├── SetupPasswordForm.Designer.cs │ │ ├── SetupPasswordForm.cs │ │ ├── SetupPasswordForm.resx │ │ ├── TrayForm.Designer.cs │ │ ├── TrayForm.cs │ │ ├── TrayForm.resx │ │ ├── VerifyPassword.Designer.cs │ │ ├── VerifyPassword.cs │ │ ├── VerifyPassword.resx │ │ ├── app.config │ │ ├── app.manifest │ │ ├── encrypt.ico │ │ └── protector.ico │ ├── CommonObjects │ │ ├── AccessRightsForm.Designer.cs │ │ ├── AccessRightsForm.cs │ │ ├── AccessRightsForm.resx │ │ ├── CommonObjects.csproj │ │ ├── ConfigSetting.cs │ │ ├── ControlFilterRuleSettigs.Designer.cs │ │ ├── ControlFilterRuleSettigs.cs │ │ ├── ControlFilterRuleSettigs.resx │ │ ├── DigitalRightControl.cs │ │ ├── EventForm.Designer.cs │ │ ├── EventForm.cs │ │ ├── EventForm.resx │ │ ├── EventManager.cs │ │ ├── FileIOControlService.cs │ │ ├── FilterAPI.cs │ │ ├── FilterMessage.cs │ │ ├── FilterRuleForm.Designer.cs │ │ ├── FilterRuleForm.cs │ │ ├── FilterRuleForm.resx │ │ ├── FilterRuleSection.cs │ │ ├── GlobalConfig.cs │ │ ├── InputForm.Designer.cs │ │ ├── InputForm.cs │ │ ├── InputForm.resx │ │ ├── MessageBoxHelper.cs │ │ ├── NtStatus.cs │ │ ├── OptionForm.cs │ │ ├── OptionForm.designer.cs │ │ ├── OptionForm.resx │ │ ├── ProcessFilterRuleSection.cs │ │ ├── ProcessFilterSetting.Designer.cs │ │ ├── ProcessFilterSetting.cs │ │ ├── ProcessFilterSetting.resx │ │ ├── ProcessFilterSettingForm.Designer.cs │ │ ├── ProcessFilterSettingForm.cs │ │ ├── ProcessFilterSettingForm.resx │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ └── Resources.resx │ │ ├── RegistryAccessControlForm.Designer.cs │ │ ├── RegistryAccessControlForm.cs │ │ ├── RegistryAccessControlForm.resx │ │ ├── RegistryAccessControlHandler.cs │ │ ├── RegistryFilterRuleSection.cs │ │ ├── RegistryUnitTest.cs │ │ ├── RemotingService.cs │ │ ├── Resources │ │ │ └── about.png │ │ ├── SettingsForm.Designer.cs │ │ ├── SettingsForm.cs │ │ ├── SettingsForm.resx │ │ ├── Utils.cs │ │ ├── WinDataStructures.cs │ │ └── app.config │ ├── EaseFltCSConsoleDemo │ │ ├── ControlEventHandler.cs │ │ ├── EaseFilterService.Designer.cs │ │ ├── EaseFilterService.cs │ │ ├── EaseFltCSConsoleDemo.csproj │ │ ├── FileIOControlService.cs │ │ ├── FilterWorker.cs │ │ ├── MessageInfo.cs │ │ ├── MonitorEventHandler.cs │ │ ├── ProcessHandler.cs │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── RegistryHandler.cs │ │ ├── ServiceInstaller.cs │ │ └── app.config │ ├── FileMonitor │ │ ├── FileMonitor.csproj │ │ ├── FileMonitor.csproj.user │ │ ├── FileMonitor.vs2019.csproj │ │ ├── Monitor.ico │ │ ├── MonitorEventHandler.cs │ │ ├── MonitorForm.Designer.cs │ │ ├── MonitorForm.cs │ │ ├── MonitorForm.resx │ │ ├── MonitorUnitTest.Designer.cs │ │ ├── MonitorUnitTest.cs │ │ ├── MonitorUnitTest.resx │ │ ├── Program.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ └── Settings.settings │ │ ├── TrayForm.Designer.cs │ │ ├── TrayForm.cs │ │ ├── TrayForm.resx │ │ ├── app.config │ │ ├── app.manifest │ │ └── text_view.ico │ ├── FileMonitorConsole │ │ ├── FileMonitorConsole.csproj │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── app.config │ ├── FileProtector │ │ ├── ControlEventHandler.cs │ │ ├── DecryptionForm.Designer.cs │ │ ├── DecryptionForm.cs │ │ ├── DecryptionForm.resx │ │ ├── EncryptEventHandler.cs │ │ ├── EncryptionForm.Designer.cs │ │ ├── EncryptionForm.cs │ │ ├── EncryptionForm.resx │ │ ├── FileIOControlService.cs │ │ ├── FileProtector.csproj │ │ ├── FileProtector.csproj.user │ │ ├── FileProtector.vs2019.csproj │ │ ├── InputForm.Designer.cs │ │ ├── InputForm.cs │ │ ├── InputForm.resx │ │ ├── MessageHandler.cs │ │ ├── MonitorEventHandler.cs │ │ ├── ProcessEventHandler.cs │ │ ├── Program.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ └── Settings.settings │ │ ├── ProtectorForm.Designer.cs │ │ ├── ProtectorForm.cs │ │ ├── ProtectorForm.resx │ │ ├── ProtectorUnitTest.Designer.cs │ │ ├── ProtectorUnitTest.cs │ │ ├── ProtectorUnitTest.resx │ │ ├── TrayForm.Designer.cs │ │ ├── TrayForm.cs │ │ ├── TrayForm.resx │ │ ├── TutorialForm.Designer.cs │ │ ├── TutorialForm.cs │ │ ├── TutorialForm.resx │ │ ├── app.config │ │ ├── app.manifest │ │ └── protector.ico │ ├── FileProtectorConsole │ │ ├── FileProtectorConsole.csproj │ │ ├── Program.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ └── app.config │ ├── FilterControl │ │ ├── ControlFilter.cs │ │ ├── EncryptionFilter.cs │ │ ├── FileFilter.cs │ │ ├── FilterAPI.cs │ │ ├── FilterControl.cs │ │ ├── FilterControl.csproj │ │ ├── MonitorFilter.cs │ │ ├── NtStatus.cs │ │ ├── ProcessFilter.cs │ │ ├── Properties │ │ │ └── AssemblyInfo.cs │ │ ├── RegistryFilter.cs │ │ ├── ReparseFilter.cs │ │ ├── Utils.cs │ │ └── WinDataStructures.cs │ ├── FolderLocker │ │ ├── AccessRightsForm.Designer.cs │ │ ├── AccessRightsForm.cs │ │ ├── AccessRightsForm.resx │ │ ├── AccountForm.Designer.cs │ │ ├── AccountForm.cs │ │ ├── AccountForm.resx │ │ ├── DRServer.cs │ │ ├── EncryptEventHandler.cs │ │ ├── FilterWorker.cs │ │ ├── FolderLocker.csproj │ │ ├── FolderLocker2015.csproj │ │ ├── FolderLockerSettigs.Designer.cs │ │ ├── FolderLockerSettigs.cs │ │ ├── FolderLockerSettigs.resx │ │ ├── FormFolderLocker.Designer.cs │ │ ├── FormFolderLocker.cs │ │ ├── FormFolderLocker.resx │ │ ├── Lock Folder.ico │ │ ├── Program.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ ├── Settings.settings │ │ │ └── about.png │ │ ├── ShareFileForm.Designer.cs │ │ ├── ShareFileForm.cs │ │ ├── ShareFileForm.resx │ │ ├── ShareFileManager.cs │ │ ├── SharedFileAccessLogForm.Designer.cs │ │ ├── SharedFileAccessLogForm.cs │ │ ├── SharedFileAccessLogForm.resx │ │ ├── TrayForm.Designer.cs │ │ ├── TrayForm.cs │ │ ├── TrayForm.resx │ │ ├── WebAPIService.cs │ │ ├── WebAPIService.designer.cs │ │ ├── WebAPIService.resx │ │ ├── app.config │ │ └── app.manifest │ ├── ProcessMon │ │ ├── ProcessFileAccessRights.Designer.cs │ │ ├── ProcessFileAccessRights.cs │ │ ├── ProcessFileAccessRights.resx │ │ ├── ProcessFilterSetting.Designer.cs │ │ ├── ProcessFilterSetting.cs │ │ ├── ProcessFilterSetting.resx │ │ ├── ProcessFilterSettingCollection.Designer.cs │ │ ├── ProcessFilterSettingCollection.cs │ │ ├── ProcessFilterSettingCollection.resx │ │ ├── ProcessHandler.cs │ │ ├── ProcessMon.Designer.cs │ │ ├── ProcessMon.cs │ │ ├── ProcessMon.csproj │ │ ├── ProcessMon.resx │ │ ├── ProcessUnitTest.cs │ │ ├── ProcessUnitTestForm.Designer.cs │ │ ├── ProcessUnitTestForm.cs │ │ ├── ProcessUnitTestForm.resx │ │ ├── Program.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ └── Settings.settings │ │ ├── about.png │ │ ├── app.config │ │ ├── app.manifest │ │ └── processmon.ico │ ├── RegMon │ │ ├── Program.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ └── Settings.settings │ │ ├── RegMon.csproj │ │ ├── RegMonForm.Designer.cs │ │ ├── RegMonForm.cs │ │ ├── RegMonForm.resx │ │ ├── RegUnitTest.Designer.cs │ │ ├── RegUnitTest.cs │ │ ├── RegUnitTest.resx │ │ ├── RegistryAccessControlForm.Designer.cs │ │ ├── RegistryAccessControlForm.cs │ │ ├── RegistryAccessControlForm.resx │ │ ├── RegistryHandler.cs │ │ ├── RegistryMessage.cs │ │ ├── RegistryUnitTest.cs │ │ ├── app.config │ │ ├── app.manifest │ │ └── registry-icon.ico │ ├── SecureSandbox │ │ ├── AuthorizedProcessForm.Designer.cs │ │ ├── AuthorizedProcessForm.cs │ │ ├── AuthorizedProcessForm.resx │ │ ├── EncryptEventHandler.cs │ │ ├── Info.png │ │ ├── ProcessFileAccessRights.Designer.cs │ │ ├── ProcessFileAccessRights.cs │ │ ├── ProcessFileAccessRights.resx │ │ ├── Program.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ └── Settings.settings │ │ ├── SecureSandbox.Designer.cs │ │ ├── SecureSandbox.cs │ │ ├── SecureSandbox.csproj │ │ ├── SecureSandbox.ico │ │ ├── SecureSandbox.resx │ │ ├── TrayForm.Designer.cs │ │ ├── TrayForm.cs │ │ ├── TrayForm.resx │ │ ├── about.png │ │ ├── app.config │ │ └── app.manifest │ ├── SecureShare │ │ ├── ConsoleForm.Designer.cs │ │ ├── ConsoleForm.cs │ │ ├── ConsoleForm.resx │ │ ├── CreateShareEncryptedFileForm.Designer.cs │ │ ├── CreateShareEncryptedFileForm.cs │ │ ├── CreateShareEncryptedFileForm.resx │ │ ├── DRServer.cs │ │ ├── EncryptEventHandler.cs │ │ ├── FilterWorker.cs │ │ ├── Program.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ └── Settings.settings │ │ ├── SecureForm.Designer.cs │ │ ├── SecureForm.cs │ │ ├── SecureForm.resx │ │ ├── SecureShare.csproj │ │ ├── SecureShare.csproj.user │ │ ├── SecureShare.vs2019.csproj │ │ ├── SecureShare2015.csproj │ │ ├── SecureShareManager.Designer.cs │ │ ├── SecureShareManager.cs │ │ ├── SecureShareManager.ico │ │ ├── SecureShareManager.resx │ │ ├── ShareFileForm.Designer.cs │ │ ├── ShareFileForm.cs │ │ ├── ShareFileForm.resx │ │ ├── ShareFileManagerInLocal.Designer.cs │ │ ├── ShareFileManagerInLocal.cs │ │ ├── ShareFileManagerInLocal.resx │ │ ├── ShareFileManagerInServer.Designer.cs │ │ ├── ShareFileManagerInServer.cs │ │ ├── ShareFileManagerInServer.resx │ │ ├── ShareFileSettingForm.Designer.cs │ │ ├── ShareFileSettingForm.cs │ │ ├── ShareFileSettingForm.resx │ │ ├── SharedFileAccessLogForm.Designer.cs │ │ ├── SharedFileAccessLogForm.cs │ │ ├── SharedFileAccessLogForm.resx │ │ ├── WebAPIService.cs │ │ ├── app.config │ │ └── app.manifest │ └── ZeroTrustDemo │ │ ├── App.config │ │ ├── Program.cs │ │ └── ZeroTrustDemo.csproj ├── Demo.sln └── ReadMe.txt ├── FileMonitor.exe ├── FileProtector.exe ├── FilterControl.dll ├── FolderLocker.exe ├── ProcessMon.exe ├── README.md ├── ReadMe.txt ├── Readme ├── RegMon.exe ├── SecureSandbox.exe └── SecureShare.exe /AutoEncryptDemo.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/AutoEncryptDemo.exe -------------------------------------------------------------------------------- /AutoFileCryptTool.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/AutoFileCryptTool.exe -------------------------------------------------------------------------------- /Bin/arm64/EaseFlt.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Bin/arm64/EaseFlt.sys -------------------------------------------------------------------------------- /Bin/arm64/FilterAPI.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Bin/arm64/FilterAPI.dll -------------------------------------------------------------------------------- /Bin/arm64/FilterAPI.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Bin/arm64/FilterAPI.lib -------------------------------------------------------------------------------- /Bin/win32/EaseFlt.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Bin/win32/EaseFlt.sys -------------------------------------------------------------------------------- /Bin/win32/FilterAPI.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Bin/win32/FilterAPI.dll -------------------------------------------------------------------------------- /Bin/win32/FilterAPI.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Bin/win32/FilterAPI.lib -------------------------------------------------------------------------------- /Bin/x64/EaseFlt.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Bin/x64/EaseFlt.sys -------------------------------------------------------------------------------- /Bin/x64/FilterAPI.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Bin/x64/FilterAPI.dll -------------------------------------------------------------------------------- /Bin/x64/FilterAPI.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Bin/x64/FilterAPI.lib -------------------------------------------------------------------------------- /CommonObjects.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/CommonObjects.dll -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/AESEncryption.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2015 EaseFilter Technologies Inc. 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | /////////////////////////////////////////////////////////////////////////////// 10 | 11 | #ifndef __AES_ENCRYPTION_H__ 12 | #define __AES_ENCRYPTION_H__ 13 | 14 | VOID 15 | EncryptionUnitTest(); 16 | 17 | BOOL 18 | EncryptionRequestHandler( IN PMESSAGE_SEND_DATA pSendMessage,IN OUT PMESSAGE_REPLY_DATA pReplyMessage ); 19 | 20 | #endif -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/CPlusPlusDemo.rc: -------------------------------------------------------------------------------- 1 | // Microsoft Visual C++ generated resource script. 2 | // 3 | #include "resource.h" 4 | 5 | #define APSTUDIO_READONLY_SYMBOLS 6 | ///////////////////////////////////////////////////////////////////////////// 7 | // 8 | // Generated from the TEXTINCLUDE 2 resource. 9 | // 10 | #include "windows.h" 11 | 12 | ///////////////////////////////////////////////////////////////////////////// 13 | #undef APSTUDIO_READONLY_SYMBOLS 14 | 15 | 16 | ///////////////////////////////////////////////////////////////////////////// 17 | // English (Canada) resources 18 | 19 | #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENC) 20 | #ifdef _WIN32 21 | LANGUAGE LANG_NEUTRAL, SUBLANG_ENGLISH_US 22 | #pragma code_page(1252) 23 | #endif //_WIN32 24 | 25 | 26 | ///////////////////////////////////////////////////////////////////////////// 27 | // 28 | // Version 29 | // 30 | 31 | VS_VERSION_INFO VERSIONINFO 32 | FILEVERSION 5,1,5,2 33 | PRODUCTVERSION 5,1,5,2 34 | FILEFLAGSMASK 0x17L 35 | #ifdef _DEBUG 36 | FILEFLAGS 0x1L 37 | #else 38 | FILEFLAGS 0x0L 39 | #endif 40 | FILEOS 0x4L 41 | FILETYPE 0x1L 42 | FILESUBTYPE 0x0L 43 | BEGIN 44 | BLOCK "StringFileInfo" 45 | BEGIN 46 | BLOCK "100904b0" 47 | BEGIN 48 | VALUE "FileDescription", "Filter Driver SDK Demo Application" 49 | VALUE "FileVersion", "5, 2, 3, 2" 50 | VALUE "InternalName", "EaseFltCppDemo" 51 | VALUE "LegalCopyright", "Copyright (C) 2023" 52 | VALUE "OriginalFilename", "EaseFltCppDemo.exe" 53 | VALUE "ProductName", "EaseFltCppDemo Application" 54 | VALUE "ProductVersion", "5,2,3, 2" 55 | END 56 | END 57 | BLOCK "VarFileInfo" 58 | BEGIN 59 | VALUE "Translation", 0x1009, 1200 60 | END 61 | END 62 | 63 | #endif // English (Canada) resources 64 | ///////////////////////////////////////////////////////////////////////////// 65 | 66 | 67 | 68 | #ifndef APSTUDIO_INVOKED 69 | ///////////////////////////////////////////////////////////////////////////// 70 | // 71 | // Generated from the TEXTINCLUDE 3 resource. 72 | // 73 | 74 | 75 | ///////////////////////////////////////////////////////////////////////////// 76 | #endif // not APSTUDIO_INVOKED 77 | 78 | -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/ControlFilterHandler.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | BOOL 4 | IOControlHandler( IN PMESSAGE_SEND_DATA pSendMessage,IN OUT PMESSAGE_REPLY_DATA pReplyMessage ); -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/EaseFltCPPDemo.vs2019.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/FilterMessage.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | #include 5 | #include "FilterControl.h" 6 | #include "WinDataStructures.h" 7 | #include "FilterAPI.h" 8 | 9 | VOID 10 | DisplayFileIOMessage(FileIOEventArgs* fileIOEventArgs); 11 | 12 | VOID 13 | DisplayProcessMessage(ProcessEventArgs* processEventArgs); 14 | 15 | VOID 16 | DisplayRegistryMessage(RegistryEventArgs* registryEventArgs); -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/FilterWorker.h: -------------------------------------------------------------------------------- 1 | #ifndef __FILTER_WORKER_H__ 2 | #define __FILTER_WORKER_H__ 3 | 4 | VOID 5 | __stdcall 6 | DisconnectCallback(); 7 | 8 | BOOL 9 | __stdcall 10 | MessageCallback( 11 | IN PMESSAGE_SEND_DATA pSendMessage, 12 | IN OUT PMESSAGE_REPLY_DATA pReplyMessage); 13 | 14 | void 15 | SendConfigInfoToFilter(ULONG FilterType,WCHAR* FilterFolder,ULONGLONG IoRegistration 16 | ,ULONG AccessFlag,UCHAR* encryptionKey = NULL,ULONG keyLength = 0,UCHAR* iv =NULL,ULONG ivLength = 0); 17 | 18 | #endif -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/ProcessFilterHandler.h: -------------------------------------------------------------------------------- 1 | #ifndef __PROCESSFILTER_H__ 2 | #define __PROCESSFILTER_H__ 3 | 4 | #include "FilterAPI.h" 5 | #include "FilterMessage.h" 6 | 7 | VOID 8 | SendProcessFilterNotification(PMESSAGE_SEND_DATA messageSend) 9 | { 10 | ProcessEventArgs* processEventArgs = new ProcessEventArgs(messageSend); 11 | if (messageSend->FilterCommand == FILTER_SEND_DENIED_PROCESS_CREATION_EVENT) 12 | { 13 | processEventArgs->EventName = L"ProcessCreationWasBlocked"; 14 | } 15 | else if (messageSend->FilterCommand == FILTER_SEND_DENIED_PROCESS_TERMINATED_EVENT) 16 | { 17 | processEventArgs->EventName = L"ProcessTerminationWasBlocked"; 18 | } 19 | else if (messageSend->FilterCommand == FILTER_SEND_PROCESS_TERMINATION_INFO) 20 | { 21 | processEventArgs->EventName = L"NotifyProcessTerminated"; 22 | } 23 | else if (messageSend->FilterCommand == FILTER_SEND_THREAD_CREATION_INFO) 24 | { 25 | processEventArgs->EventName = L"NotifyThreadCreation"; 26 | } 27 | else if (messageSend->FilterCommand == FILTER_SEND_THREAD_TERMINATION_INFO) 28 | { 29 | processEventArgs->EventName = L"NotifyThreadTerminated"; 30 | } 31 | else if (messageSend->FilterCommand == FILTER_SEND_PROCESS_HANDLE_INFO) 32 | { 33 | processEventArgs->EventName = L"NotifyProcessHandleInfo"; 34 | } 35 | else if (messageSend->FilterCommand == FILTER_SEND_THREAD_HANDLE_INFO) 36 | { 37 | processEventArgs->EventName = L"NotifyThreadHandleInfo"; 38 | } 39 | else if (messageSend->FilterCommand == FILTER_SEND_LOAD_IMAGE_NOTIFICATION) 40 | { 41 | processEventArgs->EventName = L"NotifyImageWasLoaded"; 42 | } 43 | 44 | DisplayProcessMessage(processEventArgs); 45 | 46 | } 47 | 48 | 49 | BOOL 50 | ProcessFilterHandler( 51 | IN PMESSAGE_SEND_DATA messageSend, 52 | IN OUT PMESSAGE_REPLY_DATA messageReply ) 53 | { 54 | BOOL retVal = TRUE; 55 | 56 | ProcessEventArgs* processEventArgs = new ProcessEventArgs(messageSend); 57 | 58 | if (messageSend->MessageType == FILTER_SEND_PROCESS_CREATION_INFO) 59 | { 60 | processEventArgs->EventName = L"OnProcessCreation"; 61 | DisplayProcessMessage(processEventArgs); 62 | 63 | //you can block the process creation with below setting. 64 | //messageReply->FilterStatus = FILTER_COMPLETE_PRE_OPERATION; 65 | //messageReply->ReturnStatus = STATUS_ACCESS_DENIED; 66 | } 67 | else if (messageSend->MessageType == FILTER_SEND_PRE_TERMINATE_PROCESS_INFO) 68 | { 69 | processEventArgs->EventName = L"OnProcessPreTermination"; 70 | DisplayProcessMessage(processEventArgs); 71 | 72 | //you can block the process termination with below setting. 73 | //messageReply->FilterStatus = FILTER_COMPLETE_PRE_OPERATION; 74 | //messageReply->ReturnStatus = STATUS_ACCESS_DENIED; 75 | } 76 | 77 | return retVal; 78 | } 79 | 80 | 81 | #endif -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/ProcessFilterTest.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2015 EaseFilter Technologies Inc. 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | /////////////////////////////////////////////////////////////////////////////// 10 | 11 | #pragma once 12 | 13 | VOID 14 | StartProcessFilterTest(WCHAR* ProcessFilterMask,ULONG ControlFlag,WCHAR* FileFilterMask ,ULONG AccessFlag); 15 | -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/ReadMe.txt: -------------------------------------------------------------------------------- 1 | ======================================================================== 2 | CONSOLE APPLICATION : CPlusPlusDemo Project Overview 3 | ======================================================================== 4 | 5 | AppWizard has created this CPlusPlusDemo application for you. 6 | 7 | This file contains a summary of what you will find in each of the files that 8 | make up your CPlusPlusDemo application. 9 | 10 | 11 | CPlusPlusDemo.vcproj 12 | This is the main project file for VC++ projects generated using an Application Wizard. 13 | It contains information about the version of Visual C++ that generated the file, and 14 | information about the platforms, configurations, and project features selected with the 15 | Application Wizard. 16 | 17 | CPlusPlusDemo.cpp 18 | This is the main application source file. 19 | 20 | ///////////////////////////////////////////////////////////////////////////// 21 | Other standard files: 22 | 23 | StdAfx.h, StdAfx.cpp 24 | These files are used to build a precompiled header (PCH) file 25 | named CPlusPlusDemo.pch and a precompiled types file named StdAfx.obj. 26 | 27 | ///////////////////////////////////////////////////////////////////////////// 28 | Other notes: 29 | 30 | AppWizard uses "TODO:" comments to indicate parts of the source code you 31 | should add to or customize. 32 | 33 | ///////////////////////////////////////////////////////////////////////////// 34 | -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/RegistryFilterTest.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | #include "stdafx.h" 19 | #include "Tools.h" 20 | #include "FilterAPI.h" 21 | 22 | 23 | BOOL 24 | __stdcall 25 | RegistryNotificationCallback( 26 | IN PMESSAGE_SEND_DATA pSendMessage, 27 | IN OUT PMESSAGE_REPLY_DATA pReplyMessage) 28 | { 29 | 30 | BOOL ret = TRUE; 31 | WCHAR userName[MAX_PATH]; 32 | WCHAR domainName[MAX_PATH]; 33 | 34 | int userNameSize = MAX_PATH; 35 | int domainNameSize = MAX_PATH; 36 | SID_NAME_USE snu; 37 | 38 | ULONGLONG regCallbackClass = pSendMessage->Offset; 39 | 40 | __try 41 | { 42 | 43 | BOOL ret = LookupAccountSid( NULL, 44 | pSendMessage->Sid, 45 | userName, 46 | (LPDWORD)&userNameSize, 47 | domainName, 48 | (LPDWORD)&domainNameSize, 49 | &snu); 50 | 51 | if( pSendMessage->Status > STATUS_ERROR ) 52 | { 53 | ChangeColour(FOREGROUND_RED); 54 | } 55 | else if ( pSendMessage->Status > STATUS_WARNING ) 56 | { 57 | ChangeColour(FOREGROUND_RED|FOREGROUND_GREEN); 58 | } 59 | 60 | wprintf( L"\nId#%d UserName:%ws\\%ws\nProcessId:%d ThreadId:%d Return Status:%0x\n",pSendMessage->MessageId,domainName,userName,pSendMessage->ProcessId,pSendMessage->ThreadId,pSendMessage->Status); 61 | 62 | if (pSendMessage->MessageType != FILTER_SEND_REG_CALLBACK_INFO ) 63 | { 64 | wprintf(L"MessageType:%d is not FILTER_SEND_REG_CALLBACK_INFO.\n",pSendMessage->MessageType); 65 | return ret; 66 | } 67 | 68 | wprintf(L"regCallbackClass:%I64d RegistryKeyName:%ws\n",regCallbackClass,pSendMessage->FileName); 69 | 70 | 71 | 72 | ChangeColour(FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE); 73 | 74 | if(pReplyMessage) 75 | { 76 | //you can deny the registry access by return access denied status here. 77 | //pReplyMessage->FilterStatus = (uint)FILTER_COMPLETE_PRE_OPERATION; 78 | //pReplyMessage->ReturnStatus = (uint)STATUS_ACCESS_DENIED; 79 | } 80 | 81 | } 82 | __except( EXCEPTION_EXECUTE_HANDLER ) 83 | { 84 | PrintErrorMessage( L"DisplayFilterMessageInfo failed.",GetLastError()); 85 | } 86 | 87 | return ret; 88 | } 89 | 90 | VOID 91 | __stdcall 92 | RegDisconnectCallback() 93 | { 94 | printf("Filter connection was disconnected.\n"); 95 | return; 96 | } 97 | 98 | 99 | 100 | void 101 | StartRegFilterTest() 102 | { 103 | 104 | ULONG threadCount = 5; 105 | 106 | //Set the filter maximum wait time for response from the user mode call back function. 107 | SetConnectionTimeout(10); 108 | 109 | if(!RegisterMessageCallback(threadCount,RegistryNotificationCallback,RegDisconnectCallback)) 110 | { 111 | PrintLastErrorMessage( L"RegisterMessageCallback failed."); 112 | return ; 113 | } 114 | 115 | ULONG filterType = FILE_SYSTEM_REGISTRY; 116 | ULONGLONG regCallbackClass = 93092006832128; 117 | SetFilterType(filterType); 118 | 119 | AddRegistryFilterRule(2,L"*",0,2,L"*",0,NULL,REG_MAX_ACCESS_FLAG,regCallbackClass,FALSE, 0); 120 | 121 | 122 | } 123 | 124 | 125 | -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/RegistryFilterTest.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2015 EaseFilter Technologies Inc. 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | /////////////////////////////////////////////////////////////////////////////// 10 | 11 | #pragma once 12 | 13 | VOID 14 | StartRegFilterTest(); -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/ReparseFilterHandler.h: -------------------------------------------------------------------------------- 1 | #ifndef __REPARSEFILE_H__ 2 | #define __REPARSEFILE_H__ 3 | 4 | #include "FilterAPI.h" 5 | #include "FilterMessage.h" 6 | 7 | BOOL 8 | ReparseFilterHandler( 9 | IN PMESSAGE_SEND_DATA messageSend, 10 | IN OUT PMESSAGE_REPLY_DATA messageReply) 11 | { 12 | //this is reparse file filter handler. 13 | 14 | BOOL retVal = FALSE; 15 | 16 | ReparseFileEventArgs* reparseEventArgs = new ReparseFileEventArgs(messageSend); 17 | 18 | if (reparseEventArgs->isNewCreatedFile) 19 | { 20 | //this is new created file to request the tag data, 21 | //the new file will be created with the reparse point tag data. 22 | 23 | //if you want to block the new file creation, return STATUS_ACCESS_DENIED 24 | //messageReply->FilterStatus = FILTER_COMPLETE_PRE_OPERATION; 25 | //messageReply->ReturnStatus = STATUS_ACCESS_DENIED; 26 | 27 | //if you want to return the encryption key and iv for new created file, then return STATUS_SUCCESS 28 | messageReply->ReturnStatus = STATUS_SUCCESS; 29 | 30 | //for new created file, you can set your own custom tag data to the header. 31 | //here we put the file name as the tag data for test purpose. 32 | 33 | messageReply->ReplyData.AESData.Data.TagDataLength = messageSend->FileNameLength; 34 | memcpy(messageReply->ReplyData.AESData.Data.TagData, messageSend->FileName, messageSend->FileNameLength); 35 | 36 | //the total return size 37 | messageReply->ReplyData.AESData.SizeOfData = sizeof(messageReply->ReplyData.AESData.Data) + messageReply->ReplyData.AESData.Data.TagDataLength; 38 | 39 | wprintf(L"New created file :%ws is requesting reparse point tag data, return status:%0x\n", messageSend->FileName, messageReply->ReturnStatus); 40 | 41 | } 42 | else 43 | { 44 | //opening the existing reparse point file. 45 | 46 | //here is the custom tag data which was embedded in the reparse point tag. 47 | ULONG tagDataLength = reparseEventArgs->tagDataLength; 48 | UCHAR* tagData = reparseEventArgs->tagData.data(); 49 | 50 | //if you want to block the file open, return STATUS_ACCESS_DENIED 51 | messageReply->FilterStatus = FILTER_COMPLETE_PRE_OPERATION; 52 | messageReply->ReturnStatus = STATUS_ACCESS_DENIED; 53 | 54 | //if you want to decrypt the file, then return status success, and the encryption key and iv. 55 | //messageReply->ReturnStatus = STATUS_SUCCESS; 56 | 57 | wprintf(L"Reparse point file :%ws is requesting file open, the reparse point tag data %ws, return status:%0x\n", messageSend->FileName, (WCHAR*)tagData, messageReply->ReturnStatus); 58 | 59 | } 60 | 61 | return retVal; 62 | } 63 | 64 | 65 | #endif -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/TestData.cpp: -------------------------------------------------------------------------------- 1 | #include "stdafx.h" 2 | #include "TestData.h" 3 | 4 | WCHAR authorizedProcess[MAX_PATH] = L"notepad.exe;wordpad.exe"; 5 | 6 | VOID 7 | SetAuthorizedProcess(WCHAR* processNames) 8 | { 9 | ULONG len = wcslen(processNames); 10 | if (len < MAX_PATH) 11 | { 12 | ZeroMemory(authorizedProcess, MAX_PATH * sizeof(WCHAR)); 13 | memcpy(authorizedProcess, processNames, len * sizeof(WCHAR)); 14 | 15 | //wprintf(L"\nSetAuthorizedProcess :%ws for test ONLY.\n", authorizedProcess); 16 | } 17 | } 18 | 19 | WCHAR* 20 | GetAuthorizedProcess() 21 | { 22 | //wprintf(L"\nGetAuthorizedProcess :%ws for test ONLY.\n", authorizedProcess); 23 | 24 | return authorizedProcess; 25 | } 26 | -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/TestData.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | VOID 4 | SetAuthorizedProcess(WCHAR* processNames); 5 | 6 | WCHAR* 7 | GetAuthorizedProcess(); 8 | -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/Tools.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | /////////////////////////////////////////////////////////////////////////////// 10 | 11 | #pragma once 12 | 13 | #include 14 | #include "FilterAPI.h" 15 | #include "WinDataStructures.h" 16 | 17 | //the user need to allocate the enough buffer to receive the subject name. 18 | BOOL 19 | GetSignerInfo( 20 | WCHAR* processName, 21 | WCHAR* subjectName, 22 | PULONG sizeofSubjectName); 23 | 24 | void ChangeColour(WORD theColour); 25 | 26 | void 27 | PrintPassedMessage(WCHAR* message); 28 | 29 | void 30 | PrintFailedMessage(WCHAR* message); 31 | 32 | void 33 | PrintMessage(WCHAR* message,WORD theColour); 34 | 35 | void 36 | PrintLastErrorMessage(WCHAR* message); 37 | 38 | BOOL 39 | GetProcessNameByPid(ULONG pid, WCHAR* processName, ULONG processNameLength ); 40 | 41 | std::wstring 42 | GetFileTimeStr(LONGLONG fileTime ); 43 | 44 | BOOLEAN 45 | EnableDebugPrivileges(); 46 | 47 | // 48 | //To display message in WinDbg or DbgView application. 49 | // 50 | void 51 | ToDebugger( 52 | const WCHAR* pszFormat, 53 | ...); 54 | 55 | void 56 | PrintErrorMessage( 57 | LPWSTR message, 58 | DWORD errorCode ); 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/UnitTest.h: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies Inc. 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | /////////////////////////////////////////////////////////////////////////////// 10 | 11 | #pragma once 12 | 13 | // Defines for NTSTATUS 14 | typedef long NTSTATUS; 15 | 16 | #include "FilterControl.h" 17 | 18 | VOID 19 | EncryptionUnitTest(FilterControl* filterControl); 20 | 21 | void 22 | FilterUnitTest(); 23 | 24 | LARGE_INTEGER 25 | GetTestFileTime(); 26 | 27 | WCHAR* 28 | GetTestReparseFileName(); 29 | 30 | WCHAR* 31 | GetFilterMask(); 32 | 33 | CHAR* 34 | GetReplaceData(); 35 | 36 | LONGLONG 37 | GetTestFileSize(); 38 | 39 | BOOL 40 | IsTestFolder(WCHAR* fileName ); 41 | 42 | BOOL 43 | IsTestFile(WCHAR* fileName,ULONG fileNameLength ); 44 | 45 | -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/WindowsService.h: -------------------------------------------------------------------------------- 1 | int StartWindowsService(); 2 | VOID WINAPI ServiceMain (DWORD argc, LPTSTR *argv); 3 | VOID WINAPI ServiceCtrlHandler (DWORD); 4 | DWORD WINAPI ServiceWorkerThread (LPVOID lpParam); -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by CPlusPlusDemo.rc 4 | 5 | // Next default values for new objects 6 | // 7 | #ifdef APSTUDIO_INVOKED 8 | #ifndef APSTUDIO_READONLY_SYMBOLS 9 | #define _APS_NEXT_RESOURCE_VALUE 101 10 | #define _APS_NEXT_COMMAND_VALUE 40001 11 | #define _APS_NEXT_CONTROL_VALUE 1001 12 | #define _APS_NEXT_SYMED_VALUE 101 13 | #endif 14 | #endif 15 | -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // CPlusPlusDemo.pch will be the pre-compiled header 3 | // stdafx.obj will contain the pre-compiled type information 4 | 5 | #include "stdafx.h" 6 | 7 | // TODO: reference any additional headers you need in STDAFX.H 8 | // and not in this file 9 | -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/stdafx.h: -------------------------------------------------------------------------------- 1 | // stdafx.h : include file for standard system include files, 2 | // or project specific include files that are used frequently, but 3 | // are changed infrequently 4 | // 5 | 6 | #pragma once 7 | 8 | #include "targetver.h" 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | 18 | 19 | // TODO: reference additional headers your program requires here 20 | -------------------------------------------------------------------------------- /Demo_Source_Code/CPlusPlusDemo/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // The following macros define the minimum required platform. The minimum required platform 4 | // is the earliest version of Windows, Internet Explorer etc. that has the necessary features to run 5 | // your application. The macros work by enabling all features available on platform versions up to and 6 | // including the version specified. 7 | 8 | // Modify the following defines if you have to target a platform prior to the ones specified below. 9 | // Refer to MSDN for the latest info on corresponding values for different platforms. 10 | #ifndef _WIN32_WINNT // Specifies that the minimum required platform is Windows Vista. 11 | #define _WIN32_WINNT 0x0600 // Change this to the appropriate value to target other versions of Windows. 12 | #endif 13 | 14 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoEncryptDemo/AutoEncryptDemo.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | true 5 | 6 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoEncryptDemo/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Windows.Forms; 5 | 6 | namespace AutoEncryptDemo 7 | { 8 | static class Program 9 | { 10 | /// 11 | /// The main entry point for the application. 12 | /// 13 | [STAThread] 14 | static void Main() 15 | { 16 | Application.EnableVisualStyles(); 17 | Application.SetCompatibleTextRenderingDefault(false); 18 | Application.Run(new AutoEncryptForm()); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoEncryptDemo/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("AutoEncryptDemo")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("AutoEncryptDemo")] 13 | [assembly: AssemblyCopyright("Copyright © 2021")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("c83dc675-a745-4b7e-83ca-30ef314755a7")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("5.2.3.2001")] 36 | //[assembly: AssemblyFileVersion("1.0.0.0")] 37 | 38 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoEncryptDemo/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace AutoEncryptDemo.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AutoEncryptDemo.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoEncryptDemo/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace AutoEncryptDemo.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoEncryptDemo/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoEncryptDemo/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoEncryptDemo/app.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoEncryptDemo/logo-120.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Demo_Source_Code/CSharpDemo/AutoEncryptDemo/logo-120.ico -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoEncryptDemoConsole/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoEncryptDemoConsole/AutoEncryptDemoConsole.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {0714F0E7-6E27-489E-BCF9-2B8B3D894AFD} 8 | Exe 9 | AutoEncryptDemoConsole 10 | AutoEncryptDemoConsole 11 | v4.5 12 | 512 13 | true 14 | 15 | 16 | AnyCPU 17 | true 18 | full 19 | false 20 | bin\Debug\ 21 | DEBUG;TRACE 22 | prompt 23 | 4 24 | 25 | 26 | AnyCPU 27 | pdbonly 28 | true 29 | ..\..\Release\ 30 | TRACE 31 | prompt 32 | 4 33 | false 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | {21540012-a296-45ce-8d35-3ea5a07b32a6} 55 | FilterControl 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoEncryptDemoConsole/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FileEncrptDemoConsole")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("FileEncrptDemoConsole")] 13 | [assembly: AssemblyCopyright("Copyright © 2025")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("0714f0e7-6e27-489e-bcf9-2b8b3d894afd")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/AutoFileCryptTool.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | true 5 | 6 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/BlackListForm.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.ComponentModel; 21 | using System.Data; 22 | using System.Drawing; 23 | using System.Text; 24 | using System.Windows.Forms; 25 | 26 | namespace AutoFileCryptTool 27 | { 28 | public partial class BlackListForm : Form 29 | { 30 | public string BlackList = string.Empty; 31 | 32 | public BlackListForm() 33 | { 34 | InitializeComponent(); 35 | } 36 | 37 | private void button_Ok_Click(object sender, EventArgs e) 38 | { 39 | BlackList = textBox_BlackList.Text; 40 | } 41 | 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/DropFolderForm.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.ComponentModel; 21 | using System.Data; 22 | using System.Drawing; 23 | using System.Text; 24 | using System.Windows.Forms; 25 | 26 | using EaseFilter.CommonObjects; 27 | 28 | namespace AutoFileCryptTool 29 | { 30 | public partial class DropFolderForm : Form 31 | { 32 | public string dropFolder = string.Empty; 33 | 34 | public DropFolderForm() 35 | { 36 | InitializeComponent(); 37 | textBox_DropFolder.Text = GlobalConfig.DropFolder; 38 | } 39 | 40 | private void button_Ok_Click(object sender, EventArgs e) 41 | { 42 | dropFolder = textBox_DropFolder.Text; 43 | } 44 | 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/FilterDriverService.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | 19 | using System; 20 | using System.Collections.Generic; 21 | using System.Linq; 22 | using System.Text; 23 | using System.Runtime.InteropServices; 24 | 25 | using EaseFilter.FilterControl; 26 | using EaseFilter.CommonObjects; 27 | 28 | namespace AutoFileCryptTool 29 | { 30 | public class FilterDriverService 31 | { 32 | 33 | static FilterControl filterControl = new FilterControl(); 34 | 35 | public static bool SendConfigSettingsToFilter(ref string lastError) 36 | { 37 | filterControl.ClearFilters(); 38 | foreach (FileFilterRule filterRule in GlobalConfig.FilterRules.Values) 39 | { 40 | FileFilter fileFilter = filterRule.ToFileFilter(); 41 | filterControl.AddFilter(fileFilter); 42 | } 43 | 44 | if (!filterControl.SendConfigSettingsToFilter(ref lastError)) 45 | { 46 | return false; 47 | } 48 | 49 | return true; 50 | } 51 | 52 | public static bool StartFilterService(out string lastError) 53 | { 54 | //Purchase a license key with the link: http://www.easefilter.com/Order.htm 55 | //Email us to request a trial key: info@easefilter.com //free email is not accepted. 56 | string licenseKey = GlobalConfig.licenseKey; 57 | GlobalConfig.filterType = FilterAPI.FilterType.ENCRYPTION_FILTER; 58 | 59 | bool ret = false; 60 | 61 | lastError = string.Empty; 62 | 63 | try 64 | { 65 | ret = filterControl.StartFilter(GlobalConfig.filterType, GlobalConfig.FilterConnectionThreads, GlobalConfig.ConnectionTimeOut, licenseKey, ref lastError); 66 | if (!ret) 67 | { 68 | return ret; 69 | } 70 | 71 | ret = SendConfigSettingsToFilter(ref lastError); 72 | 73 | EventManager.WriteMessage(102, "StartFilter", EventLevel.Information, "Start filter service succeeded."); 74 | } 75 | catch (Exception ex) 76 | { 77 | EventManager.WriteMessage(104, "StartFilter", EventLevel.Error, "Start filter service failed with error " + ex.Message); 78 | ret = false; 79 | } 80 | 81 | return ret; 82 | } 83 | 84 | public static bool StopService() 85 | { 86 | GlobalConfig.Stop(); 87 | filterControl.StopFilter(); 88 | 89 | EventManager.WriteMessage(102, "StopFilter", EventLevel.Information, "Stopped filter service succeeded."); 90 | 91 | return true; 92 | } 93 | 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/PasswordForm.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.ComponentModel; 21 | using System.Data; 22 | using System.Drawing; 23 | using System.Text; 24 | using System.Windows.Forms; 25 | 26 | namespace AutoFileCryptTool 27 | { 28 | public partial class PasswordForm : Form 29 | { 30 | public string PassPhrase = string.Empty; 31 | 32 | public PasswordForm() 33 | { 34 | InitializeComponent(); 35 | } 36 | 37 | private void button_Ok_Click(object sender, EventArgs e) 38 | { 39 | PassPhrase = textBox_PassPhrase.Text; 40 | } 41 | 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Windows.Forms; 5 | 6 | namespace AutoFileCryptTool 7 | { 8 | static class Program 9 | { 10 | /// 11 | /// The main entry point for the application. 12 | /// 13 | [STAThread] 14 | static void Main() 15 | { 16 | Application.EnableVisualStyles(); 17 | Application.SetCompatibleTextRenderingDefault(false); 18 | Application.Run(new TrayForm()); 19 | 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("AutoFileCryptTool")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("EaseFilter Technologies")] 12 | [assembly: AssemblyProduct("AutoFileCryptTool")] 13 | [assembly: AssemblyCopyright("Copyright © 2017 EaseFilter Technologies")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("1826df94-fbbb-4180-ad6f-c1ab49726eca")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("5.2.3.2001")] 36 | //[assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace AutoFileCryptTool.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AutoFileCryptTool.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Looks up a localized resource of type System.Drawing.Bitmap. 65 | /// 66 | internal static System.Drawing.Bitmap about { 67 | get { 68 | object obj = ResourceManager.GetObject("about", resourceCulture); 69 | return ((System.Drawing.Bitmap)(obj)); 70 | } 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace AutoFileCryptTool.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/Resources/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Demo_Source_Code/CSharpDemo/AutoFileCryptTool/Resources/about.png -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/SetupPasswordForm.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.ComponentModel; 21 | using System.Data; 22 | using System.Drawing; 23 | using System.Linq; 24 | using System.Text; 25 | using System.Windows.Forms; 26 | 27 | using EaseFilter.CommonObjects; 28 | 29 | namespace AutoFileCryptTool 30 | { 31 | public partial class SetupPasswordForm : Form 32 | { 33 | public bool isPasswordMatched = false; 34 | 35 | public SetupPasswordForm() 36 | { 37 | InitializeComponent(); 38 | this.StartPosition = FormStartPosition.CenterScreen; 39 | } 40 | 41 | private void button_NewPassword_Click(object sender, EventArgs e) 42 | { 43 | if (string.IsNullOrEmpty(textBox_Password1.Text)) 44 | { 45 | MessageBoxHelper.PrepToCenterMessageBoxOnForm(this); 46 | MessageBox.Show("The password can't be empty.", "Password", MessageBoxButtons.OK, MessageBoxIcon.Error); 47 | 48 | isPasswordMatched = false; 49 | } 50 | else if (string.Compare(textBox_Password1.Text, textBox_Password2.Text, false) != 0) 51 | { 52 | MessageBoxHelper.PrepToCenterMessageBoxOnForm(this); 53 | MessageBox.Show("The password doesn't match.", "Password", MessageBoxButtons.OK, MessageBoxIcon.Error); 54 | 55 | isPasswordMatched = false; 56 | } 57 | else 58 | { 59 | isPasswordMatched = true; 60 | GlobalConfig.MasterPassword = textBox_Password1.Text; 61 | this.Close(); 62 | } 63 | } 64 | 65 | 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/TrayForm.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.ComponentModel; 21 | using System.Data; 22 | using System.Drawing; 23 | using System.Linq; 24 | using System.Text; 25 | using System.Windows.Forms; 26 | using System.IO; 27 | 28 | using EaseFilter.FilterControl; 29 | using EaseFilter.CommonObjects; 30 | 31 | namespace AutoFileCryptTool 32 | { 33 | public partial class TrayForm: Form 34 | { 35 | Form_FileCrypt fileCryptForm = null; 36 | 37 | public TrayForm() 38 | { 39 | 40 | InitializeComponent(); 41 | this.Hide(); 42 | 43 | fileCryptForm = new Form_FileCrypt(); 44 | 45 | } 46 | 47 | private void TrayForm_Load(object sender, EventArgs e) 48 | { 49 | this.Hide(); 50 | this.notifyIcon.Visible = true; 51 | fileCryptForm.ShowDialog(); 52 | } 53 | 54 | private void consoleToolStripMenuItem_Click(object sender, EventArgs e) 55 | { 56 | 57 | if (!fileCryptForm.Visible) 58 | { 59 | fileCryptForm.StartPosition = FormStartPosition.CenterScreen; 60 | fileCryptForm.ShowDialog(); 61 | } 62 | } 63 | 64 | private void settingsToolStripMenuItem_Click(object sender, EventArgs e) 65 | { 66 | SettingsForm settingForm = new SettingsForm(); 67 | settingForm.StartPosition = FormStartPosition.CenterScreen; 68 | settingForm.ShowDialog(); 69 | } 70 | 71 | 72 | private void reportBugToolStripMenuItem_Click(object sender, EventArgs e) 73 | { 74 | System.Diagnostics.Process.Start("http://www.easefilter.com/ReportIssue.htm"); 75 | } 76 | 77 | private void exitToolStripMenuItem1_Click(object sender, EventArgs e) 78 | { 79 | GlobalConfig.Stop(); 80 | fileCryptForm.Close(); 81 | 82 | Application.Exit(); 83 | } 84 | 85 | private void sdkToolStripMenuItem_Click(object sender, EventArgs e) 86 | { 87 | System.Diagnostics.Process.Start("http://www.easefilter.com/info/easefilter_manual.pdf"); 88 | } 89 | 90 | 91 | private void openProtectorSourceCodeToolStripMenuItem_Click(object sender, EventArgs e) 92 | { 93 | System.Reflection.Assembly assembly = System.Reflection.Assembly.GetEntryAssembly(); 94 | string AssemblyPath = Path.Combine(Path.GetDirectoryName(assembly.Location), "Demo"); 95 | System.Diagnostics.Process.Start("explorer.exe", AssemblyPath); 96 | } 97 | 98 | private void toolStripMenuItemEncryptInfo_Click(object sender, EventArgs e) 99 | { 100 | System.Diagnostics.Process.Start("http://easefilter.com/Forums_Files/Transparent_Encryption_Filter_Driver.htm"); 101 | } 102 | 103 | 104 | 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/VerifyPassword.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.ComponentModel; 21 | using System.Data; 22 | using System.Drawing; 23 | using System.Linq; 24 | using System.Text; 25 | using System.Windows.Forms; 26 | 27 | using EaseFilter.CommonObjects; 28 | 29 | namespace AutoFileCryptTool 30 | { 31 | public partial class VerifyPasswordForm : Form 32 | { 33 | public bool isPasswordMatched = false; 34 | 35 | public VerifyPasswordForm() 36 | { 37 | InitializeComponent(); 38 | this.StartPosition = FormStartPosition.CenterScreen; 39 | } 40 | 41 | private void button_VerifyPassword_Click(object sender, EventArgs e) 42 | { 43 | if (string.Compare(textBox_Password1.Text, GlobalConfig.MasterPassword, false) != 0) 44 | { 45 | MessageBoxHelper.PrepToCenterMessageBoxOnForm(this); 46 | MessageBox.Show("The password is not correct.", "Password", MessageBoxButtons.OK, MessageBoxIcon.Error); 47 | isPasswordMatched = false; 48 | } 49 | else 50 | { 51 | isPasswordMatched = true; 52 | this.Close(); 53 | } 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/app.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/encrypt.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Demo_Source_Code/CSharpDemo/AutoFileCryptTool/encrypt.ico -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/AutoFileCryptTool/protector.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Demo_Source_Code/CSharpDemo/AutoFileCryptTool/protector.ico -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/CommonObjects/InputForm.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.ComponentModel; 21 | using System.Data; 22 | using System.Drawing; 23 | using System.Text; 24 | using System.Windows.Forms; 25 | 26 | namespace EaseFilter.CommonObjects 27 | { 28 | public partial class InputForm : Form 29 | { 30 | public string InputText = string.Empty; 31 | 32 | public InputForm(string caption, string promptText,string inputText) 33 | { 34 | InitializeComponent(); 35 | this.Text = caption; 36 | label_InputPrompt.Text = promptText; 37 | textBox_Input.Text = inputText; 38 | } 39 | 40 | private void button_Ok_Click(object sender, EventArgs e) 41 | { 42 | InputText = textBox_Input.Text; 43 | } 44 | 45 | private void button_GetFilePath_Click(object sender, EventArgs e) 46 | { 47 | if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) 48 | { 49 | textBox_Input.Text = openFileDialog1.FileName; 50 | } 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/CommonObjects/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("CommonObjects")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("EaseFilter Technologies")] 12 | [assembly: AssemblyProduct("EaseFilter CommonObjects")] 13 | [assembly: AssemblyCopyright("Copyright © 2024 EaseFilter Technologies")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("a9fd3093-71e2-49d4-9093-b4300674e1e3")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("5.6.3.5001")] 35 | //[assembly: AssemblyVersion("2.1.1.*")] 36 | ////[assembly: AssemblyFileVersion("2.1.1.*")] 37 | 38 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/CommonObjects/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace EaseFilter.CommonObjects.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EaseFilter.CommonObjects.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Looks up a localized resource of type System.Drawing.Bitmap. 65 | /// 66 | internal static System.Drawing.Bitmap about { 67 | get { 68 | object obj = ResourceManager.GetObject("about", resourceCulture); 69 | return ((System.Drawing.Bitmap)(obj)); 70 | } 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/CommonObjects/Resources/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Demo_Source_Code/CSharpDemo/CommonObjects/Resources/about.png -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/CommonObjects/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/EaseFltCSConsoleDemo/EaseFilterService.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace EaseFltCSConsoleDemo 2 | { 3 | partial class EaseFilterService 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Component Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | components = new System.ComponentModel.Container(); 32 | this.ServiceName = "EaseFilter Service"; 33 | 34 | } 35 | 36 | #endregion 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/EaseFltCSConsoleDemo/EaseFilterService.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.ComponentModel; 21 | using System.Data; 22 | using System.Diagnostics; 23 | using System.Linq; 24 | using System.ServiceProcess; 25 | using System.Text; 26 | 27 | using EaseFilter.CommonObjects; 28 | 29 | namespace EaseFltCSConsoleDemo 30 | { 31 | public partial class EaseFilterService : ServiceBase 32 | { 33 | public EaseFilterService() 34 | { 35 | InitializeComponent(); 36 | } 37 | 38 | protected override void OnStart(string[] args) 39 | { 40 | string lastError = string.Empty; 41 | 42 | if (!FilterWorker.StartService(out lastError)) 43 | { 44 | EventManager.WriteMessage(100, "StartFilter", EventLevel.Error, "Start filter service failed with error " + lastError); 45 | } 46 | } 47 | 48 | protected override void OnStop() 49 | { 50 | FilterWorker.StopService(); 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/EaseFltCSConsoleDemo/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("CSharpConsoleDemo")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("CSharpConsoleDemo")] 13 | [assembly: AssemblyCopyright("Copyright © 2013")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("c7006cc7-8a58-4483-ac2c-e914fdc429a4")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("5.2.3.2001")] 36 | //[assembly: AssemblyFileVersion("1.0.0.0")] 37 | 38 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/EaseFltCSConsoleDemo/ServiceInstaller.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.ComponentModel; 20 | using System.Configuration.Install; 21 | using System.ServiceProcess; 22 | 23 | using EaseFilter.CommonObjects; 24 | 25 | namespace EaseFltCSConsoleDemo 26 | { 27 | [RunInstaller(true)] 28 | public class WindowsServiceInstaller : Installer 29 | { 30 | /// 31 | /// Public Constructor for WindowsServiceInstaller. 32 | /// - Put all of your Initialization code here. 33 | /// 34 | public WindowsServiceInstaller() 35 | { 36 | ServiceProcessInstaller serviceProcessInstaller = new ServiceProcessInstaller(); 37 | ServiceInstaller serviceInstaller = new ServiceInstaller(); 38 | 39 | //# Service Account Information 40 | serviceProcessInstaller.Account = ServiceAccount.LocalSystem; 41 | serviceProcessInstaller.Username = null; 42 | serviceProcessInstaller.Password = null; 43 | 44 | //# Service Information 45 | serviceInstaller.DisplayName = "EaseFilter Service"; 46 | serviceInstaller.StartType = ServiceStartMode.Automatic; 47 | 48 | // This must be identical to the WindowsService.ServiceBase name 49 | // set in the constructor of WindowsService.cs 50 | serviceInstaller.ServiceName = "EaseFilter Service"; 51 | serviceInstaller.Description = "EaseFilter File System Service"; 52 | 53 | this.Installers.Add(serviceProcessInstaller); 54 | this.Installers.Add(serviceInstaller); 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/EaseFltCSConsoleDemo/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileMonitor/FileMonitor.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | true 5 | 6 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileMonitor/Monitor.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Demo_Source_Code/CSharpDemo/FileMonitor/Monitor.ico -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileMonitor/MonitorUnitTest.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace FileMonitor 2 | { 3 | partial class MonitorUnitTest 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MonitorUnitTest)); 32 | this.groupBox1 = new System.Windows.Forms.GroupBox(); 33 | this.richTextBox_TestResult = new System.Windows.Forms.RichTextBox(); 34 | this.groupBox1.SuspendLayout(); 35 | this.SuspendLayout(); 36 | // 37 | // groupBox1 38 | // 39 | this.groupBox1.Controls.Add(this.richTextBox_TestResult); 40 | this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; 41 | this.groupBox1.Location = new System.Drawing.Point(0, 0); 42 | this.groupBox1.Name = "groupBox1"; 43 | this.groupBox1.Size = new System.Drawing.Size(636, 408); 44 | this.groupBox1.TabIndex = 0; 45 | this.groupBox1.TabStop = false; 46 | // 47 | // richTextBox_TestResult 48 | // 49 | this.richTextBox_TestResult.Dock = System.Windows.Forms.DockStyle.Fill; 50 | this.richTextBox_TestResult.Location = new System.Drawing.Point(3, 16); 51 | this.richTextBox_TestResult.Name = "richTextBox_TestResult"; 52 | this.richTextBox_TestResult.Size = new System.Drawing.Size(630, 389); 53 | this.richTextBox_TestResult.TabIndex = 0; 54 | this.richTextBox_TestResult.Text = ""; 55 | // 56 | // MonitorDemo 57 | // 58 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 59 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 60 | this.ClientSize = new System.Drawing.Size(636, 408); 61 | this.Controls.Add(this.groupBox1); 62 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 63 | this.Name = "MonitorDemo"; 64 | this.Text = "Monitor Feature Demo "; 65 | this.Activated += new System.EventHandler(this.MonitorDemo_Activated); 66 | this.groupBox1.ResumeLayout(false); 67 | this.ResumeLayout(false); 68 | 69 | } 70 | 71 | #endregion 72 | 73 | private System.Windows.Forms.GroupBox groupBox1; 74 | private System.Windows.Forms.RichTextBox richTextBox_TestResult; 75 | } 76 | } -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileMonitor/Program.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.Linq; 21 | using System.Windows.Forms; 22 | 23 | using EaseFilter.FilterControl; 24 | 25 | namespace FileMonitor 26 | { 27 | static class Program 28 | { 29 | /// 30 | /// The main entry point for the application. 31 | /// 32 | [STAThread] 33 | static void Main(string[] args) 34 | { 35 | 36 | if (args.Length > 0) 37 | { 38 | string command = args[0]; 39 | switch (command.ToLower()) 40 | { 41 | case "-installdriver": 42 | { 43 | bool ret = FilterAPI.InstallDriver(); 44 | if (!ret) 45 | { 46 | Console.WriteLine("Install driver failed:" + FilterAPI.GetLastErrorMessage()); 47 | } 48 | 49 | break; 50 | } 51 | 52 | case "-uninstalldriver": 53 | { 54 | bool ret = FilterAPI.UnInstallDriver(); 55 | if (!ret) 56 | { 57 | Console.WriteLine("UnInstall driver failed:" + FilterAPI.GetLastErrorMessage()); 58 | } 59 | 60 | break; 61 | } 62 | } 63 | } 64 | else 65 | { 66 | Application.EnableVisualStyles(); 67 | Application.SetCompatibleTextRenderingDefault(false); 68 | Application.Run(new MonitorForm()); 69 | } 70 | 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileMonitor/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FileMonitor")] 9 | [assembly: AssemblyDescription("Monitor File I/O Demo Application")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("EaseFilter Technologies")] 12 | [assembly: AssemblyProduct("EaseFilter_FileMonitor.exe")] 13 | [assembly: AssemblyCopyright("Copyright © EaseFilter Technologies")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("b8ffbab5-e350-4cf3-9015-a8ff4325ddeb")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("5.2.4.1001")] 35 | //[assembly: AssemblyFileVersion("1.0.0.0")] 36 | 37 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileMonitor/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace FileMonitor.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FileMonitor.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileMonitor/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace FileMonitor.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileMonitor/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileMonitor/TrayForm.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.ComponentModel; 21 | using System.Data; 22 | using System.Drawing; 23 | using System.Linq; 24 | using System.Text; 25 | using System.Windows.Forms; 26 | using System.IO; 27 | 28 | using EaseFilter.CommonObjects; 29 | using EaseFilter.FilterControl; 30 | 31 | namespace FileMonitor 32 | { 33 | public partial class TrayForm : Form 34 | { 35 | MonitorForm monitorForm = new MonitorForm(); 36 | 37 | public TrayForm() 38 | { 39 | InitializeComponent(); 40 | 41 | } 42 | 43 | private void TrayForm_Load(object sender, EventArgs e) 44 | { 45 | this.Hide(); 46 | this.notifyIcon.Visible = true; 47 | monitorForm.ShowDialog(); 48 | } 49 | 50 | private void consoleToolStripMenuItem_Click(object sender, EventArgs e) 51 | { 52 | if (!monitorForm.Visible) 53 | { 54 | monitorForm.StartPosition = FormStartPosition.CenterScreen; 55 | monitorForm.ShowDialog(); 56 | } 57 | } 58 | 59 | private void settingsToolStripMenuItem_Click(object sender, EventArgs e) 60 | { 61 | SettingsForm settingForm = new SettingsForm(); 62 | settingForm.StartPosition = FormStartPosition.CenterScreen; 63 | settingForm.ShowDialog(); 64 | } 65 | 66 | private void helpTopicsToolStripMenuItem1_Click(object sender, EventArgs e) 67 | { 68 | System.Diagnostics.Process.Start("http://www.easefilter.com/Forums_Files/FileMonitor.htm"); 69 | } 70 | 71 | private void reportAProblemToolStripMenuItem_Click(object sender, EventArgs e) 72 | { 73 | System.Diagnostics.Process.Start("http://www.easefilter.com/ReportIssue.htm"); 74 | } 75 | 76 | private void exitToolStripMenuItem1_Click(object sender, EventArgs e) 77 | { 78 | GlobalConfig.Stop(); 79 | monitorForm.Close(); 80 | 81 | Application.Exit(); 82 | } 83 | 84 | private void sdkToolStripMenuItem_Click(object sender, EventArgs e) 85 | { 86 | System.Diagnostics.Process.Start("http://www.easefilter.com/info/easefilter_manual.pdf"); 87 | } 88 | 89 | private void openSourceCodeToolStripMenuItem_Click(object sender, EventArgs e) 90 | { 91 | System.Reflection.Assembly assembly = System.Reflection.Assembly.GetEntryAssembly(); 92 | string AssemblyPath = Path.Combine(Path.GetDirectoryName(assembly.Location), "Demo"); 93 | System.Diagnostics.Process.Start("explorer.exe", AssemblyPath); 94 | } 95 | 96 | private void uninstallDriverToolStripMenuItem_Click(object sender, EventArgs e) 97 | { 98 | FilterAPI.UnInstallDriver(); 99 | } 100 | 101 | 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileMonitor/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileMonitor/app.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileMonitor/text_view.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Demo_Source_Code/CSharpDemo/FileMonitor/text_view.ico -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileMonitorConsole/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FileMonitorConsole")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("FileMonitorConsole")] 13 | [assembly: AssemblyCopyright("Copyright © 2021")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("35260e88-ccf4-4dfc-86d9-b4930d0e5ed8")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("5.2.3.2001")] 36 | //[assembly: AssemblyFileVersion("1.0.0.0")] 37 | 38 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileMonitorConsole/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileProtector/FileProtector.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | true 5 | 6 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileProtector/InputForm.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.ComponentModel; 21 | using System.Data; 22 | using System.Drawing; 23 | using System.Text; 24 | using System.Windows.Forms; 25 | 26 | namespace EaseFilter.CommonObjects 27 | { 28 | public partial class InputForm : Form 29 | { 30 | public string InputText = string.Empty; 31 | 32 | public InputForm(string caption, string promptText,string inputText) 33 | { 34 | InitializeComponent(); 35 | this.Text = caption; 36 | label_InputPrompt.Text = promptText; 37 | textBox_Input.Text = inputText; 38 | } 39 | 40 | private void button_Ok_Click(object sender, EventArgs e) 41 | { 42 | InputText = textBox_Input.Text; 43 | } 44 | 45 | private void button_FileBrowse_Click(object sender, EventArgs e) 46 | { 47 | if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) 48 | { 49 | textBox_Input.Text = folderBrowserDialog1.SelectedPath; 50 | } 51 | 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileProtector/Program.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.Linq; 21 | using System.Windows.Forms; 22 | 23 | using EaseFilter.FilterControl; 24 | 25 | namespace FileProtector 26 | { 27 | static class Program 28 | { 29 | /// 30 | /// The main entry point for the application. 31 | /// 32 | [STAThread] 33 | static void Main(string[] args) 34 | { 35 | 36 | if (args.Length > 0) 37 | { 38 | string command = args[0]; 39 | switch (command.ToLower()) 40 | { 41 | case "-installdriver": 42 | { 43 | bool ret = FilterAPI.InstallDriver(); 44 | if (!ret) 45 | { 46 | Console.WriteLine("Install driver failed:" + FilterAPI.GetLastErrorMessage()); 47 | } 48 | 49 | break; 50 | } 51 | 52 | case "-uninstalldriver": 53 | { 54 | bool ret = FilterAPI.UnInstallDriver(); 55 | if (!ret) 56 | { 57 | Console.WriteLine("UnInstall driver failed:" + FilterAPI.GetLastErrorMessage()); 58 | } 59 | 60 | break; 61 | } 62 | } 63 | } 64 | else 65 | { 66 | Application.EnableVisualStyles(); 67 | Application.SetCompatibleTextRenderingDefault(false); 68 | Application.Run(new ProtectorForm()); 69 | } 70 | 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileProtector/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FileProtector")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("EaseFilter Technologies")] 12 | [assembly: AssemblyProduct("FileProtector")] 13 | [assembly: AssemblyCopyright("Copyright © 2017 EaseFilter Technologies")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("b8ffbab5-e350-4cf3-9015-a8ff4325ddeb")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("5.2.4.1001")] 35 | //[assembly: AssemblyFileVersion("1.0.0.0")] 36 | 37 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileProtector/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace FileProtector.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FileProtector.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileProtector/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace FileProtector.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileProtector/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileProtector/ProtectorUnitTest.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace FileProtector 2 | { 3 | partial class FileProtectorUnitTest 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FileProtectorUnitTest)); 32 | this.groupBox1 = new System.Windows.Forms.GroupBox(); 33 | this.richTextBox_TestResult = new System.Windows.Forms.RichTextBox(); 34 | this.groupBox1.SuspendLayout(); 35 | this.SuspendLayout(); 36 | // 37 | // groupBox1 38 | // 39 | this.groupBox1.Controls.Add(this.richTextBox_TestResult); 40 | this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; 41 | this.groupBox1.Location = new System.Drawing.Point(0, 0); 42 | this.groupBox1.Name = "groupBox1"; 43 | this.groupBox1.Size = new System.Drawing.Size(636, 408); 44 | this.groupBox1.TabIndex = 0; 45 | this.groupBox1.TabStop = false; 46 | // 47 | // richTextBox_TestResult 48 | // 49 | this.richTextBox_TestResult.Dock = System.Windows.Forms.DockStyle.Fill; 50 | this.richTextBox_TestResult.Location = new System.Drawing.Point(3, 16); 51 | this.richTextBox_TestResult.Name = "richTextBox_TestResult"; 52 | this.richTextBox_TestResult.Size = new System.Drawing.Size(630, 389); 53 | this.richTextBox_TestResult.TabIndex = 0; 54 | this.richTextBox_TestResult.Text = ""; 55 | // 56 | // FileProtectorUnitTest 57 | // 58 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 59 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 60 | this.ClientSize = new System.Drawing.Size(636, 408); 61 | this.Controls.Add(this.groupBox1); 62 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 63 | this.Name = "FileProtectorUnitTest"; 64 | this.Text = "FileProtector Feature Demo "; 65 | this.Activated += new System.EventHandler(this.FileProtectorUnitTest_Activated); 66 | this.groupBox1.ResumeLayout(false); 67 | this.ResumeLayout(false); 68 | 69 | } 70 | 71 | #endregion 72 | 73 | private System.Windows.Forms.GroupBox groupBox1; 74 | private System.Windows.Forms.RichTextBox richTextBox_TestResult; 75 | } 76 | } -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileProtector/TutorialForm.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.ComponentModel; 21 | using System.Data; 22 | using System.Drawing; 23 | using System.Linq; 24 | using System.Text; 25 | using System.Windows.Forms; 26 | 27 | namespace FileProtector 28 | { 29 | public partial class TutorialForm : Form 30 | { 31 | public static bool isInitialized = false; 32 | 33 | public TutorialForm() 34 | { 35 | InitializeComponent(); 36 | } 37 | 38 | 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileProtector/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileProtector/app.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileProtector/protector.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Demo_Source_Code/CSharpDemo/FileProtector/protector.ico -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileProtectorConsole/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FileProtectorConsole")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("FileProtectorConsole")] 13 | [assembly: AssemblyCopyright("Copyright © 2021")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("5969a609-aaf4-4d84-ad5c-0365fee9a3f7")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("5.2.3.2001")] 36 | //[assembly: AssemblyFileVersion("1.0.0.0")] 37 | 38 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FileProtectorConsole/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FilterControl/FilterControl.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | AnyCPU 6 | 8.0.30703 7 | 2.0 8 | {21540012-A296-45CE-8D35-3EA5A07B32A6} 9 | Library 10 | Properties 11 | EaseFilter.FilterControl 12 | FilterControl 13 | v4.5 14 | 512 15 | SAK 16 | SAK 17 | SAK 18 | SAK 19 | 20 | 21 | 22 | true 23 | full 24 | false 25 | ..\..\Release\ 26 | DEBUG;TRACE 27 | prompt 28 | 4 29 | false 30 | 31 | 32 | pdbonly 33 | true 34 | ..\..\Release\ 35 | TRACE 36 | prompt 37 | 4 38 | false 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 73 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FilterControl/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("FilterControl")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("FilterControl")] 13 | [assembly: AssemblyCopyright("Copyright © 2024")] 14 | [assembly: AssemblyTrademark("EaseFilter")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("47e1b264-38bb-4890-989c-645960c6e23a")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("5.4.6.2001")] 36 | //[assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FolderLocker/EncryptEventHandler.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.ComponentModel; 21 | using System.Data; 22 | using System.Drawing; 23 | using System.Text; 24 | using System.Windows.Forms; 25 | using System.Runtime.InteropServices; 26 | using System.Security.Principal; 27 | using System.IO; 28 | using System.Threading; 29 | using System.Reflection; 30 | 31 | using EaseFilter.FilterControl; 32 | using EaseFilter.CommonObjects; 33 | 34 | namespace EaseFilter.FolderLocker 35 | { 36 | 37 | public class EncryptEventHandler : IDisposable 38 | { 39 | bool disposed = false; 40 | 41 | public EncryptEventHandler() 42 | { 43 | } 44 | 45 | public void Dispose() 46 | { 47 | Dispose(true); 48 | GC.SuppressFinalize(this); 49 | } 50 | 51 | private void Dispose(bool disposing) 52 | { 53 | if (!this.disposed) 54 | { 55 | } 56 | 57 | disposed = true; 58 | } 59 | 60 | ~EncryptEventHandler() 61 | { 62 | Dispose(false); 63 | } 64 | 65 | /// 66 | /// Fires this event after the new file was created, the handle is not closed. 67 | /// 68 | public void OnFilterRequestEncryptKey(object sender, EncryptEventArgs e) 69 | { 70 | 71 | if (!DRServer.GetFileAccessPermission(e)) 72 | { 73 | e.IoStatus = e.ReturnStatus = NtStatus.Status.AccessDenied; 74 | } 75 | 76 | } 77 | 78 | } 79 | } -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FolderLocker/Lock Folder.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Demo_Source_Code/CSharpDemo/FolderLocker/Lock Folder.ico -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FolderLocker/Program.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.Linq; 21 | using System.Windows.Forms; 22 | 23 | namespace EaseFilter.FolderLocker 24 | { 25 | static class Program 26 | { 27 | /// 28 | /// The main entry point for the application. 29 | /// 30 | [STAThread] 31 | static void Main() 32 | { 33 | Application.EnableVisualStyles(); 34 | Application.SetCompatibleTextRenderingDefault(false); 35 | Application.Run(new Form_FolderLocker()); 36 | 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FolderLocker/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("EaseFilter Folder Locker")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("EaseFilter Technologies")] 12 | [assembly: AssemblyProduct("AutoFileCryptTool")] 13 | [assembly: AssemblyCopyright("Copyright © 2017 EaseFilter Technologies")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("1826df94-fbbb-4180-ad6f-c1ab49726eca")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("5.6.2.1001")] 36 | //[assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FolderLocker/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace EaseFilter.FolderLocker.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("EaseFilter.FolderLocker.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Looks up a localized resource of type System.Drawing.Bitmap. 65 | /// 66 | internal static System.Drawing.Bitmap about { 67 | get { 68 | object obj = ResourceManager.GetObject("about", resourceCulture); 69 | return ((System.Drawing.Bitmap)(obj)); 70 | } 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FolderLocker/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace EaseFilter.FolderLocker.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FolderLocker/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FolderLocker/Properties/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Demo_Source_Code/CSharpDemo/FolderLocker/Properties/about.png -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FolderLocker/TrayForm.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.ComponentModel; 21 | using System.Data; 22 | using System.Drawing; 23 | using System.Linq; 24 | using System.Text; 25 | using System.Windows.Forms; 26 | using System.IO; 27 | 28 | using EaseFilter.CommonObjects; 29 | 30 | namespace EaseFilter.FolderLocker 31 | { 32 | public partial class TrayForm : Form 33 | { 34 | Form_FolderLocker folderLockerForm = null; 35 | 36 | public TrayForm() 37 | { 38 | 39 | InitializeComponent(); 40 | 41 | Utils.CopyOSPlatformDependentFiles(); 42 | 43 | 44 | this.Hide(); 45 | 46 | folderLockerForm = new Form_FolderLocker(); 47 | 48 | } 49 | 50 | private void TrayForm_Load(object sender, EventArgs e) 51 | { 52 | this.Hide(); 53 | this.notifyIcon.Visible = true; 54 | folderLockerForm.ShowDialog(); 55 | } 56 | 57 | 58 | private void openConsoleToolStripMenuItem_Click(object sender, EventArgs e) 59 | { 60 | if (!folderLockerForm.Visible) 61 | { 62 | folderLockerForm.StartPosition = FormStartPosition.CenterScreen; 63 | folderLockerForm.ShowDialog(); 64 | } 65 | } 66 | 67 | 68 | private void exitToolStripMenuItem1_Click(object sender, EventArgs e) 69 | { 70 | GlobalConfig.Stop(); 71 | folderLockerForm.Close(); 72 | 73 | Application.Exit(); 74 | } 75 | 76 | private void startLockertoolStripMenuItem_Click(object sender, EventArgs e) 77 | { 78 | string lastError = string.Empty; 79 | if (!FilterWorker.StartService(ref lastError)) 80 | { 81 | MessageBoxHelper.PrepToCenterMessageBoxOnForm(this); 82 | MessageBox.Show("Start service failed with error:" + lastError + ",folder locker service will stop.", "Folder locker Service", MessageBoxButtons.OK, MessageBoxIcon.Error); 83 | } 84 | } 85 | 86 | private void stopLockertoolStripMenuItem_Click(object sender, EventArgs e) 87 | { 88 | GlobalConfig.Stop(); 89 | FilterAPI.StopFilter(); 90 | } 91 | 92 | 93 | 94 | 95 | 96 | } 97 | } 98 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FolderLocker/WebAPIService.designer.cs: -------------------------------------------------------------------------------- 1 | namespace EaseFilter.FolderLocker 2 | { 3 | partial class WebFormServices 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WebFormServices)); 32 | this.SuspendLayout(); 33 | // 34 | // WebFormServices 35 | // 36 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 37 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 38 | this.ClientSize = new System.Drawing.Size(625, 287); 39 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 40 | this.Name = "WebFormServices"; 41 | this.Text = "Web API Remote Service"; 42 | this.ResumeLayout(false); 43 | 44 | } 45 | 46 | #endregion 47 | 48 | } 49 | } -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FolderLocker/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/FolderLocker/app.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/ProcessMon/ProcessUnitTestForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace ProcessMon 2 | { 3 | partial class ProcessUnitTestForm 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProcessUnitTestForm)); 32 | this.groupBox1 = new System.Windows.Forms.GroupBox(); 33 | this.richTextBox_TestResult = new System.Windows.Forms.RichTextBox(); 34 | this.groupBox1.SuspendLayout(); 35 | this.SuspendLayout(); 36 | // 37 | // groupBox1 38 | // 39 | this.groupBox1.Controls.Add(this.richTextBox_TestResult); 40 | this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; 41 | this.groupBox1.Location = new System.Drawing.Point(0, 0); 42 | this.groupBox1.Name = "groupBox1"; 43 | this.groupBox1.Size = new System.Drawing.Size(636, 408); 44 | this.groupBox1.TabIndex = 0; 45 | this.groupBox1.TabStop = false; 46 | // 47 | // richTextBox_TestResult 48 | // 49 | this.richTextBox_TestResult.Dock = System.Windows.Forms.DockStyle.Fill; 50 | this.richTextBox_TestResult.Location = new System.Drawing.Point(3, 16); 51 | this.richTextBox_TestResult.Name = "richTextBox_TestResult"; 52 | this.richTextBox_TestResult.Size = new System.Drawing.Size(630, 389); 53 | this.richTextBox_TestResult.TabIndex = 0; 54 | this.richTextBox_TestResult.Text = ""; 55 | // 56 | // RegUnitTest 57 | // 58 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 59 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 60 | this.ClientSize = new System.Drawing.Size(636, 408); 61 | this.Controls.Add(this.groupBox1); 62 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 63 | this.Name = "RegUnitTest"; 64 | this.Text = "Process Filter Driver SDK Unit Test"; 65 | this.Activated += new System.EventHandler(this.ProcessUnitTest_Activated); 66 | this.groupBox1.ResumeLayout(false); 67 | this.ResumeLayout(false); 68 | 69 | } 70 | 71 | #endregion 72 | 73 | private System.Windows.Forms.GroupBox groupBox1; 74 | private System.Windows.Forms.RichTextBox richTextBox_TestResult; 75 | } 76 | } -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/ProcessMon/ProcessUnitTestForm.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.IO; 20 | using System.Diagnostics; 21 | using System.Collections.Generic; 22 | using System.ComponentModel; 23 | using System.Data; 24 | using System.Drawing; 25 | using System.Linq; 26 | using System.Text; 27 | using System.Windows.Forms; 28 | using Microsoft.Win32.SafeHandles; 29 | using System.Security.AccessControl; 30 | using System.Security.Principal; 31 | using System.Threading; 32 | using System.Threading.Tasks; 33 | 34 | using EaseFilter.FilterControl; 35 | using EaseFilter.CommonObjects; 36 | 37 | namespace ProcessMon 38 | { 39 | public partial class ProcessUnitTestForm : Form 40 | { 41 | 42 | bool isUnitTestCompleted = false; 43 | //Purchase a license key with the link: http://www.easefilter.com/Order.htm 44 | //Email us to request a trial key: info@easefilter.com //free email is not accepted. 45 | string licenseKey = "******************************************"; 46 | 47 | public ProcessUnitTestForm(string _licenseKey) 48 | { 49 | InitializeComponent(); 50 | this.licenseKey = _licenseKey; 51 | 52 | } 53 | 54 | private void ProcessUnitTest_Activated(object sender, EventArgs e) 55 | { 56 | if (!isUnitTestCompleted) 57 | { 58 | isUnitTestCompleted = true; 59 | 60 | ProcessUnitTest.ProcessFilterUnitTest(richTextBox_TestResult,licenseKey); 61 | GlobalConfig.Load(); 62 | //System.Threading.Tasks.Task.Factory.StartNew(() => { ProcessUnitTest.ProcessFilterUnitTest(richTextBox_TestResult); }); 63 | 64 | } 65 | 66 | } 67 | 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/ProcessMon/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Windows.Forms; 5 | 6 | namespace ProcessMon 7 | { 8 | static class Program 9 | { 10 | /// 11 | /// The main entry point for the application. 12 | /// 13 | [STAThread] 14 | static void Main() 15 | { 16 | Application.EnableVisualStyles(); 17 | Application.SetCompatibleTextRenderingDefault(false); 18 | Application.Run(new ProcessMon()); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/ProcessMon/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("ProcessMon")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("ProcessMon")] 13 | [assembly: AssemblyCopyright("Copyright © EaseFilter 2019")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("6f3ee287-55d9-4d9a-9944-5a7500c1266d")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("5.2.3.2001")] 36 | //[assembly: AssemblyFileVersion("1.0.0.0")] 37 | 38 | 39 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/ProcessMon/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace ProcessMon.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ProcessMon.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | /// 64 | /// Looks up a localized resource of type System.Drawing.Bitmap. 65 | /// 66 | internal static System.Drawing.Bitmap about { 67 | get { 68 | object obj = ResourceManager.GetObject("about", resourceCulture); 69 | return ((System.Drawing.Bitmap)(obj)); 70 | } 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/ProcessMon/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace ProcessMon.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/ProcessMon/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/ProcessMon/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Demo_Source_Code/CSharpDemo/ProcessMon/about.png -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/ProcessMon/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/ProcessMon/app.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/ProcessMon/processmon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Demo_Source_Code/CSharpDemo/ProcessMon/processmon.ico -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/RegMon/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Windows.Forms; 5 | 6 | namespace RegMon 7 | { 8 | static class Program 9 | { 10 | /// 11 | /// The main entry point for the application. 12 | /// 13 | [STAThread] 14 | static void Main() 15 | { 16 | Application.EnableVisualStyles(); 17 | Application.SetCompatibleTextRenderingDefault(false); 18 | Application.Run(new RegMonForm()); 19 | 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/RegMon/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Registry Monitor and Protector")] 9 | [assembly: AssemblyDescription("Registry Access Monitor and Control")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("EaseFilter")] 12 | [assembly: AssemblyProduct("Registry Access Monitor and Protector")] 13 | [assembly: AssemblyCopyright("Copyright © EaseFilter 2019")] 14 | [assembly: AssemblyTrademark("EaseFilter")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("ddf4bb22-545a-481e-9d32-980e86721f6a")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("5.2.4.1")] 36 | //[assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/RegMon/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace RegMon.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RegMon.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/RegMon/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace RegMon.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/RegMon/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/RegMon/RegUnitTest.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace RegMon 2 | { 3 | partial class RegUnitTest 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RegUnitTest)); 32 | this.groupBox1 = new System.Windows.Forms.GroupBox(); 33 | this.richTextBox_TestResult = new System.Windows.Forms.RichTextBox(); 34 | this.groupBox1.SuspendLayout(); 35 | this.SuspendLayout(); 36 | // 37 | // groupBox1 38 | // 39 | this.groupBox1.Controls.Add(this.richTextBox_TestResult); 40 | this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; 41 | this.groupBox1.Location = new System.Drawing.Point(0, 0); 42 | this.groupBox1.Name = "groupBox1"; 43 | this.groupBox1.Size = new System.Drawing.Size(636, 408); 44 | this.groupBox1.TabIndex = 0; 45 | this.groupBox1.TabStop = false; 46 | // 47 | // richTextBox_TestResult 48 | // 49 | this.richTextBox_TestResult.Dock = System.Windows.Forms.DockStyle.Fill; 50 | this.richTextBox_TestResult.Location = new System.Drawing.Point(3, 16); 51 | this.richTextBox_TestResult.Name = "richTextBox_TestResult"; 52 | this.richTextBox_TestResult.Size = new System.Drawing.Size(630, 389); 53 | this.richTextBox_TestResult.TabIndex = 0; 54 | this.richTextBox_TestResult.Text = ""; 55 | // 56 | // RegUnitTest 57 | // 58 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 59 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 60 | this.ClientSize = new System.Drawing.Size(636, 408); 61 | this.Controls.Add(this.groupBox1); 62 | this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); 63 | this.Name = "RegUnitTest"; 64 | this.Text = "Registry Filter Driver SDK Unit Test"; 65 | this.Activated += new System.EventHandler(this.RegUnitTest_Activated); 66 | this.groupBox1.ResumeLayout(false); 67 | this.ResumeLayout(false); 68 | 69 | } 70 | 71 | #endregion 72 | 73 | private System.Windows.Forms.GroupBox groupBox1; 74 | private System.Windows.Forms.RichTextBox richTextBox_TestResult; 75 | } 76 | } -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/RegMon/RegUnitTest.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.IO; 20 | using System.Diagnostics; 21 | using System.Collections.Generic; 22 | using System.ComponentModel; 23 | using System.Data; 24 | using System.Drawing; 25 | using System.Linq; 26 | using System.Text; 27 | using System.Windows.Forms; 28 | using Microsoft.Win32.SafeHandles; 29 | using System.Security.AccessControl; 30 | using System.Security.Principal; 31 | 32 | using EaseFilter.FilterControl; 33 | using EaseFilter.CommonObjects; 34 | 35 | namespace RegMon 36 | { 37 | public partial class RegUnitTest : Form 38 | { 39 | 40 | bool isUnitTestStarted = false; 41 | FilterControl filterControl = new FilterControl(); 42 | 43 | //Purchase a license key with the link: http://www.easefilter.com/Order.htm 44 | //Email us to request a trial key: info@easefilter.com //free email is not accepted. 45 | public static string licenseKey = GlobalConfig.LicenseKey; 46 | 47 | public RegUnitTest(string _licenseKey) 48 | { 49 | InitializeComponent(); 50 | licenseKey = _licenseKey; 51 | } 52 | 53 | 54 | public void StartFilterUnitTest() 55 | { 56 | try 57 | { 58 | RegistryUnitTest registryUnitTest = new RegistryUnitTest(); 59 | registryUnitTest.RegistryFilterUnitTest(filterControl, richTextBox_TestResult, licenseKey); 60 | } 61 | catch (Exception ex) 62 | { 63 | richTextBox_TestResult.Text += "Filter test exception:" + ex.Message; 64 | } 65 | } 66 | 67 | private void RegUnitTest_Activated(object sender, EventArgs e) 68 | { 69 | if (!isUnitTestStarted) 70 | { 71 | isUnitTestStarted = true; 72 | 73 | string lastError = string.Empty; 74 | if (!filterControl.StartFilter(GlobalConfig.filterType, GlobalConfig.FilterConnectionThreads, GlobalConfig.ConnectionTimeOut, licenseKey, ref lastError)) 75 | { 76 | MessageBox.Show(lastError, "StartFilter", MessageBoxButtons.OK, MessageBoxIcon.Error); 77 | return; 78 | } 79 | 80 | System.Threading.Thread.Sleep(3000); 81 | 82 | StartFilterUnitTest(); 83 | 84 | filterControl.StopFilter(); 85 | } 86 | 87 | } 88 | 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/RegMon/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/RegMon/app.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/RegMon/registry-icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Demo_Source_Code/CSharpDemo/RegMon/registry-icon.ico -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureSandbox/EncryptEventHandler.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.ComponentModel; 21 | using System.Data; 22 | using System.Drawing; 23 | using System.Text; 24 | using System.Windows.Forms; 25 | using System.Runtime.InteropServices; 26 | using System.Security.Principal; 27 | using System.IO; 28 | using System.Threading; 29 | using System.Reflection; 30 | 31 | using EaseFilter.FilterControl; 32 | using EaseFilter.CommonObjects; 33 | 34 | namespace SecureSandbox 35 | { 36 | 37 | public class EncryptEventHandler : IDisposable 38 | { 39 | bool disposed = false; 40 | 41 | public EncryptEventHandler() 42 | { 43 | } 44 | 45 | public void Dispose() 46 | { 47 | Dispose(true); 48 | GC.SuppressFinalize(this); 49 | } 50 | 51 | private void Dispose(bool disposing) 52 | { 53 | if (!this.disposed) 54 | { 55 | } 56 | 57 | disposed = true; 58 | } 59 | 60 | ~EncryptEventHandler() 61 | { 62 | Dispose(false); 63 | } 64 | 65 | /// 66 | /// Fires this event after the new file was created, the handle is not closed. 67 | /// 68 | public void OnFilterRequestEncryptKey(object sender, EncryptEventArgs e) 69 | { 70 | //if you want to block the encryption you can return access denied 71 | // e.ReturnStatus = NtStatus.Status.AccessDenied; 72 | //or return the encryption key and iv here. 73 | //e.EncryptionKey = new byte[32]; //put your own encryption key here 74 | //e.IV = Utils.GetRandomIV(); 75 | 76 | } 77 | 78 | } 79 | } -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureSandbox/Info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Demo_Source_Code/CSharpDemo/SecureSandbox/Info.png -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureSandbox/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Windows.Forms; 5 | 6 | namespace SecureSandbox 7 | { 8 | static class Program 9 | { 10 | /// 11 | /// The main entry point for the application. 12 | /// 13 | [STAThread] 14 | static void Main() 15 | { 16 | Application.EnableVisualStyles(); 17 | Application.SetCompatibleTextRenderingDefault(false); 18 | Application.Run(new TrayForm()); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureSandbox/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SecureSandbox")] 9 | [assembly: AssemblyDescription("EaseFilter secure sandbox")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("EaseFilter")] 12 | [assembly: AssemblyProduct("SecureSandbox")] 13 | [assembly: AssemblyCopyright("Copyright © EaseFilter 2019")] 14 | [assembly: AssemblyTrademark("EaseFilter")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("bdbc2b5e-2c6f-423b-b2a6-1a3884d67dba")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("5.2.3.2001")] 36 | //[assembly: AssemblyFileVersion("1.0.0.0")] 37 | 38 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureSandbox/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace SecureSandbox.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureSandbox/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureSandbox/SecureSandbox.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Demo_Source_Code/CSharpDemo/SecureSandbox/SecureSandbox.ico -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureSandbox/TrayForm.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.ComponentModel; 21 | using System.Data; 22 | using System.Drawing; 23 | using System.Linq; 24 | using System.Text; 25 | using System.Windows.Forms; 26 | using System.IO; 27 | 28 | using EaseFilter.CommonObjects; 29 | 30 | namespace SecureSandbox 31 | { 32 | public partial class TrayForm: Form 33 | { 34 | SecureSandbox secureSandbox = null; 35 | 36 | public TrayForm() 37 | { 38 | 39 | InitializeComponent(); 40 | 41 | this.Hide(); 42 | 43 | secureSandbox = new SecureSandbox(); 44 | 45 | } 46 | 47 | private void TrayForm_Load(object sender, EventArgs e) 48 | { 49 | this.Hide(); 50 | this.notifyIcon.Visible = true; 51 | secureSandbox.ShowDialog(); 52 | } 53 | 54 | 55 | private void consoleToolStripMenuItem_Click(object sender, EventArgs e) 56 | { 57 | if (!secureSandbox.Visible) 58 | { 59 | secureSandbox.StartPosition = FormStartPosition.CenterScreen; 60 | secureSandbox.ShowDialog(); 61 | } 62 | } 63 | 64 | private void settingsToolStripMenuItem_Click(object sender, EventArgs e) 65 | { 66 | SettingsForm settingForm = new SettingsForm(); 67 | settingForm.StartPosition = FormStartPosition.CenterScreen; 68 | settingForm.ShowDialog(); 69 | } 70 | 71 | 72 | 73 | private void exitToolStripMenuItem1_Click(object sender, EventArgs e) 74 | { 75 | GlobalConfig.Stop(); 76 | secureSandbox.Close(); 77 | 78 | Application.Exit(); 79 | } 80 | 81 | 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureSandbox/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Demo_Source_Code/CSharpDemo/SecureSandbox/about.png -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureSandbox/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureSandbox/app.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureShare/Program.cs: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright 2011 EaseFilter Technologies 4 | // All Rights Reserved 5 | // 6 | // This software is part of a licensed software product and may 7 | // only be used or copied in accordance with the terms of that license. 8 | // 9 | // NOTE: THIS MODULE IS UNSUPPORTED SAMPLE CODE 10 | // 11 | // This module contains sample code provided for convenience and 12 | // demonstration purposes only,this software is provided on an 13 | // "AS-IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 14 | // either express or implied. 15 | // 16 | /////////////////////////////////////////////////////////////////////////////// 17 | 18 | using System; 19 | using System.Collections.Generic; 20 | using System.Linq; 21 | using System.Windows.Forms; 22 | 23 | namespace SecureShare 24 | { 25 | static class Program 26 | { 27 | /// 28 | /// The main entry point for the application. 29 | /// 30 | [STAThread] 31 | static void Main() 32 | { 33 | Application.EnableVisualStyles(); 34 | Application.SetCompatibleTextRenderingDefault(false); 35 | Application.Run(new SecureShareManager()); 36 | 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureShare/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("SecureShare")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("SecureShare")] 13 | [assembly: AssemblyCopyright("Copyright © 2018")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("cce6e96f-de72-4554-8f32-a70c75bc8ce0")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("5.2.3.2001")] 35 | //[assembly: AssemblyFileVersion("1.0.0.0")] 36 | 37 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureShare/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace SecureShare.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// A strongly-typed resource class, for looking up localized strings, etc. 17 | /// 18 | // This class was auto-generated by the StronglyTypedResourceBuilder 19 | // class via a tool like ResGen or Visual Studio. 20 | // To add or remove a member, edit your .ResX file then rerun ResGen 21 | // with the /str option, or rebuild your VS project. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Returns the cached ResourceManager instance used by this class. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SecureShare.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Overrides the current thread's CurrentUICulture property for all 51 | /// resource lookups using this strongly typed resource class. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureShare/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // This code was generated by a tool. 4 | // Runtime Version:4.0.30319.42000 5 | // 6 | // Changes to this file may cause incorrect behavior and will be lost if 7 | // the code is regenerated. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace SecureShare.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureShare/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureShare/SecureForm.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace SecureShare 2 | { 3 | partial class SecureForm 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SecureForm)); 32 | this.panel1 = new System.Windows.Forms.Panel(); 33 | this.button_Start = new System.Windows.Forms.Button(); 34 | this.button1 = new System.Windows.Forms.Button(); 35 | this.button2 = new System.Windows.Forms.Button(); 36 | this.button3 = new System.Windows.Forms.Button(); 37 | this.panel1.SuspendLayout(); 38 | this.SuspendLayout(); 39 | // 40 | // panel1 41 | // 42 | this.panel1.Controls.Add(this.button3); 43 | this.panel1.Controls.Add(this.button2); 44 | this.panel1.Controls.Add(this.button1); 45 | this.panel1.Controls.Add(this.button_Start); 46 | resources.ApplyResources(this.panel1, "panel1"); 47 | this.panel1.Name = "panel1"; 48 | // 49 | // button_Start 50 | // 51 | resources.ApplyResources(this.button_Start, "button_Start"); 52 | this.button_Start.Name = "button_Start"; 53 | this.button_Start.UseVisualStyleBackColor = true; 54 | // 55 | // button1 56 | // 57 | resources.ApplyResources(this.button1, "button1"); 58 | this.button1.Name = "button1"; 59 | this.button1.UseVisualStyleBackColor = true; 60 | // 61 | // button2 62 | // 63 | resources.ApplyResources(this.button2, "button2"); 64 | this.button2.Name = "button2"; 65 | this.button2.UseVisualStyleBackColor = true; 66 | // 67 | // button3 68 | // 69 | resources.ApplyResources(this.button3, "button3"); 70 | this.button3.Name = "button3"; 71 | this.button3.UseVisualStyleBackColor = true; 72 | // 73 | // SecureForm 74 | // 75 | resources.ApplyResources(this, "$this"); 76 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 77 | this.Controls.Add(this.panel1); 78 | this.MaximizeBox = false; 79 | this.Name = "SecureForm"; 80 | this.panel1.ResumeLayout(false); 81 | this.ResumeLayout(false); 82 | 83 | } 84 | 85 | #endregion 86 | 87 | private System.Windows.Forms.Panel panel1; 88 | private System.Windows.Forms.Button button3; 89 | private System.Windows.Forms.Button button2; 90 | private System.Windows.Forms.Button button1; 91 | private System.Windows.Forms.Button button_Start; 92 | } 93 | } -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureShare/SecureForm.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | namespace SecureShare 11 | { 12 | public partial class SecureForm : Form 13 | { 14 | public SecureForm() 15 | { 16 | InitializeComponent(); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureShare/SecureShare.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | true 5 | 6 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureShare/SecureShareManager.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/Demo_Source_Code/CSharpDemo/SecureShare/SecureShareManager.ico -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureShare/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/SecureShare/app.manifest: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/ZeroTrustDemo/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Demo_Source_Code/CSharpDemo/ZeroTrustDemo/ZeroTrustDemo.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | Debug 6 | AnyCPU 7 | {AD31CEC2-EC8C-4A61-8C22-7DF757D3745D} 8 | Exe 9 | ZeroTrustDemo 10 | ZeroTrustDemo 11 | v4.5 12 | 512 13 | true 14 | SAK 15 | SAK 16 | SAK 17 | SAK 18 | 19 | 20 | AnyCPU 21 | true 22 | full 23 | false 24 | bin\Debug\ 25 | DEBUG;TRACE 26 | prompt 27 | 4 28 | false 29 | 30 | 31 | AnyCPU 32 | pdbonly 33 | true 34 | bin\Release\ 35 | TRACE 36 | prompt 37 | 4 38 | false 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | {21540012-a296-45ce-8d35-3ea5a07b32a6} 49 | FilterControl 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /FileMonitor.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/FileMonitor.exe -------------------------------------------------------------------------------- /FileProtector.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/FileProtector.exe -------------------------------------------------------------------------------- /FilterControl.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/FilterControl.dll -------------------------------------------------------------------------------- /FolderLocker.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/FolderLocker.exe -------------------------------------------------------------------------------- /ProcessMon.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/ProcessMon.exe -------------------------------------------------------------------------------- /RegMon.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/RegMon.exe -------------------------------------------------------------------------------- /SecureSandbox.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/SecureSandbox.exe -------------------------------------------------------------------------------- /SecureShare.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EaseFilter/FilterDriver/b5695b58b0e1ad958586734ce15b69ab1143114b/SecureShare.exe --------------------------------------------------------------------------------