YY-Thunks 1.0.2.8

There is a newer version of this package available.
See the version list below for details.
dotnet add package YY-Thunks --version 1.0.2.8
NuGet\Install-Package YY-Thunks -Version 1.0.2.8
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="YY-Thunks" Version="1.0.2.8" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add YY-Thunks --version 1.0.2.8
#r "nuget: YY-Thunks, 1.0.2.8"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install YY-Thunks as a Cake Addin
#addin nuget:?package=YY-Thunks&version=1.0.2.8

// Install YY-Thunks as a Cake Tool
#tool nuget:?package=YY-Thunks&version=1.0.2.8

YY-Thunks——让兼容Windows更轻松

1. 关于YY-Thunks

众所周知Windows XP每个SP都会新增大量API,而Windows 10每次更新又会新增大量API,这使得兼容不同版本的Windows需要大量的判断。

甚至大量开源代码已经不再兼容一些早期的Windows XP版本,比如 Windows XP RTM。难道就没有一种快速高效的方案解决无法定位程序输入点的问题吗?

YY-Thunks(鸭船),存在的目的就是抹平不同系统的差异,编译时单纯添加一个obj即可自动解决这些兼容性问题。让你兼容Windows更轻松!

[ 鸭船交流群 633710173 ]

1.1. 原理

使用LoadLibrary以及GetProcAddress动态加载API,不存在时做出补偿措施,最大限度模拟原始API行为,让你的程序正常运行。

1.2. 亮点

  • 更快!更安全!鸭船内建2级缓存以及按需加载机制,同时自动加密所有函数指针,防止内存爆破攻击。最大程度减少不需要的、不必要的LoadLibrary以及GetProcAddress调用以及潜在安全风险。
  • 轻松兼容Windows XP,让你安心专注于业务逻辑。
  • 完全的开放代码,广泛的接受用户意见,希望大家能踊跃的 pull requests,为鸭船添砖加瓦。
Product Compatible and additional computed target framework versions.
native native is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.9 441 10/22/2023
1.0.9-Beta4 104 10/4/2023
1.0.9-Beta3 171 10/1/2023
1.0.9-Beta2 201 8/10/2023
1.0.9-Beta1 130 6/22/2023
1.0.8 376 6/22/2023
1.0.8-Beta4 150 5/20/2023
1.0.8-Beta3 167 5/20/2023
1.0.8-Beta2 117 5/11/2023
1.0.8-Beta1 192 5/9/2023
1.0.7 328 4/19/2023
1.0.7-Beta4 142 3/18/2023
1.0.7-Beta3 186 3/8/2023
1.0.7-Beta2 202 1/24/2023
1.0.7-Beta1 203 11/5/2022
1.0.6 695 7/3/2022
1.0.6-Beta1 180 5/15/2022
1.0.5 560 3/13/2022
1.0.5-Beta3 174 1/28/2022
1.0.5-Beta2 180 11/9/2021
1.0.5-Beta1 230 10/9/2021
1.0.4 484 8/31/2021
1.0.4-Beta3 583 7/12/2021
1.0.4-Beta2 209 6/30/2021
1.0.4-Beta1 173 6/17/2021
1.0.3 374 6/11/2021
1.0.3-Beta4 211 5/7/2021
1.0.3-Beta3 269 1/8/2021
1.0.3-Beta2 241 11/23/2020
1.0.3-Beta1 239 11/16/2020
1.0.2.8 852 7/25/2020
1.0.1.23 686 11/11/2019

* 优化实现,改进YY-Thunks性能与体积
     * 解决Bug,修复RtlpQueueWaitBlockToSRWLock与RtlpWakeSingle错误(感谢 清泠)
     * 解决Bug,CLSID_ShellItem符号可能冲突问题(感谢 星期四)
     * 解决Bug,与现代化stdio模式触发FAILIFMISMATCH链接错误。
     * 添加 CompareStringEx
     * 添加 CompareStringOrdinal
     * 添加 SetFilePointerEx(Windows 2000模式)
     * 添加 GetModuleHandleExW(A)(Windows 2000模式)
     * 添加 WTSGetActiveConsoleSessionId(Windows 2000模式)
     * 添加 StrToInt64ExW(A)(Windows 2000模式)
     * 添加 GetNativeSystemInfo(Windows 2000模式)
     * 添加 InitializeSListHead(Windows 2000模式)
     * 添加 InterlockedFlushSList(Windows 2000模式)
     * 添加 QueryDepthSList(Windows 2000模式)
     * 添加 InterlockedPushEntrySList(Windows 2000模式)
     * 添加 InterlockedPopEntrySList(Windows 2000模式)
     * 添加 LoadLibraryExW(A) LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR、LOAD_LIBRARY_SEARCH_APPLICATION_DIR、LOAD_LIBRARY_SEARCH_SYSTEM32支持
     * 添加 SetupDiGetDevicePropertyW
     * 添加 SetupDiSetDevicePropertyW
     * 添加 SetupDiGetClassPropertyW
     * 添加 SetupDiGetClassPropertyExW
     * 添加 SetupDiSetClassPropertyW
     * 添加 SetupDiSetClassPropertyExW