├── 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
--------------------------------------------------------------------------------