Skip to content
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

为Chrome 125内核补充XP不存在的接口 #90

Open
55 of 70 tasks
mingkuang-Chuyu opened this issue May 29, 2024 · 2 comments
Open
55 of 70 tasks

为Chrome 125内核补充XP不存在的接口 #90

mingkuang-Chuyu opened this issue May 29, 2024 · 2 comments

Comments

@mingkuang-Chuyu
Copy link
Collaborator

mingkuang-Chuyu commented May 29, 2024

如果✔说明已经兼容完成

特殊功能类

Report By YY.Depends.Analyzer (Target:5.2.3790-x64)

advapi32.dll

  • AddMandatoryAce
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll

api-ms-win-core-handle-l1-1-0.dll

  • CompareObjectHandles
    • Ref Module: [Delay] chrome.dll

api-ms-win-power-setting-l1-1-0.dll

  • PowerGetActiveScheme
    • Supported OS: 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • PowerReadACValue
    • Supported OS: 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • PowerReadDCValue
    • Supported OS: 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll

cfgmgr32.dll

credui.dll

  • CredUIPromptForWindowsCredentialsW
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • 大概率可以用CredUIPromptForCredentialsW实现
    • Ref Module: [Delay] chrome.dll

d3d12.dll

  • D3D12CreateDevice
    • Ref Module: [Delay] chrome.dll

kernel32.dll

  • GetNamedPipeClientProcessId
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: chrome.dll
  • GetNamedPipeServerProcessId
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: chrome.dll
  • SetDefaultDllDirectories
    • Supported OS: 6.2.9200, 6.3.9600
    • Ref Module: chrome.dll
  • Wow64GetThreadContext
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module:
      • Installer\chrmstp.exe
      • Installer\setup.exe

mf.dll

  • MFCreateDeviceSource
    • Supported OS: 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFEnumDeviceSources
    • Supported OS: 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll

mfplat.dll

  • MFCreateAlignedMemoryBuffer
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFCreateAsyncResult
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFCreateAttributes
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFCreateEventQueue
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFCreateMediaBufferWrapper
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFCreateMediaEvent
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFCreateMediaType
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFCreateMemoryBuffer
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFCreatePresentationDescriptor
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFCreateSample
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFCreateStreamDescriptor
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFCreateWaveFormatExFromMFMediaType
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFFrameRateToAverageTimePerFrame
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFGetSystemTime
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFInitMediaTypeFromWaveFormatEx
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFShutdown
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFStartup
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • MFTEnumEx
    • Supported OS: 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll

mfreadwrite.dll

  • MFCreateSourceReaderFromMediaSource
    • Supported OS: 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll

ncrypt.dll

  • NCryptCreatePersistedKey
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module:
      • [Delay] chrome.dll
      • Installer\chrmstp.exe
      • Installer\setup.exe
  • NCryptDeleteKey
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • NCryptExportKey
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module:
      • [Delay] chrome.dll
      • Installer\chrmstp.exe
      • Installer\setup.exe
  • NCryptFinalizeKey
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module:
      • [Delay] chrome.dll
      • Installer\chrmstp.exe
      • Installer\setup.exe
  • NCryptFreeObject
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module:
      • [Delay] chrome.dll
      • Installer\chrmstp.exe
      • Installer\setup.exe
  • NCryptGetProperty
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module:
      • [Delay] chrome.dll
      • Installer\chrmstp.exe
      • Installer\setup.exe
  • NCryptImportKey
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module:
      • [Delay] chrome.dll
      • Installer\chrmstp.exe
      • Installer\setup.exe
  • NCryptIsAlgSupported
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module:
      • [Delay] chrome.dll
      • Installer\chrmstp.exe
      • Installer\setup.exe
  • NCryptOpenKey
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • NCryptOpenStorageProvider
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module:
      • [Delay] chrome.dll
      • Installer\chrmstp.exe
      • Installer\setup.exe
  • NCryptSignHash
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module:
      • [Delay] chrome.dll
      • Installer\chrmstp.exe
      • Installer\setup.exe

