当前仓库属于暂停状态,部分功能使用受限,详情请查阅 仓库状态说明
2 Star 9 Fork 3

初雨团队 / YY-Thunks
暂停

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

YY-Thunks - 让兼容 Windows 更轻松

关于 YY-Thunks

众所周知,从 Windows 的每次更新又会新增大量 API,这使得兼容不同版本的 Windows 需要花费很大精力。导致现在大量开源项目已经不再兼容一些早期的 Windows 版本,比如 Windows XP RTM。

难道就没有一种快速高效的方案解决无法定位程序输入点的问题吗?

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

[ 鸭船交流群 633710173 ]

原理

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

亮点

  • 更快!更安全!鸭船内建2级缓存以及按需加载机制,同时自动加密所有函数指针, 防止内存爆破攻击。最大程度减少不需要和不必要的 LoadLibrary 以及 GetProcAddress 调用以及潜在安全风险。
  • 轻松兼容 Windows XP,让你安心专注于业务逻辑。
  • 完全开源且广泛接受用户意见,希望大家能踊跃的创建 PR,为鸭船添砖加瓦。

使用方法

大家可以在以下方案中任选一种,但是我们优先推荐 NuGet 方案。

NuGet(推荐)

  1. 项目右键 “管理 NuGet 程序包”。
  2. NuGet搜索框中输入:YY-Thunks,搜索后点击安装。
  3. 项目右键 - 属性 - YY-Thunks 中,自行调整YY-Thunks等级,允许 Windows 2000, Windows XP 以及 Windows Vista(默认)。
  4. 重新编译代码

手工配置

  1. 下载 YY-Thunks-Binary, 然后解压到你的工程目录。
  2. 【链接器】-【输入】-【附加依赖项】,添加 objs\$(PlatformShortName)\YY_Thunks_for_WinXP.obj
  3. 重新编译代码。

温馨提示:如果需要兼容 Vista,请选择 objs\$(PlatformShortName)\YY_Thunks_for_Vista.obj

兼容性

支持的编译器

全平台ABI兼容。

  • 所有Visual Studio版本均支持 (比如:VC6.0、VS2008、VS2010、VS2015、VS2017、VS2019等等)。
  • 所有运行库模式均支持(比如:/MD/MT/MDd/MTd)。

Thunks 清单

请参阅 ThunksList.md

更新日志

请参阅 Changelog.md

MIT License Copyright (c) 2018 Chuyu-Team Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

优雅的解决Windows XP RTM无法定位程序输入点 DecodePointer、EncodePointer、RegDeleteKeyEx等,让你兼容Windows XP更轻松。 展开 收起
C++
MIT
取消

贡献者

全部

近期动态

加载更多
不能加载更多了
C++
1
https://gitee.com/Chuyu-Team/YY-Thunks.git
git@gitee.com:Chuyu-Team/YY-Thunks.git
Chuyu-Team
YY-Thunks
YY-Thunks
master

搜索帮助