-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dangerously hijack file handles to close them #6
base: development
Are you sure you want to change the base?
Commits on Oct 15, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 3c1b2ca - Browse repository at this point
Copy the full SHA 3c1b2caView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2f22c7e - Browse repository at this point
Copy the full SHA 2f22c7eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1236997 - Browse repository at this point
Copy the full SHA 1236997View commit details -
Configuration menu - View commit details
-
Copy full SHA for a8ac39b - Browse repository at this point
Copy the full SHA a8ac39bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 47b1bb7 - Browse repository at this point
Copy the full SHA 47b1bb7View commit details -
feat: add equivalent methods for handling handles to public API
Ready for testing. Need a CLI project at the very least.
Configuration menu - View commit details
-
Copy full SHA for 637471f - Browse repository at this point
Copy the full SHA 637471fView commit details
Commits on Feb 13, 2023
-
Configuration menu - View commit details
-
Copy full SHA for f203ee1 - Browse repository at this point
Copy the full SHA f203ee1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7cd5501 - Browse repository at this point
Copy the full SHA 7cd5501View commit details -
refactor: override GetHashCode() in pseudo-funcptr
resolves warning CS0659
Configuration menu - View commit details
-
Copy full SHA for 216a1ef - Browse repository at this point
Copy the full SHA 216a1efView commit details -
Configuration menu - View commit details
-
Copy full SHA for e52fdbd - Browse repository at this point
Copy the full SHA e52fdbdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3c6cc06 - Browse repository at this point
Copy the full SHA 3c6cc06View commit details -
Configuration menu - View commit details
-
Copy full SHA for c1ce4e7 - Browse repository at this point
Copy the full SHA c1ce4e7View commit details -
Configuration menu - View commit details
-
Copy full SHA for a6c31d2 - Browse repository at this point
Copy the full SHA a6c31d2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7616902 - Browse repository at this point
Copy the full SHA 7616902View commit details -
refactor: add method CheckAccess for debugging purposes
docs: add missing quotation mark
Configuration menu - View commit details
-
Copy full SHA for ab3435f - Browse repository at this point
Copy the full SHA ab3435fView commit details -
refactor: add parameter to pass out WarningException
refactor: add Refresh for FileLockerEx Lockers list
Configuration menu - View commit details
-
Copy full SHA for d59487b - Browse repository at this point
Copy the full SHA d59487bView commit details -
refactor: move CsWin32 supplements to new files
todo: move SYSTEM_HANDLE_ definitions to CsWin32 namespace
Configuration menu - View commit details
-
Copy full SHA for 79397ec - Browse repository at this point
Copy the full SHA 79397ecView commit details -
refactor: slightly improve getting process command lines
It still fails more often than not due to crossing into unreadable memory. I'll look into it later.
Configuration menu - View commit details
-
Copy full SHA for 97e4992 - Browse repository at this point
Copy the full SHA 97e4992View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7d49548 - Browse repository at this point
Copy the full SHA 7d49548View commit details -
Configuration menu - View commit details
-
Copy full SHA for 123d581 - Browse repository at this point
Copy the full SHA 123d581View commit details -
Configuration menu - View commit details
-
Copy full SHA for f0763ab - Browse repository at this point
Copy the full SHA f0763abView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0e2083a - Browse repository at this point
Copy the full SHA 0e2083aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 44bccb8 - Browse repository at this point
Copy the full SHA 44bccb8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 023a2df - Browse repository at this point
Copy the full SHA 023a2dfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 780275a - Browse repository at this point
Copy the full SHA 780275aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7d3ae8e - Browse repository at this point
Copy the full SHA 7d3ae8eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 572ce32 - Browse repository at this point
Copy the full SHA 572ce32View commit details -
Configuration menu - View commit details
-
Copy full SHA for 41b4c5a - Browse repository at this point
Copy the full SHA 41b4c5aView commit details -
refactor: add more native definitions, supporting Types
Some are platform-specific, hence the 32/64 suffixes. Although PEB32 and PEB64 are done, plain ol' PEB isn't done yet. I exploited FieldOffsetAttribute quite bit in these platform-specific definitions. Additionally, some of the less important, platform specific type definitions were skipped to save time.
Configuration menu - View commit details
-
Copy full SHA for 1f1dc4f - Browse repository at this point
Copy the full SHA 1f1dc4fView commit details
Commits on Mar 27, 2023
-
Configuration menu - View commit details
-
Copy full SHA for cab4e5b - Browse repository at this point
Copy the full SHA cab4e5bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9c29b0a - Browse repository at this point
Copy the full SHA 9c29b0aView commit details -
refactor: refactor NTSTATUS, mimic dotnet/PInvoke
refactor: remove redundant const STATUS_INFO_LENGTH_MISMATCH; refactor: define 'using' aliases to ensure the correct Types are used.
Configuration menu - View commit details
-
Copy full SHA for 137c35f - Browse repository at this point
Copy the full SHA 137c35fView commit details -
Configuration menu - View commit details
-
Copy full SHA for a9d70cb - Browse repository at this point
Copy the full SHA a9d70cbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7a21538 - Browse repository at this point
Copy the full SHA 7a21538View commit details -
Configuration menu - View commit details
-
Copy full SHA for f506116 - Browse repository at this point
Copy the full SHA f506116View commit details -
Configuration menu - View commit details
-
Copy full SHA for 777e7ee - Browse repository at this point
Copy the full SHA 777e7eeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 96f3e5e - Browse repository at this point
Copy the full SHA 96f3e5eView commit details -
fix: use correct types for param rgsFileNames of RmRegisterResources
The overload requires a span of PCWSTR, not PWSTR. PCWSTR: A pointer to a null-terminated, constant character string.
Configuration menu - View commit details
-
Copy full SHA for 0242b56 - Browse repository at this point
Copy the full SHA 0242b56View commit details -
Configuration menu - View commit details
-
Copy full SHA for 58faeaf - Browse repository at this point
Copy the full SHA 58faeafView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1a8cb83 - Browse repository at this point
Copy the full SHA 1a8cb83View commit details -
Configuration menu - View commit details
-
Copy full SHA for d1fe87b - Browse repository at this point
Copy the full SHA d1fe87bView commit details -
Configuration menu - View commit details
-
Copy full SHA for ad659aa - Browse repository at this point
Copy the full SHA ad659aaView commit details -
refactor: overhaul GetProcessCommandLine
This adds the following: * Parameter validation * Exception handling and throwing * On windows 8.1 or later, NtQueryInformationProcess is called with ProcessCommandLineInformation (60). Otherwise... * On Windows 8.0 and below: * As a 32-bit process, acquire a 64-bit process's command line. We use a custom, ulong-based UIntPtr64 for pointers. 1. Pass ProcessBasicInformation (0) to NtWow64QueryInformationProcess64 to copy the 64-bit PROCESS_BASIC_INFORMATION. 2. Pass Peb field to NtWow64ReadVirtualMemory64 to copy the 64-bit PEB. 3. Pass ProcessParameters field to NtWow64ReadVirtualMemory64 to copy the 64-bit RTL_USER_PROCESS_PARAMETERS. 4. Pass CommandLine field to NtWow64ReadVirtualMemory to copy the UNICODE_STRING command line. * As a 64-bit process, acquire 32-bit process's command line. We use a custom, uint-based `UIntrPtr32` for pointers. 1. Pass ProcessBasicInformation (0) to NtQueryInformationProcess to copy the 32-bit PROCESS_BASIC_INFORMATION. 2. Pass the Peb field to ReadProcessMemory to copy target's 32-bit PEB. 3. Pass ProcessParameters field to ReadProcessMemory to copy the 32-bit RTL_USER_PROCESS_PARAMETERS. 4. Pass CommandLine field to ReadProcessMemory to copy the UNICODE_STRING command line.
Configuration menu - View commit details
-
Copy full SHA for 143b27d - Browse repository at this point
Copy the full SHA 143b27dView commit details -
refactor: improve GetFullProcessImageName
refactor: use dotnet functionality to acquire process names
Configuration menu - View commit details
-
Copy full SHA for 4b9135c - Browse repository at this point
Copy the full SHA 4b9135cView commit details -
Configuration menu - View commit details
-
Copy full SHA for ab43042 - Browse repository at this point
Copy the full SHA ab43042View commit details -
refactor: check if handle is File handle in SafeFileHandleEx ctor
refactor: ignore some inaccessible system processes refactor: improve exception handling
Configuration menu - View commit details
-
Copy full SHA for 79f2abe - Browse repository at this point
Copy the full SHA 79f2abeView commit details -
refactor: improve TryGetFinalPath
* System process is ignored. Throw InvalidOperationException. * Open ProcessHandle for target process * Throw exception if OpenProcess_SafeHandle fails * Duplicate handle. Pass duplicate to GetFinalPathNameByHandle. * Throw exception if DuplicateHandle fails. * Retry when GetFinalPathNameByHandle buffer is too small. * Throw different exceptions based on native error code when GetFinalPathNameByHandle still fails.
Configuration menu - View commit details
-
Copy full SHA for 33453cc - Browse repository at this point
Copy the full SHA 33453ccView commit details -
Configuration menu - View commit details
-
Copy full SHA for 83c4bb1 - Browse repository at this point
Copy the full SHA 83c4bb1View commit details -
reactor: add internal method IsDebugModeEnabled
Checks the current security token for SeDebugPrivilege. If it is not present, the user can call Process.EnterDebugMode().
Configuration menu - View commit details
-
Copy full SHA for 06ac4f6 - Browse repository at this point
Copy the full SHA 06ac4f6View commit details -
build: set EmitCompilerGeneratedFiles to true
This should help with debugging in some editors.
Configuration menu - View commit details
-
Copy full SHA for f13cff9 - Browse repository at this point
Copy the full SHA f13cff9View commit details -
Configuration menu - View commit details
-
Copy full SHA for e11386b - Browse repository at this point
Copy the full SHA e11386bView commit details -
Configuration menu - View commit details
-
Copy full SHA for ee29401 - Browse repository at this point
Copy the full SHA ee29401View commit details -
Configuration menu - View commit details
-
Copy full SHA for 23a207f - Browse repository at this point
Copy the full SHA 23a207fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 63dc718 - Browse repository at this point
Copy the full SHA 63dc718View commit details -
Configuration menu - View commit details
-
Copy full SHA for 75dc135 - Browse repository at this point
Copy the full SHA 75dc135View commit details -
Configuration menu - View commit details
-
Copy full SHA for f652e54 - Browse repository at this point
Copy the full SHA f652e54View commit details -
Configuration menu - View commit details
-
Copy full SHA for 19469b6 - Browse repository at this point
Copy the full SHA 19469b6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8dd3f01 - Browse repository at this point
Copy the full SHA 8dd3f01View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8605bce - Browse repository at this point
Copy the full SHA 8605bceView commit details -
Configuration menu - View commit details
-
Copy full SHA for 911b58e - Browse repository at this point
Copy the full SHA 911b58eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2efab6f - Browse repository at this point
Copy the full SHA 2efab6fView commit details -
Configuration menu - View commit details
-
Copy full SHA for edd8920 - Browse repository at this point
Copy the full SHA edd8920View commit details -
Configuration menu - View commit details
-
Copy full SHA for 01edeb7 - Browse repository at this point
Copy the full SHA 01edeb7View commit details -
refactor: set structs or their members to readonly
docs: update PEB_LDR_DATA64 inline docs
Configuration menu - View commit details
-
Copy full SHA for f128e47 - Browse repository at this point
Copy the full SHA f128e47View commit details -
Configuration menu - View commit details
-
Copy full SHA for 49b0e18 - Browse repository at this point
Copy the full SHA 49b0e18View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3eca414 - Browse repository at this point
Copy the full SHA 3eca414View commit details -
Configuration menu - View commit details
-
Copy full SHA for af39417 - Browse repository at this point
Copy the full SHA af39417View commit details -
Configuration menu - View commit details
-
Copy full SHA for a3057cc - Browse repository at this point
Copy the full SHA a3057ccView commit details -
fix: use non-generic LIST_ENTRY
LIST_ENTRY instances can form a list of objects of many different Types. Specifying a Type using LIST_ENTRY<T> is too restrictive.
Configuration menu - View commit details
-
Copy full SHA for cf09984 - Browse repository at this point
Copy the full SHA cf09984View commit details -
fix: prevent runtime TypeLoadException
Though it Roslyn didn't catch it, this appears to be CS0523: > Struct member 'ExampleType.ExampleMember' of type 'ExampleType' causes a cycle in the struct layout ExampleType cannot have a member of type ExampleType. Likewise, ExampleType<T> cannot have a member of type ExampleType<T>
Configuration menu - View commit details
-
Copy full SHA for 72c5d2d - Browse repository at this point
Copy the full SHA 72c5d2dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 53a3cde - Browse repository at this point
Copy the full SHA 53a3cdeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0a44710 - Browse repository at this point
Copy the full SHA 0a44710View commit details -
Configuration menu - View commit details
-
Copy full SHA for 70f8390 - Browse repository at this point
Copy the full SHA 70f8390View commit details -
Configuration menu - View commit details
-
Copy full SHA for 51b3682 - Browse repository at this point
Copy the full SHA 51b3682View commit details
Commits on Mar 28, 2023
-
Configuration menu - View commit details
-
Copy full SHA for dd2a087 - Browse repository at this point
Copy the full SHA dd2a087View commit details -
refactor: add GetSafeHandle() to system handle
refactor: change readonly fields to Get properties refactor: exclude system handle's GrantedAccess from Json code generation refactor: add GrantedAccessString for Json code generation docs: change some summaries to single line
Configuration menu - View commit details
-
Copy full SHA for 9ee76c8 - Browse repository at this point
Copy the full SHA 9ee76c8View commit details -
refactor: set HANDLE members to internal
Json code generation was assuming the type was public because the members were public.
Configuration menu - View commit details
-
Copy full SHA for 625e24c - Browse repository at this point
Copy the full SHA 625e24cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 894e679 - Browse repository at this point
Copy the full SHA 894e679View commit details -
Configuration menu - View commit details
-
Copy full SHA for 06e1882 - Browse repository at this point
Copy the full SHA 06e1882View commit details -
Configuration menu - View commit details
-
Copy full SHA for c83db4d - Browse repository at this point
Copy the full SHA c83db4dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 5bc848a - Browse repository at this point
Copy the full SHA 5bc848aView commit details -
Configuration menu - View commit details
-
Copy full SHA for ef4337e - Browse repository at this point
Copy the full SHA ef4337eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 15fdd44 - Browse repository at this point
Copy the full SHA 15fdd44View commit details -
Configuration menu - View commit details
-
Copy full SHA for abf91de - Browse repository at this point
Copy the full SHA abf91deView commit details -
refactor: base ObjectTypesInformationBuffer on SafeBuffer<T>
refactor: add GetTypesInfo() refactor: move ObjectTypes to ObjectTypesInformation buffer refactor: remove ReAllocate(); use SafeBuffer<T>.Reallocate() instead refactor: override Dispose to free buffer with Marshal.FreeHGlobal() refactor: remove remaining Ph functions
Configuration menu - View commit details
-
Copy full SHA for 34128bf - Browse repository at this point
Copy the full SHA 34128bfView commit details -
Configuration menu - View commit details
-
Copy full SHA for dcdee0b - Browse repository at this point
Copy the full SHA dcdee0bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 96016f1 - Browse repository at this point
Copy the full SHA 96016f1View commit details -
Configuration menu - View commit details
-
Copy full SHA for c4d3ece - Browse repository at this point
Copy the full SHA c4d3eceView commit details -
refactor: remove ObjectTypesInformationBuffer
It provides caching, but we would needs to match the ObjectTypeIndex to a type in the List. That was unreliable. It often spat out garbage due to platform differences and other causes I couldn't identify. SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX.GetHandleObjectType() is easier to implement.
Configuration menu - View commit details
-
Copy full SHA for 952f1ba - Browse repository at this point
Copy the full SHA 952f1baView commit details -
Configuration menu - View commit details
-
Copy full SHA for bca3936 - Browse repository at this point
Copy the full SHA bca3936View commit details -
Configuration menu - View commit details
-
Copy full SHA for 326cfaa - Browse repository at this point
Copy the full SHA 326cfaaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 247e2eb - Browse repository at this point
Copy the full SHA 247e2ebView commit details -
Configuration menu - View commit details
-
Copy full SHA for 238ce6b - Browse repository at this point
Copy the full SHA 238ce6bView commit details -
refactor: move IsFileHandle() to SafeHandleEx
refactor: change CloseSourceHandle to return bool
Configuration menu - View commit details
-
Copy full SHA for aa3a482 - Browse repository at this point
Copy the full SHA aa3a482View commit details -
refactor: add TryGetFullProcessImageName
fix: avoid Marshal.ReAllocHGlobal bug ReAllocHGlobal will sometimes encounter an error, but it discards the error and throws a deceptive OutOfMemoryException. See dotnet/runtime.git
Configuration menu - View commit details
-
Copy full SHA for feee78c - Browse repository at this point
Copy the full SHA feee78cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8e46b33 - Browse repository at this point
Copy the full SHA 8e46b33View commit details
Commits on Apr 9, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 8d24878 - Browse repository at this point
Copy the full SHA 8d24878View commit details -
refactor: add exception message
refactor: remove unused ToSafeFileHandle() chore: add Methods region
Configuration menu - View commit details
-
Copy full SHA for 6576402 - Browse repository at this point
Copy the full SHA 6576402View commit details -
refactor: rework SafeHandleEx constructor, properties
docs: add TODO: remove closed handles from list
Configuration menu - View commit details
-
Copy full SHA for 8b43267 - Browse repository at this point
Copy the full SHA 8b43267View commit details -
refactor: rework SafeFileHandleEx constructor, properties
chore: update a reference to SYSTEM_HANDLE_TABLE_ENTRY_EX
Configuration menu - View commit details
-
Copy full SHA for 5048cdd - Browse repository at this point
Copy the full SHA 5048cddView commit details -
refactor: rework TryGetFinalPath()
* throw exception if a process is protected i.e. inaccessible because it's a system process * don't throw exceptions * return tuple * use using statements for disposable objects
Configuration menu - View commit details
-
Copy full SHA for 8b3df17 - Browse repository at this point
Copy the full SHA 8b3df17View commit details -
Configuration menu - View commit details
-
Copy full SHA for 91655bc - Browse repository at this point
Copy the full SHA 91655bcView commit details -
refactor: remove redundant FreeHGlobal
We switched from a pointer to a 'using PWSTR'. The hidden Finally statement frees memory before the exiting the method.
Configuration menu - View commit details
-
Copy full SHA for 9cd45c6 - Browse repository at this point
Copy the full SHA 9cd45c6View commit details -
Configuration menu - View commit details
-
Copy full SHA for b110aea - Browse repository at this point
Copy the full SHA b110aeaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 28593c1 - Browse repository at this point
Copy the full SHA 28593c1View commit details -
refactor: remove old DEBUG preprocessor ops
refactor: remove redundant return statement
Configuration menu - View commit details
-
Copy full SHA for 64786cc - Browse repository at this point
Copy the full SHA 64786ccView commit details -
Configuration menu - View commit details
-
Copy full SHA for 48d4d12 - Browse repository at this point
Copy the full SHA 48d4d12View commit details -
Configuration menu - View commit details
-
Copy full SHA for a92efb1 - Browse repository at this point
Copy the full SHA a92efb1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 71ac75a - Browse repository at this point
Copy the full SHA 71ac75aView commit details -
refactor: remove redundant "is (not) default" checks
These were intended to instantiate the tuple property before checking its items, but the runtime runs the Get accessor whenever the property or its items are referenced.
Configuration menu - View commit details
-
Copy full SHA for b86b304 - Browse repository at this point
Copy the full SHA b86b304View commit details -
refactor: ensure all native GetProcessCommandLine exceptions are wrap…
…ped and have custom messages docs: update GetProcessCommandLine exception docs docs: update SafeHandleEx.ReleaseHandle() 'returns' docs
Configuration menu - View commit details
-
Copy full SHA for 05ac570 - Browse repository at this point
Copy the full SHA 05ac570View commit details -
chore: split, update FileLockerEx TODO
Implementing RefreshList() and removing closed/invalid handles are independent tasks.
Configuration menu - View commit details
-
Copy full SHA for 4a6cdf6 - Browse repository at this point
Copy the full SHA 4a6cdf6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 91860f6 - Browse repository at this point
Copy the full SHA 91860f6View commit details -
refactor: update HandlesFilter enum with IncludeProtectedProcesses
! This may need to be update again to differentiate between different levels of process protection. This new enum value is intended to include handles from processes with Light or Full process protection. This protection limits the information that can be acquired from a process e.g. command line, per-handle details, and more. Among these details is the Name of a handle (i.e. the full file path) and the Type of a handle's object, hence the inherent inclusion of IncludeFailedTypeQuery.
Configuration menu - View commit details
-
Copy full SHA for 5d50cc6 - Browse repository at this point
Copy the full SHA 5d50cc6View commit details -
refactor: remove unused variable 'exceptionData'
This was originally intended for returning a warning in addition to whatever value is returned by GetProcessCommandLine.
Configuration menu - View commit details
-
Copy full SHA for c07b8a1 - Browse repository at this point
Copy the full SHA c07b8a1View commit details -
Configuration menu - View commit details
-
Copy full SHA for cc81b4b - Browse repository at this point
Copy the full SHA cc81b4bView commit details -
Configuration menu - View commit details
-
Copy full SHA for d8870cd - Browse repository at this point
Copy the full SHA d8870cdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 62f6ca1 - Browse repository at this point
Copy the full SHA 62f6ca1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7bc0972 - Browse repository at this point
Copy the full SHA 7bc0972View commit details -
Configuration menu - View commit details
-
Copy full SHA for 06f05dd - Browse repository at this point
Copy the full SHA 06f05ddView commit details -
refactor: add SafeHandleEx.ProcessProtection property
The CommandLine cannot be queried from Full protection processes, but it *can* be queried from Light protection processes via the Win8.1+ code path. Because the <Win8.1 code paths require the PROCESS_VM_READ permission, the function may be denied access.
Configuration menu - View commit details
-
Copy full SHA for fdb3a77 - Browse repository at this point
Copy the full SHA fdb3a77View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0750c40 - Browse repository at this point
Copy the full SHA 0750c40View commit details -
refactor: check process protection for command line accessibility
refactor: add using static PS_PROTECTED_TYPE for simpler access
Configuration menu - View commit details
-
Copy full SHA for ea8e997 - Browse repository at this point
Copy the full SHA ea8e997View commit details -
Configuration menu - View commit details
-
Copy full SHA for a0dd6d6 - Browse repository at this point
Copy the full SHA a0dd6d6View commit details -
revert: remove try-catch from GetHandleObjectType
Partially reverts 894e679 "refactor: replace PhGetObjectTypeName with custom solution"
Configuration menu - View commit details
-
Copy full SHA for 7831d99 - Browse repository at this point
Copy the full SHA 7831d99View commit details -
refactor: wrap the entirety of TryGetFinalPath in try-catch
refactor: try getting file object's path/name without duplicating the handle; try duplicating if this fails refactor: throw InvalidOperationException for more TryGetFinalPath scenarios docs: update TryGetFinalPath exception docs, remarks
Configuration menu - View commit details
-
Copy full SHA for 1e5c1b0 - Browse repository at this point
Copy the full SHA 1e5c1b0View commit details -
Configuration menu - View commit details
-
Copy full SHA for a07d7b5 - Browse repository at this point
Copy the full SHA a07d7b5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 306e842 - Browse repository at this point
Copy the full SHA 306e842View commit details -
refactor: add SafeFileHandleEx.FileNameInfo
refactor: add query GetFileInformationByHandleEx, FILE_NAME_INFO refactor: rename TypeOfFileHandle to FileType refactor: inline GetIsFileHandle()
Configuration menu - View commit details
-
Copy full SHA for d4c3247 - Browse repository at this point
Copy the full SHA d4c3247View commit details -
Configuration menu - View commit details
-
Copy full SHA for c749fe3 - Browse repository at this point
Copy the full SHA c749fe3View commit details -
Configuration menu - View commit details
-
Copy full SHA for d6f3e2c - Browse repository at this point
Copy the full SHA d6f3e2cView commit details -
Configuration menu - View commit details
-
Copy full SHA for ea2fb9f - Browse repository at this point
Copy the full SHA ea2fb9fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 26c04bc - Browse repository at this point
Copy the full SHA 26c04bcView commit details -
refactor: inline TryGetFullProcessImageName
...but not GetFullProcessImageName. That would be a bit too cluttered for my preferences.
Configuration menu - View commit details
-
Copy full SHA for 21d6048 - Browse repository at this point
Copy the full SHA 21d6048View commit details -
Configuration menu - View commit details
-
Copy full SHA for 57d0b38 - Browse repository at this point
Copy the full SHA 57d0b38View commit details -
Configuration menu - View commit details
-
Copy full SHA for 931038e - Browse repository at this point
Copy the full SHA 931038eView commit details -
refactor: add SafeHandle.ObjectName property
This will *hopefully* be less problematic than obtaining a "file" handle's name or path. The possibility of redundancy is acceptable. FindLockingHandles will be updated in a later commit with the addition of ProcessInfo.
Configuration menu - View commit details
-
Copy full SHA for 1f84d0c - Browse repository at this point
Copy the full SHA 1f84d0cView commit details -
refactor: replace HandleObjectType's ProcessIsProtected refs with Pro…
…cessProtection refactor: add uncommitted using namespace docs: add TODO 'override IsInvalid'
Configuration menu - View commit details
-
Copy full SHA for 9b01fe9 - Browse repository at this point
Copy the full SHA 9b01fe9View commit details -
docs: add summaries for FileType
refactor: remove enum member unused by Windows
Configuration menu - View commit details
-
Copy full SHA for 02a2afc - Browse repository at this point
Copy the full SHA 02a2afcView commit details -
Configuration menu - View commit details
-
Copy full SHA for 09a4a4a - Browse repository at this point
Copy the full SHA 09a4a4aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8faaca9 - Browse repository at this point
Copy the full SHA 8faaca9View commit details -
A wrapper for System.Diagnostic.Process objects. Adds properties e.g. Handles lists. An inheriting class would be preferred, but casting to/from base classes and inheriting classes is prohibited
Configuration menu - View commit details
-
Copy full SHA for 419a38b - Browse repository at this point
Copy the full SHA 419a38bView commit details -
refactor: change FindLockingHandles return type to List<ProcessInfo>
docs: update FileLockerEx.Path summary I had fun with LINQ and async ops for a while.
Configuration menu - View commit details
-
Copy full SHA for c887584 - Browse repository at this point
Copy the full SHA c887584View commit details -
Configuration menu - View commit details
-
Copy full SHA for d8f6c6f - Browse repository at this point
Copy the full SHA d8f6c6fView commit details -
Configuration menu - View commit details
-
Copy full SHA for e44c523 - Browse repository at this point
Copy the full SHA e44c523View commit details -
fix: change string comparison operator
("File" is "File") == false, apparently Use == for strings.
Configuration menu - View commit details
-
Copy full SHA for a1ced27 - Browse repository at this point
Copy the full SHA a1ced27View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6d8ca88 - Browse repository at this point
Copy the full SHA 6d8ca88View commit details
Commits on Apr 10, 2023
-
refactor: add TryGetFinalPath stopwatch
refactor: remove unused variable from TryGetFinalPath
Configuration menu - View commit details
-
Copy full SHA for 2bc267b - Browse repository at this point
Copy the full SHA 2bc267bView commit details
Commits on Apr 11, 2023
-
feat: allow user to specify the how the handle list is sorted
* add FileLockerEx.SortByProperty enum * add FileLockerEx.SortByPrimary property * add FileLockerEx.SortBySecondary property Not all SortByProperty members have been fully implemented.
Configuration menu - View commit details
-
Copy full SHA for 05bf4f7 - Browse repository at this point
Copy the full SHA 05bf4f7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5dc8a17 - Browse repository at this point
Copy the full SHA 5dc8a17View commit details
Commits on Apr 17, 2023
-
feat: add class ProcessQueryHandle to store access rights with handle
refactor: remove per-ProcessInfo handle lists feat: add ProcessId property to access underlying Process Id
Configuration menu - View commit details
-
Copy full SHA for 2f461e0 - Browse repository at this point
Copy the full SHA 2f461e0View commit details
Commits on Apr 18, 2023
-
refactor: move process properties, methods to ProcessInfo
refactor: add method PS_PROTECTION.ToString() refactor: add static property NativeMethods.Processes
Configuration menu - View commit details
-
Copy full SHA for 717bf36 - Browse repository at this point
Copy the full SHA 717bf36View commit details
Commits on Apr 19, 2023
-
refactor: remove instanced process lists from FileLockerEx
refactor: make FindLockingHandles return List<SafeFileHandleEx> docs: add "TODO: contemplate fuzzy search benefits" refactor: change Console.WriteLine calls to Trace.Trace*() for better logging docs: add "TODO: ProcessList garbage cleanup" All ProcessInfo activity in FindLockingHandles() is now implicit. ProcessInfo data will be instantiated and added to NativeMethods.Processes when requested by a SafeHandleEx (or inheritor's) property. TODO: ProcessList garbage collection. Items are being added to NativeMethods' static Processes, but none are removed.
Configuration menu - View commit details
-
Copy full SHA for 3ee71ca - Browse repository at this point
Copy the full SHA 3ee71caView commit details
Commits on Apr 24, 2023
-
build: expose CsWin32 API publicly
Only a few things need to be public, but granular exposure is not an option...yet.
Configuration menu - View commit details
-
Copy full SHA for e7b2019 - Browse repository at this point
Copy the full SHA e7b2019View commit details -
fix: assign correct field offsets for PROCESS_BASIC_INFORMATION64
Some were set to default (0x00). Oops.
Configuration menu - View commit details
-
Copy full SHA for b186662 - Browse repository at this point
Copy the full SHA b186662View commit details
Commits on Apr 26, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 7df3ebc - Browse repository at this point
Copy the full SHA 7df3ebcView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4b05eeb - Browse repository at this point
Copy the full SHA 4b05eebView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2f1b50d - Browse repository at this point
Copy the full SHA 2f1b50dView commit details -
Configuration menu - View commit details
-
Copy full SHA for bcb5a94 - Browse repository at this point
Copy the full SHA bcb5a94View commit details -
refactor: make PROCESS_BASIC_INFORMATION public
refactor: rename InheritedFromUniqueProcessId to ParentProcessId refactor: try IsDebugModeEnabled check and EnterDebugMode call for higher handle access
Configuration menu - View commit details
-
Copy full SHA for 3b61f26 - Browse repository at this point
Copy the full SHA 3b61f26View commit details -
Configuration menu - View commit details
-
Copy full SHA for a600f8f - Browse repository at this point
Copy the full SHA a600f8fView commit details -
refactor: rename BeingDebugged_bool to IsBeingDebugged The purpose of the incomplete PEB_Ex is already fulfilled by ProcessEnvironmentBlock and ProcessInfo.
Configuration menu - View commit details
-
Copy full SHA for 8249163 - Browse repository at this point
Copy the full SHA 8249163View commit details -
refactor: add record struct ProcessAndHostOSArch
This provides a readonly Type definition of the ValueTuple (IMAGE_FILE_MACHINE, IMAGE_FILE_MACHINE)
Configuration menu - View commit details
-
Copy full SHA for a24601a - Browse repository at this point
Copy the full SHA a24601aView commit details -
perf: replace enum.HasFlag() with & operator
As it turns out, enum.HasFlag performs several Type and reference checks before it checks if the given object has the flag value.
Configuration menu - View commit details
-
Copy full SHA for e2bd6bb - Browse repository at this point
Copy the full SHA e2bd6bbView commit details -
refactor: add wrapper classes for 32-bit, 64-bit native definitions
Wrapped structs: - PROCESS_BASIC_INFORMATION - PROCESS_BASIC_INFORMATION32 - PROCESS_BASIC_INFORMATION64 - PEB32 - PEB64 - RTL_USER_PROCESS_PARAMETERS32 - RTL_USER_PROCESS_PARAMETERS64 TODO: PEB, PEB_LDR_DATA, RTL_USER_PROCESS_PARAMETERS
Configuration menu - View commit details
-
Copy full SHA for 67b48d1 - Browse repository at this point
Copy the full SHA 67b48d1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 28d3dc5 - Browse repository at this point
Copy the full SHA 28d3dc5View commit details -
refactor: remove alias of global::PInvoke.NTSTATUS
Most of its properties have been reimplemented in global::Windows.Win32.Foundation.NTSTATUS
Configuration menu - View commit details
-
Copy full SHA for 3ba04cc - Browse repository at this point
Copy the full SHA 3ba04ccView commit details -
fix: reference ProcessInfo.ProcessId instead of ProcessInfo.Process.Id
The Process property is null when the .NET runtime failed to create the instance because the process's exited and its data isn't cached in the runtime's internal process list.
Configuration menu - View commit details
-
Copy full SHA for 436427e - Browse repository at this point
Copy the full SHA 436427eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 12e7bdb - Browse repository at this point
Copy the full SHA 12e7bdbView commit details -
refactor: pass Is32BitEmulateProcess to GetProcessCommandLine
refactor: alias System.Environment refactor: make TryGetProcessCommandLine instanced refactor: change references from processId to ProcessId
Configuration menu - View commit details
-
Copy full SHA for 29d8a20 - Browse repository at this point
Copy the full SHA 29d8a20View commit details -
Configuration menu - View commit details
-
Copy full SHA for acb957b - Browse repository at this point
Copy the full SHA acb957bView commit details -
Configuration menu - View commit details
-
Copy full SHA for b142b96 - Browse repository at this point
Copy the full SHA b142b96View commit details -
Configuration menu - View commit details
-
Copy full SHA for 696e434 - Browse repository at this point
Copy the full SHA 696e434View commit details -
Configuration menu - View commit details
-
Copy full SHA for 89aa84f - Browse repository at this point
Copy the full SHA 89aa84fView commit details -
refactor: add ParentId to SafeFileHandleEx.ToString()
refactor: use null-coalescing expression for ProcessProtection.ToString()
Configuration menu - View commit details
-
Copy full SHA for e7ce7d6 - Browse repository at this point
Copy the full SHA e7ce7d6View commit details -
fix: SortByProperty.HandleType sorts by HandleObjectType
refactor: add SortByProperty.HandleSubType for FileHandleType
Configuration menu - View commit details
-
Copy full SHA for dfeb9e9 - Browse repository at this point
Copy the full SHA dfeb9e9View commit details -
refactor: rename ObjectProperName to ObjectRealName
docs: add summary for SafeFileHandleEx.FileHandleType
Configuration menu - View commit details
-
Copy full SHA for ac118fc - Browse repository at this point
Copy the full SHA ac118fcView commit details
Commits on Apr 28, 2023
-
feat: add property safeFileHandleEx.IsFilePathRemote
refactor: make FileHandleType, FileNameInfo check ProcessProtection In System Informer, data gathered by GetFileType and GetFileInformationByHandleEx is not accessible when the handle's owner (i.e. a process) has Light or full-level protection. If these queries work despite protection, it may be a security oversight.
Configuration menu - View commit details
-
Copy full SHA for 8c740cd - Browse repository at this point
Copy the full SHA 8c740cdView commit details -
Configuration menu - View commit details
-
Copy full SHA for df1c8e0 - Browse repository at this point
Copy the full SHA df1c8e0View commit details -
Configuration menu - View commit details
-
Copy full SHA for bbac7d1 - Browse repository at this point
Copy the full SHA bbac7d1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 30bf1ad - Browse repository at this point
Copy the full SHA 30bf1adView commit details -
refactor: change ProcessCommandLine to call GetPropertiesViaProcessHa…
…ndle instead of TryGetProcessCommandLine
Configuration menu - View commit details
-
Copy full SHA for 28b6631 - Browse repository at this point
Copy the full SHA 28b6631View commit details
Commits on May 2, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 9e5cf56 - Browse repository at this point
Copy the full SHA 9e5cf56View commit details -
refactor: make ProcessProtection compare field to (null, null) instea…
…d of default It's a small difference that *should* skip some type comparisons.
Configuration menu - View commit details
-
Copy full SHA for f600e61 - Browse repository at this point
Copy the full SHA f600e61View commit details -
fix: allow casting List<ProcessInfo> to/from ProcessList
refactor: change ProcessList from List<T> to IList<T> with List<T> backing field .NET Runtime prohibits casting an object from a base class to an inheriting class. I can come up with more reasons why it should be *allowed* than *disallowed*.
Configuration menu - View commit details
-
Copy full SHA for 9045fa2 - Browse repository at this point
Copy the full SHA 9045fa2View commit details -
Configuration menu - View commit details
-
Copy full SHA for cc5c5a1 - Browse repository at this point
Copy the full SHA cc5c5a1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 61d8c30 - Browse repository at this point
Copy the full SHA 61d8c30View commit details -
refactor: inline TryGetFinalPath
refactor: remove tasks from FileFullPath
Configuration menu - View commit details
-
Copy full SHA for b4f8987 - Browse repository at this point
Copy the full SHA b4f8987View commit details -
Configuration menu - View commit details
-
Copy full SHA for 29e198d - Browse repository at this point
Copy the full SHA 29e198dView commit details -
Configuration menu - View commit details
-
Copy full SHA for acd9b15 - Browse repository at this point
Copy the full SHA acd9b15View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7d5a7b8 - Browse repository at this point
Copy the full SHA 7d5a7b8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 82ae66d - Browse repository at this point
Copy the full SHA 82ae66dView commit details -
Configuration menu - View commit details
-
Copy full SHA for edbaae2 - Browse repository at this point
Copy the full SHA edbaae2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2267f20 - Browse repository at this point
Copy the full SHA 2267f20View commit details -
refactor: allow calling SafeFileHandleEx.ToString without initializin…
…g properties' fields refactor: add SafeHandleEx.IsInvalid
Configuration menu - View commit details
-
Copy full SHA for ea518ac - Browse repository at this point
Copy the full SHA ea518acView commit details -
Configuration menu - View commit details
-
Copy full SHA for fbe991c - Browse repository at this point
Copy the full SHA fbe991cView commit details -
refactor: add constants for FileFullPath strings
refactor: improve FileFullPath error handling refactor: replace NewLine with return-new constant
Configuration menu - View commit details
-
Copy full SHA for 66104ff - Browse repository at this point
Copy the full SHA 66104ffView commit details -
refactor: do not normalize FileFullPath when IsFilePathRemote
> The Server Message Block (SMB) Protocol does not support queries for normalized paths. Consequently, when you call this function passing the handle of a file opened using SMB, and with the FILE_NAME_NORMALIZED flag, the function splits the path into its components and tries to query for the normalized name of each of those components in turn. If the user lacks access permission to any one of those components, then the function call fails with ERROR_ACCESS_DENIED.
Configuration menu - View commit details
-
Copy full SHA for ee46bfb - Browse repository at this point
Copy the full SHA ee46bfbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3431542 - Browse repository at this point
Copy the full SHA 3431542View commit details -
refactor: make get_ProcessHandle assign values to canGetQueryLimitedI…
…nfoHandle, canGetReadMemoryHandle
Configuration menu - View commit details
-
Copy full SHA for d0cadd7 - Browse repository at this point
Copy the full SHA d0cadd7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8102108 - Browse repository at this point
Copy the full SHA 8102108View commit details -
refactor: use SafeBuffer<T> instead of PWSTR
PWSTR doesn't have a Reallocate method (which would dispose the old buffer). I *could* write it.
Configuration menu - View commit details
-
Copy full SHA for d037aac - Browse repository at this point
Copy the full SHA d037aacView commit details -
Configuration menu - View commit details
-
Copy full SHA for a1f886f - Browse repository at this point
Copy the full SHA a1f886fView commit details -
refactor: compare fields to const values instead of default
refactor: ensure all properties' code paths assign values to their uninitialized fields
Configuration menu - View commit details
-
Copy full SHA for b1ca0d9 - Browse repository at this point
Copy the full SHA b1ca0d9View commit details
Commits on May 3, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 5dd5b91 - Browse repository at this point
Copy the full SHA 5dd5b91View commit details
Commits on May 4, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 5273f06 - Browse repository at this point
Copy the full SHA 5273f06View commit details
Commits on May 5, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 1c54e02 - Browse repository at this point
Copy the full SHA 1c54e02View commit details -
Configuration menu - View commit details
-
Copy full SHA for 771e379 - Browse repository at this point
Copy the full SHA 771e379View commit details -
Configuration menu - View commit details
-
Copy full SHA for f003c8b - Browse repository at this point
Copy the full SHA f003c8bView commit details -
fix: assign, return type when GetFileType succeeds
refactor: simplify FileHandleType code branching refactor: add errFailedMsg, errUnableMsg refactor: rename unableErrMsg, unableErr, errFailMsg refactor: prepend Win32Exception message with errFailedMsg
Configuration menu - View commit details
-
Copy full SHA for 0e6c43b - Browse repository at this point
Copy the full SHA 0e6c43bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 0f298a9 - Browse repository at this point
Copy the full SHA 0f298a9View commit details -
feat: add HandleAttributes property
feat: implement sorting by HandleAttributes, ObjectRealName (FileFullPath, FileNameInfo) docs: add notes regarding FileShareAccess requirements refactor: remove redundancy "SortByProperty.HandleName" FileShareAccess can't be queried without a kernel mode driver.
Configuration menu - View commit details
-
Copy full SHA for 756d0b7 - Browse repository at this point
Copy the full SHA 756d0b7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 95d9eb0 - Browse repository at this point
Copy the full SHA 95d9eb0View commit details
Commits on May 6, 2023
-
refactor: also check FileNameInfo for FileName processing
refactor: return exception to FileName when a path's file/directory name cannot be obtained
Configuration menu - View commit details
-
Copy full SHA for beeb6b9 - Browse repository at this point
Copy the full SHA beeb6b9View commit details -
Configuration menu - View commit details
-
Copy full SHA for a056ce3 - Browse repository at this point
Copy the full SHA a056ce3View commit details -
feat: add ProcessId property to system handle ex struct; converts fro…
…m UniqueProcessId refactor: make HandleValue display as both hexadecimal and decimal in debugger
Configuration menu - View commit details
-
Copy full SHA for 57dc820 - Browse repository at this point
Copy the full SHA 57dc820View commit details -
feat: finish SortByProperty implementation
refactor: comment out SortByProperty.FileShareAccess docs: update SortByProperty.ObjectRealName summary to reflect implementation docs: update SortByProperty.FileShareAccess comment to reflect requirements docs: remove SortByProperty TODO
Configuration menu - View commit details
-
Copy full SHA for 28b576d - Browse repository at this point
Copy the full SHA 28b576dView commit details
Commits on May 7, 2023
-
feat: finish implementing new IsClosed property
It is now used to discard a closed or invalid handle during the keep() function and SafeHandleEx ctors
Configuration menu - View commit details
-
Copy full SHA for e38511c - Browse repository at this point
Copy the full SHA e38511cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4dd2396 - Browse repository at this point
Copy the full SHA 4dd2396View commit details -
feat: add CloseSourceHandle(bool) overload
The parameterless overload now calls CloseSourceHandle(false) to increase perceived safety at the cost of reliability. When parameter removeCloseProtection is true, the method will attempt to remove the HANDLE_FLAG_PROTECT_FROM_CLOSE attribute from the handle before attempting to close it.
Configuration menu - View commit details
-
Copy full SHA for 4251f05 - Browse repository at this point
Copy the full SHA 4251f05View commit details -
docs: add readonly HandleAttributes remarks
refactor: use coalesce expression
Configuration menu - View commit details
-
Copy full SHA for f5e5c72 - Browse repository at this point
Copy the full SHA f5e5c72View commit details -
fix: convert properties to strings for sorting instead of to byte arrays
This *should* prevent an InvalidOperationException thrown by `System.Collection.Generic.ArraySortHelper<T>.Sort(Span<T> keys, Comparison<T> comparison)`. Its inner exception, an ArgumentException "At least one object must implement IComparable", is thrown by System.Collection.Comparer.Compare(Object a, Object b).
Configuration menu - View commit details
-
Copy full SHA for 4312a64 - Browse repository at this point
Copy the full SHA 4312a64View commit details -
fix: do not initialize properties by default when evaluating SafeFile…
…HandleEx.ToString() This issue was causing the debugger to unpause threads or sometimes crash the debuggee process.
Configuration menu - View commit details
-
Copy full SHA for 72fe0a3 - Browse repository at this point
Copy the full SHA 72fe0a3View commit details -
Configuration menu - View commit details
-
Copy full SHA for bfb841b - Browse repository at this point
Copy the full SHA bfb841bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7ad0787 - Browse repository at this point
Copy the full SHA 7ad0787View commit details
Commits on May 8, 2023
-
fix: if buffer too small and returnLength is less than buffer length,…
… double buffer length instead of assigning returnLength
Configuration menu - View commit details
-
Copy full SHA for 1ddff98 - Browse repository at this point
Copy the full SHA 1ddff98View commit details -
refactor: use 'is' when comparing to constants
style: remove unnecessary parentheses
Configuration menu - View commit details
-
Copy full SHA for b4819c2 - Browse repository at this point
Copy the full SHA b4819c2View commit details -
Configuration menu - View commit details
-
Copy full SHA for bfbd325 - Browse repository at this point
Copy the full SHA bfbd325View commit details -
Configuration menu - View commit details
-
Copy full SHA for 36eceb1 - Browse repository at this point
Copy the full SHA 36eceb1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1cdea26 - Browse repository at this point
Copy the full SHA 1cdea26View commit details -
Configuration menu - View commit details
-
Copy full SHA for cbbc524 - Browse repository at this point
Copy the full SHA cbbc524View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7b052c5 - Browse repository at this point
Copy the full SHA 7b052c5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0087880 - Browse repository at this point
Copy the full SHA 0087880View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3766142 - Browse repository at this point
Copy the full SHA 3766142View commit details -
fix: remove trailing null characters from ProcessMainModulePath
refactor: remove unnecessary array buffer
Configuration menu - View commit details
-
Copy full SHA for 500c7ec - Browse repository at this point
Copy the full SHA 500c7ecView commit details -
fix: correctly init, read FileNameInfo buffer
Wrong buffer size. Wrong offsets. Redundant operations.
Configuration menu - View commit details
-
Copy full SHA for 76a9c29 - Browse repository at this point
Copy the full SHA 76a9c29View commit details -
Configuration menu - View commit details
-
Copy full SHA for abae5f7 - Browse repository at this point
Copy the full SHA abae5f7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 491df6c - Browse repository at this point
Copy the full SHA 491df6cView commit details
Commits on May 11, 2023
-
feat: add handle-returning DuplicateHandle overload
refactor: throw exception when OpenProcess_SafeHandle fails refactor: use global::PInvoke.Win32Exception instead of built-in type refactor: remove unnecessary usings I'm sorry I didn't commit every thing separately. TODO: Dup handles if not owned by current process
Configuration menu - View commit details
-
Copy full SHA for d32b6c8 - Browse repository at this point
Copy the full SHA d32b6c8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 007e96e - Browse repository at this point
Copy the full SHA 007e96eView commit details -
refactor: add overload SysHandleEx.GetHandleInfo(SafeProcessHandle)
Still unused, but may be useful at a later date.
Configuration menu - View commit details
-
Copy full SHA for 7c6ead9 - Browse repository at this point
Copy the full SHA 7c6ead9View commit details -
feat: add property DuplicateHandle
refactor: split IsClosed to BREAK: IsClosed is now a tuple This is the noun usage and pronunciation of "duplicate".
Configuration menu - View commit details
-
Copy full SHA for 672cf78 - Browse repository at this point
Copy the full SHA 672cf78View commit details
Commits on May 12, 2023
-
refactor: rename ProcessQueryHandle to SafeProcessHandleEx
refactor: open one temporary process handle per requested access right to determine which ones can be acquired refactor: try opening process handle with PROCESS_DUP_HANDLE to duplicate other process's owned handles
Configuration menu - View commit details
-
Copy full SHA for b32aa35 - Browse repository at this point
Copy the full SHA b32aa35View commit details -
Configuration menu - View commit details
-
Copy full SHA for a5c665e - Browse repository at this point
Copy the full SHA a5c665eView commit details -
refactor: replace ProcessHandle's consecutive try-catch statements wi…
…th Parallel.ForEach docs: document ProcessInfo.ProcessHandle summary, value
Configuration menu - View commit details
-
Copy full SHA for b158c42 - Browse repository at this point
Copy the full SHA b158c42View commit details
Commits on May 16, 2023
-
fix: duplicate source handle when not owned by current process
refactor: remove redundant 'duplicate handle' block refactor: finish refactoring IsClosed references When the handle is owned by the current process, DuplicateHandle is a duplicate the the kernel-provided handle-the same as when the handle is owned by a different process. DuplicateHandle will NEVER have DUPLICATE_SOURCE_CLOSE.
Configuration menu - View commit details
-
Copy full SHA for 886dbb8 - Browse repository at this point
Copy the full SHA 886dbb8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0375677 - Browse repository at this point
Copy the full SHA 0375677View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0ec0c11 - Browse repository at this point
Copy the full SHA 0ec0c11View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0349dd0 - Browse repository at this point
Copy the full SHA 0349dd0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 192d36d - Browse repository at this point
Copy the full SHA 192d36dView commit details