ndfapi.dll

  • NdfCloseIncident
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • NdfCreateWebIncident
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • NdfExecuteDiagnosis
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll

ntdll.dll

  • NtOpenKeyEx
    • Supported OS: 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module:
      • chrome_elf.dll
      • chrome_pwa_launcher.exe
      • elevation_service.exe
      • Installer\chrmstp.exe
      • Installer\setup.exe
      • notification_helper.exe

propsys.dll

  • InitPropVariantFromCLSID
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module:
      • [Delay] chrome.dll
      • Installer\chrmstp.exe
      • Installer\setup.exe
  • PSCreateMemoryPropertyStore
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • PSGetPropertyKeyFromName
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • VariantCompare
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll

rpcrt4.dll

  • I_RpcOpenClientProcess
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: elevation_service.exe

uiautomationcore.dll

  • UiaRaiseNotificationEvent
    • Ref Module: [Delay] chrome.dll

user32.dll

  • GetPointerDevice
    • Supported OS: 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • GetPointerDevices
    • Supported OS: 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • GetPointerPenInfo
    • Supported OS: 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • GetPointerType
    • Supported OS: 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • RegisterPointerDeviceNotifications
    • Supported OS: 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll

winusb.dll

  • WinUsb_ControlTransfer
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • WinUsb_Free
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • WinUsb_GetAssociatedInterface
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • WinUsb_GetOverlappedResult
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • WinUsb_Initialize
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • WinUsb_ReadPipe
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • WinUsb_ResetPipe
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • WinUsb_SetCurrentAlternateSetting
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
  • WinUsb_WritePipe
    • Supported OS: 6.0.6000, 6.1.7600, 6.2.9200, 6.3.9600
    • Ref Module: [Delay] chrome.dll
@KohChia
Copy link

KohChia commented Jun 13, 2024

刚好看到这个 issue 提到了NtOpenKeyEx函数,按照自己的思路实现了一个版本:

NTSTATUS NTAPI NtOpenKeyEx(HANDLE *KeyHandle, ACCESS_MASK DesiredAccess, OBJECT_ATTRIBUTES *ObjectAttributes, ULONG OpenOptions)
{
  NTSTATUS Status;

  __try
  {
    OBJECT_ATTRIBUTES KeyObject;
    HANDLE Handle;

    if (OpenOptions & REG_OPTION_OPEN_LINK)
    {
      KeyObject.Length = ObjectAttributes->Length;
      KeyObject.RootDirectory = ObjectAttributes->RootDirectory;
      KeyObject.ObjectName = ObjectAttributes->ObjectName;
      KeyObject.Attributes = ObjectAttributes->Attributes | OBJ_OPENLINK;
      KeyObject.SecurityDescriptor = ObjectAttributes->SecurityDescriptor;
      KeyObject.SecurityQualityOfService = ObjectAttributes->SecurityQualityOfService;
      ObjectAttributes = &KeyObject;
    }

    Status = NtOpenKey(&Handle, DesiredAccess, ObjectAttributes);
    if (NT_SUCCESS(Status))
    {
      if (OpenOptions & REG_OPTION_BACKUP_RESTORE)
      {
        Status = NtCreateKey(KeyHandle, DesiredAccess, ObjectAttributes, 0, NULL, REG_OPTION_BACKUP_RESTORE, NULL);
        NtClose(Handle);
      }
      else
      {
        memcpy(KeyHandle, &Handle, sizeof(Handle));
      }
    }
  }
  __except (EXCEPTION_EXECUTE_HANDLER)
  {
    Status = GetExceptionCode();
  }

  return Status;
}

贾可

@mingkuang-Chuyu
Copy link
Collaborator Author

@KohChia 感谢你的帮助。虽然我这边已经实现了,但是你确实也为了提供了一种优化方案。之前代码未考虑到OBJ_OPENLINK也能打开符号链接,我尝试优化一下。

