1
0
mirror of https://github.com/UzixLS/KernelEx.git synced 2025-07-18 15:01:17 +03:00
Files
KernelEx/CHANGELOG.txt
2018-11-03 16:24:01 +03:00

356 lines
20 KiB
Plaintext
Executable File

KernelEx v4.5.2 by Xeno86
2011-11-14
removed obsolete SETUPKEX project
moved downgrade detection and detection of pre-4.0 KernelEx from SETUPKEX to the installer
installer: show information about pending reboot before displaying the main window
AppSettings: updated configuration for Firefox 4+ installers
VKrnlEx: added IFSMgr fix, repairing the problem in accessing a locked file through file mapping object
added "VKrnlEx" project which superseeds "SetupKex" project, VKrnlEx makes modification of kernel32.dll file on disk unnecessary by patching the image directly in memory from kernel space before the shell starts
implemented KERNEL32.UnlockFileEx (required for Firefox 7)
fix circular-reference problem in apihook initialization
added SHELL32.IsUserAnAdmin ordinal export - some apps shouldn't complain about not having admin privileges anymore
core: api configuration dump had improper ordinal numbers listed
core: fixed crash if invalid handle was passed to kexGetProcAddress (fixes mysterious crash if UNICOWS.DLL could not be loaded)
apihook/apilog: fixed bug in parameter logging, leading to crashes if resulting string exceeded buffer length
AppSettings: Canon printing manager didn't appear to like working under NT mode
---------------------------------------
KernelEx v4.5.1 by Xeno86
2011-05-06
added kernel32.SetThreadUILanguage stub
replaced some MSLU regkey APIs with custom implementation: advapi32.RegCreateKeyW, RegCreateKeyExW, RegDeleteKeyW, RegOpenKeyW, RegOpenKeyExW, RegSetValueExW
replaced kernel32.GetLocaleInfoW (MSLU, error handling LOCALE_RETURN_NUMBER) with custom implementation (fixes Opera 11 download numbers)
added advapi32.RegGetKeySecurity - allows Opera 11 uninstall to proceed further
added redirection for 'All Users\Desktop' for SHGet*Follder* functions (allows Opera 11 installer to complete)
fixed buffer length argument for wctomb in STACK_WtoA macro, added parentheses around macroes
fixed advapi32.RegSetValueExA to allow null lpData pointer (allows Opera 11 setup to proceed further)
added advapi32.GetNamedSecurityInfo (allows Opera 11 setup to proceed further)
added GDI32.MaskBlt - fixes missing checkboxes in GTK apps - Pidgin and GIMP
added api logging DLL + debug window for KernelEx API Hook infrastructure
replaced old api logging with KernelEx API Hook infrastructure
sdb: fixed google earth transform to work on non-english systems, added new product codes
added missing configs for google earth exes
---------------------------------------
KernelEx v4.5 Final by Xeno86
2010-12-30
setup: Start Menu shortcuts, included Release Notes.txt
verifier: new welcome screen
core/setup: make KernelEx compatible with kernel32.dll updates:
- uninstalling KernelEx won't revert kernel32 updates anymore;
- KernelEx doesn't need to be reinstalled anymore if kernel32 is updated
- kernel32 backup is now stored in sysbckup directory
core: don't load api libraries if resolver failed to initialize
SystemParametersInfo: fix SPI_GETCARETWIDTH erroneous zero caret width return
kernel32.TlsFree(ext) fixes:
- fixed a possible deadlock situation which could lead to system hang
- return error if TLS index has already been freed
- return 1 for success consistently for better compatibility
comdlg32 GetOpen[Save]FileName: avoid HeapFree(null), changes last-error
MSI shim database integration
MSI shim database: transforms for office 2003; office 2007 converters; google earth 5.1,5.2,6.0b; acrobat reader 7
settings: force Windows Installer into default configuration
gdi32/textout: don't hold Win16Lock while calling GDI apis
added Shim database create utility SDBcreate for MSI installer files patching
settings: set GTAPI.DLL in Win2000 mode (Google Earth setup)
implemented cryptui.CryptUIDlgViewContext (Google Earth 5.2)
implemented kernel32.FindFirstFileExA/W (Opera)
user32: per-thread keyboard state is now updated for left/right modifier keys (Qt 4.6+ hotkeys)
user32: MapVirtualKey now maps left/right modifier key codes to AT keyboard scan codes.
gdi32 unicode APIs: wrong conversion macros were used;
gdi32: rewritten EnumFont*W APIs, FONTSIGNATURE is now passed to callback function; populated in registry cache (affects Qt 4.6+)
DC objects are revalidated after text API calls
replace MSLU's shell32.DragQueryFileW with custom implementation (fixes Foxit Reader 3.1 drag&drop crash)
minor GDI text api fixes
---------------------------------------
KernelEx v4.5 RC 5 by Xeno86
2010-11-02
font UID is used instead of handle to identify fonts in cache (UIDs are unique, handles may be reused),
rewritten code to fix GDI objects leaking (improved stability, more leaks covered)
RPC code is extended to support proxies with Win2k+ extensions (for MS Office 2007 converters)
implemented OLE32.CoWaitForMultipleHandles with Wine code (for MS Office 2007 converters)
use proper locking when accessing DC object in TextOut functions (improved stability)
make GetTextExtentPoint32 threat negative string lengths as error (as NT does, fixes random Foxit Reader crashes during scrolling)
make QueryInterface(CLSID_ShellLink,IID_IUnknown) prepare IShellLinkA interface for use (fixes "Easy Assembler Shell" installer)
renamed "Compatibility" tab to "KernelEx" tab
fix for USER32.LoadMenuA loading menus from LOAD_LIBRARY_AS_DATAFILE mmaped DLLs
replaced MSLU USER32.LoadMenuIndirectW with direct call
replaced buggy MSLU menu functions not checking flags with custom implementation: USER32.LoadMenuW, InsertMenuW, AppendMenuW, ChangeMenuW, ModifyMenuW
fixed Akelpad incorrect national input + Office 2003 one-char-in-dialog-title ThUniLay bug
fixed SetWindowTextW behaviour
modified SHGetSpecialFolderPath fix for compatibility with win95 shell32
added SHELL32.SHCreateDirectoryEx missing on Windows 98
added KERNEL32.MapViewOfFile workaround for Word 2003
added ADVAPI32 Lsa and DecryptFile/EncryptFile stubs (for Word 2003)
added KERNEL32.SetDllDirectory stubs (for newer mpc-hc)
Unicode applications receive Tahoma shell font (fixes Qt GUI problems)
added protection against ExitProcess in DLL_PROCESS_DETACH which causes a crash on 9x
set calling thread priority to the lowest possible in order to improve chance for thread which calls ExitProcess to finish latest and call dll process detach like NT (fixes OpenOffice.org shutdown crash)
added a protection against SHFOLDER unloading by hostile programs (fixes VLC 1.1.4 DVD playback crash)
terminate process if EnterCriticalSection is called on orphaned CS in DLL_PROCESS_DETACH - Vista behaviour (fixes OpenOffice.org shutdown crash)
modified raw input stubs to return proper error codes and properly reset pointers
replaced GetOpenFileNameW/GetSaveFileNameW MSLU wrapper with custom implementation
fix: GetFileVersionInfoSizeW didn't return proper value on failure
---------------------------------------
KernelEx v4.5 RC 4 by Xeno86
2010-09-21
added kernel32.EncodePointer, DecodePointer, EncodeSystemPointer, DecodeSystemPointer
SystemParametersInfo/SPI_GETHIGHCONTRAST call doesn't fail now when accessability pack is not installed or wrong uiParam parameter is passed (fixes Firefox 3.6.9/3.6.10)
force usage of KernelEx's 'Known DLLs' when full system path is passed to LoadLibrary call
fixed iGetProcAddress/kexGetProcAddress not taking into account relocation - fixes crashes revealed by RC 3
---------------------------------------
KernelEx v4.5 RC 3 by Xeno86
2010-09-10
added fix to prevent DLL circular-references
---------------------------------------
KernelEx v4.5 RC 2 by Xeno86
2010-09-08
ported SysLink COMCTL32 class (from Wine project, fixes Google Picasa options dialog)
added kernel32.SystemTimeToTzSpecificLocalTime, TzSpecificLocalTimeToSystemTime (from Wine project, for Google Picasa 3.8)
implemented shell32.SHBindToParent (needed by Maxthon 1.6.7) [Tihiy]
fixed TlsExt pointer not zeroed after freeing
added WS2_32.getaddrinfo, freeaddrinfo, getnameinfo implementation based on wspiapi.h
added WINMM.waveInGetDevCapsW, waveOutGetDevCapsW (makes Flash Player 10.1 volume control work)
added USER32.SetParent fix to forbid deadly circular references (fixes VLC 1.1.2 crash) [ported from RP9]
fixed handling of lpOverlapped parameter in kernel32.PostQueuedCompletionStatus
restricted completion ports to NT only
added kernel32.GetProcessId, CreateFiberEx
replaced kernel32.ReadConsoleInputW from MSLU with custom implementation due to bugs in the former [Tihiy]
---------------------------------------
KernelEx v4.5 RC 1 by Xeno86
2010-07-30
implemented kernel32.RtlCaptureContext for Firefox 4.0 Beta 2
reworked compatibility tab to allow resetting compatibility settings to default values
compatibility tab is visible on all PE modules thus allowing to change compatibility options on per-module basis
disallow resources with high ID (>32767) when KernelEx is disabled
perform platform check when KernelEx is disabled
added kernel32.GetComputerNameEx stubs which supposedly make Artweaver run
simulate TrueType MS Sans Serif for VLC
use ASCII table instead of ISO8859-1 for character conversion (fixes problem with national characters in paths)
added ADVAPI32.FileEncryptionStatus stubs
added get-post I/O completion ports functionality for Firefox 3.6.4
added a bunch of new user32 stubs allowing to run newer MPC-HC, includes: DefRawInputProc, GetRawInputBuffer, GetRawInputData, GetRawInputDeviceList, GetRawInputDeviceInfoA, GetRawInputDeviceInfoW, GetRegisteredRawInputDevices, RegisterRawInputDevices, PrintWindow
more accurate object owner check in DeleteObject
fixed missing ScriptCache unlock in case of error
fixed crash on displaying of error message in KernelEx Setup program
added a simple protection against footer corruption in jemalloc heap
excluded jemalloc from handling limited size heaps
added "Disable custom heap" configuration
added "Default mode" configuration
fixed GTA:SA crash on game load
fixed Rally Championship '99 crash
removed shell32.SHGetDiskFreeSpaceW as there is no such function in WIN32 api
implemented missing SHELL32.SHGetDiskFreeSpaceEx on Windows 98
implemented SHELL32.SHGetDiskFreeSpaceW for Adobe Flash 10
removed positive PIDs patch as it causes incompatibility with MSYS and propably other apps too
---------------------------------------
KernelEx v4.5 Beta 2 by Xeno86
2010-02-14
fixed incompatibility with Japanese WinME
implemented USP font cache
fix: kexFlushAppSettings didn't clear wildcard app settings
fix: EnumFontFamiliesEx should only fill TEXTMETRIC structure if font is not TrueType
FONTSIGNATURE sub-structure doesn't seem to contain valid information, accessing it could trigger a crash
changed AddFontMemResourceEx and RemoveFontMemResourceEx stubs for Opera 10.50 beta compatibility
implemented shell32.SHParseDisplayName [xp and above]
implemented winspool.EnumPrintersW
added advapi32.CreateProcessWithLogonW, InitiateSystemShutdownEx stubs
replaced thread-pool implementation with custom code
added timer-queue functions
updated jemalloc to version from FF3.6
added checks to alloc/realloc/free to make jemalloc more fault tolerant - better match Windows 9x behaviour
kexCOM: LoadLibrary(self) trick to prevent premature unload in buggy programs
---------------------------------------
KernelEx v4.5 Beta 1 by Xeno86
2010-01-18
disable named/rcdata resource types mirroring
changed obfuscator for non-negative PIDs
fix crash when a process is created with '.exe' renamed to '.dll'
added GDI anti-leaking code which forces NT destroying rules on font and bitmap objects.
implemented extended TLS (Thread Local Storage), extends limit of 80 to ~1100 slots
added Thunking Unicode Layer - set of user32 APIs
which provides consistent Unicode window procedures conversion,
allowing correct message conversion and mixture of window subclassing with NT-like rules.
revamped non-shared api library loading process
added jemalloc memory allocator, replacing standard Windows heap for applications
fix: LoadShfolderProc could crash if shfolder.dll was unloaded by the application
added USERENV library from Wine project
changed module configuration settings storage - single module can now have different configurations under different processes (better accuracy, overriding is supported, recursive inheritance is supported, speed gains)
change: Allow api library to be loaded even if some overridden modules aren't found (skips module tables)
shell folder fix - display CSIDL_COMMON_* folders in start menu
added support for environment variables in AppSettings database
added kexCOM - implementing IShellLinkW and IExtractIconW interfaces for CLSID_ShellLink which are missing from Windows 98 shell
Compatibility tab changes:
* redesigned, added baloon tips
* added option to disable configuration inheritance to child processes
* added option to override module configuration with process'es configuration (debug only)
* fixed COM implementation
changes into the installer:
* enforce reboot after install/uninstall before subsequent installation,
* copy kernel32.bak to temporary file during uninstall before reboot
* forbid direct downgrades
API changes:
fix GlobalLock and GlobalUnlock to work properly with HeapAlloc pointers
make CreateFile ignore unsupported FILE_SHARE_DELETE flag
make GetDiskFreeSpace, GetDiskFreeSpaceEx not fail on certain file paths
implemented USERENV.GetUserProfileDirectory, GetAllUsersProfileDirectory, GetProfilesDirectory
added various winspool unicode (unicows) apis and stubs
added EnumServicesStatusEx stubs
fix CreateDIBSection to behave consistently with NT
fix GetTempFileName to behave consistently with NT
make ExtCreatePen not fail on PS_USERSTYLE pen style
replaced MSLU GetObjectW (bug: MSLU always returns full object size regardless of buffer size passed) with custom implementation
replaced MSLU RegEnumValueW with custom implementation
added support for REG_EXPAND_SZ and REG_MULTI_SZ in RegQueryValueExW
fixed RegQueryValueExW not handling return values properly
fix: win9x doesn't allow MB_ERR_INVALID_CHARS parameter to be set for UTF-7 or UTF-8 codepages in MultiByteToWideChar and WideCharToMultiByte calls
fix: RegisterWaitForSingleObject should test object state once and return immediatelly when dwMiliseconds is zero
implemented GDI32.GetCharABCWidthsI, ADVAPI32.RtlGenRandom, KERNEL32.GetModuleHandleEx
fixed uxtheme return addresses
implemented theme metric functions
fix WTSGetActiveConsoleSessionId should return 0 = local session instead 0xffffffff = no session
implemented kernel32.DelayLoadFailureHook, QueueUserWorkItem, RegisterWaitForSingleObject, RegisterWaitForSingleObjectEx, UnregisterWait, UnregisterWaitEx, IsWow64Process, ProcessIdToSessionId, WTSGetActiveConsoleSessionId, IsWow64Process
removed shlwapi.StrCmpLogicalW (which is available with IE6-updated shlwapi)
implemented advapi32.DeleteAce
added stubs for advapi32.NotifyBootConfigStatus, QueryWindows31FilesMigration, SynchronizeWindows31FilesAndWindowsNTRegistry
changed advapi32.CreateWellKnownSid
change: logfont* is optional in gdi32.EnumFontFamiliesEx on NT but not on 9x
added stubs for kernel32.HeapSetInformation, GetProcessIoCounters, RtlCaptureStackBackTrace
support events signalling in ReadFile & WriteFile overlapped apis
fixed system bug in user32.GetNextDlgTabItem - system crashes trying to get next control in dialog to tab when there is only one control on dialog
fixed GetDefaultPrinterW
replaced SHGetFolderLocation Wine implementation with custom implementation
fix: custom SHGetFolderLocation shouldn't be enabled for shell32 >= 5.0
---------------------------------------
KernelEx v4.0 Final 2 by Xeno86
2009-08-20
fixed handling of forwarded exports broken in revision 32
fixed very rare crash which could occur at boot when module table pointer becomes invalid
added algorithm similar to KnownDLLs for auxiliary libraries to be disabled when extensions are disabled
perform stub upgrade on version mismatch, not only if it is lower than expected
added SHLWAPI.StrCmpLogicalW
added SHELL32.SHOpenFolderAndSelectItems stub
fixed KERNEL32.lstrcpynW
added kexAreExtensionsEnabled to SDK
api logging should now work correctly
---------------------------------------
KernelEx v4.0 Final by Xeno86
2009-07-23
added option to select between enabling KernelEx extensions for all applications and disabling them
added KernelEx installation verifier
migration to PSDK 2003, compilation on MSVC 6 without PSDK not possible
change: delay-load usp10.dll, comdlg32.dll, shell32.dll and winspool.drv in kexbasen
fix: loading Unicows.dll altered FPU flags and caused certain programs to crash on first start
added option to kexcontrol to kill all processes depending on KernelEx
disable api override for shared modules
change: services have disabled extended api by default - this should hopefully fix shutdown problems
change: shared api libraries are now referenced by all processes that reference any of non-shared api libraries
change: Core's critical sections are now global - it should continue to function even after hosting process is terminated
removed all process lock during initialization
don't load MSLU on initialization
remember and restore last error on MSLU load
enable overrides for MSVCRT.DLL
disable overrides for SPOOL32.DLL process
fix: preload not yet loaded shared system DLLs
GetOpenFileName / GetSaveFileName fix for 98 shell - file choose dialog in flash applets should work now
remove check in psapi.EnumProcessModules that conflicts with debuggers
change: accept CP_THREAD_ACP flag for MultiByteToWideChar and WideCharToMultiByte
added api logging window (in debug Core) - based on listview, filtering, saving log to file
added kexIsDebugCore api to sdk
change: compatibility tab shows api log checkbox under debug Core
implemented worldtransform APIs for GTK+ Cairo (thanks Tihiy)
implemented RPCRT4.RpcStringFreeW, UuidFromStringW, UuidToStringW
replaced buggy Unicows GDI32.EnumFontFamiliesExW, EnumFontFamiliesW with custom implementation
implemented KERNEL32.GetVolumePathNameA/W (semi-stub)
implemented WINSPOOL.GetDefaultPrinterA/W
replaced Unicows kernel32.CompareStringW, GetStringTypeExW, GetStringTypeW, LCMapStringW, lstrcmpW, lstrcmpiW with Wine implementation
replaced Unicows kernel32.GetAtomNameW, GetModuleFileNameW, GetModuleHandleW, LoadLibraryExW, LoadLibraryW with custom implementation
replaced Unicows user32.CharLowerBuffW, CharLowerW, CharNextW, CharPrevW, CharToOemBuffW, CharToOemW, CharUpperBuffW, CharUpperW, IsCharAlphaNumericW, IsCharAlphaW, IsCharLowerW, IsCharUpperW, OemToCharBuffW, OemToCharW with Wine implementation
added kernel32.FoldStringA, FoldStringW from Wine
fixed not-working kernel32.GetSystemWindowsDirectoryW, CommandLineToArgvW
---------------------------------------
KernelEx v4.0 RC 2 by Xeno86
2009-03-21
fixed uxtheme version check
added compilation instructions
fixed msimg32.AlphaBlend bug incorrectly calculating transparency
added kernel32.GetVersionW to default configuration
added advapi32.OpenSCManager stubs
implemented kernel32.GetConsoleWindow
modified CreateFile, ReadFile and WriteFile so that they now accept overlapped flag
fixed non-working MoveFileWithProgressA
fix: DirectX setup has disabled extensions
added psapi.EmptyWorkingSet stub
change: KernelEx will first load any other MPRServices before initializing
added workaround for situation where some kernel driver hijacked system functions
added missing disable resource check fix
removed GetMessageW from kexbasen (already in kexbases)
fixed issue where installer wouldn't complete on fresh system
fixed BSOD or crashes on shutdown on certain configurations by preventing early unload
fixed compatibility sheet not working properly for shortcuts
implemented kernel32.IsProcessorFeaturePresent
fix: check if last element in merge list does repeat
fixed compilation issue with PSDK 2003
fixed Core not displaying error messages correctly
---------------------------------------
KernelEx v4.0 RC 1 by Xeno86
2009-03-10
First public release of KernelEx rewritten from scratch and based on new architecture