Add KDU_EPROCESS_OFFSETS and KDUGetEprocessOffsets to centralize EPROCESS offsets (PsProtection and mitigation flags) and refactor ps.* logic to use the new API. Add provider callback verification before performing PS patches. Fix multiple bugs: correct instruction validation logic in dsefix, use explicit size cast in zemana, handle NULL SD case and avoid double-free in ipcsvc, add dbghelp existence check before LoadLibrary in sym, rename TEXT_SECTION_LEGNTH->TEXT_SECTION_LENGTH and use it in victim, and add retry limit for IPC connect. Update many embedded driver/resource binaries accordingly.
Fix memory leaks by adding missing supHeapFree calls and improve error handling in victim.cpp and shellcode.cpp. Update project toolset to v143 in GenAsIo2Unlock.vcxproj and adjust debugger arguments. Minor bug fixes and code cleanups in process mitigation, string formatting, and command-line argument parsing.
Simplified string conversion functions for protection types and signers using arrays. Added KDUGetProtectionOffset to centralize PS_PROTECTION offset selection. Refactored mitigation flags offset selection and unified EPROCESS offset macros. Improved resource cleanup and error handling in process creation and protection routines. Updated offsets and macro definitions in ps.h for clarity and maintainability.
Added: Huawei, Realtek and MSI additional providers;
New: Providers moved into separate dll;
Added: dummy dll for several EneTech drivers;
Added: 2 new selectable shellcode variants;
Internal rearrange;
README update;
(release candidate 1, more changes may follow)