mingkuang-Chuyu added a commit that referenced this issue Jun 22, 2024
- 添加 MFCreateDeviceSource
- 添加 MFEnumDeviceSources
- 添加 MFCreateAlignedMemoryBuffer
- 添加 MFCreateAsyncResult
- 添加 MFCreateAttributes
- 添加 MFCreateEventQueue
- 添加 MFCreateMediaBufferWrapper
- 添加 MFCreateMediaEvent
- 添加 MFCreateMediaType
- 添加 MFCreateMemoryBuffer
- 添加 MFCreatePresentationDescriptor
- 添加 MFCreateSample
- 添加 MFCreateStreamDescriptor
- 添加 MFCreateWaveFormatExFromMFMediaType
- 添加 MFFrameRateToAverageTimePerFrame
- 添加 MFGetSystemTime
- 添加 MFInitMediaTypeFromWaveFormatEx
- 添加 MFShutdown
- 添加 MFStartup
- 添加 MFTEnumEx
- 添加 MFCreateSourceReaderFromMediaSource
mingkuang-Chuyu added a commit that referenced this issue Jun 22, 2024
- 添加 CompareObjectHandles
- 添加 DWriteCreateFactory新增IDWriteFactory3支持(仅Vista以及更高版本)
- 添加 CM_Get_DevNode_Property_ExW
- 添加 CM_Set_DevNode_Property_ExW
- 添加 CM_Get_DevNode_PropertyW
- 添加 CM_Set_DevNode_PropertyW
- 添加 Wow64GetThreadContext(新增对WinXP 64支持)
- 添加 SetDefaultDllDirectories
- 添加 NtOpenKeyEx
- 添加 InitPropVariantFromCLSID
- 添加 PSGetPropertyKeyFromName
- 添加 PSCreateMemoryPropertyStore
- 添加 VariantCompare
- 添加 AddMandatoryAce
- 添加 RegisterPointerDeviceNotifications
- 添加 GetPointerDevices
- 添加 GetPointerDevice
- 添加 GetPointerPenInfo
- 添加 GetPointerType
- 添加 UiaRaiseNotificationEvent
- 添加 MFCreateDeviceSource
- 添加 MFEnumDeviceSources
- 添加 MFCreateAlignedMemoryBuffer
- 添加 MFCreateAsyncResult
- 添加 MFCreateAttributes
- 添加 MFCreateEventQueue
- 添加 MFCreateMediaBufferWrapper
- 添加 MFCreateMediaEvent
- 添加 MFCreateMediaType
- 添加 MFCreateMemoryBuffer
- 添加 MFCreatePresentationDescriptor
- 添加 MFCreateSample
- 添加 MFCreateStreamDescriptor
- 添加 MFCreateWaveFormatExFromMFMediaType
- 添加 MFFrameRateToAverageTimePerFrame
- 添加 MFGetSystemTime
- 添加 MFInitMediaTypeFromWaveFormatEx
- 添加 MFShutdown
- 添加 MFStartup
- 添加 MFTEnumEx
- 添加 MFCreateSourceReaderFromMediaSource
- 添加 NdfCreateWebIncident
- 添加 NdfCloseIncident
- 添加 NdfExecuteDiagnosis
- 添加 WinUsb_Free
- 添加 WinUsb_GetAssociatedInterface
- 添加 WinUsb_GetOverlappedResult
- 添加 WinUsb_Initialize
- 添加 WinUsb_ReadPipe
- 添加 WinUsb_ResetPipe
- 添加 WinUsb_SetCurrentAlternateSetting
- 添加 WinUsb_WritePipe
- 添加 D3D12CreateDevice
mingkuang-Chuyu added a commit that referenced this issue Jun 27, 2024
- 添加 PowerGetActiveScheme
- 添加 PowerReadACValue
- 添加 PowerReadDCValue
mingkuang-Chuyu added a commit that referenced this issue Jun 27, 2024
- 添加 PowerGetActiveScheme
- 添加 PowerReadACValue
- 添加 PowerReadDCValue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

When branches are created from issues, their pull requests are automatically linked.

2 participants