原生代码补丁与商业应用安全防护
1. Windows 平台原生代码补丁
在 Windows 平台上,可借助一些工具和库对原生代码进行补丁操作。
1.1 Detours 库
Detours 库拥有简洁的高级 C API,设计优良且易于使用。尽管它要求使用者对 Win32 架构有所了解,但能让汇编编码变得不再必要。补丁和绕行(detour)都以 C 函数的形式编写,只需几行代码就能完成拦截操作。
Detours 库可从 http://research.microsoft.com/sn/detours 免费下载,它附带了完善的文档和众多示例。
以下是使用 Detours 库对 Win32 Sleep 函数打补丁并测量程序睡眠总时间的关键代码示例:
/* Declare a Sleep() trampoline using Detours macro */
DETOUR_TRAMPOLINE(VOID WINAPI UntimedSleep(DWORD dwMilliseconds), Sleep);
/* DLL entry point that installs and removes a detour for Sleep */
BOOL WINAPI DllMain(HINSTANCE hinst, DWORD dwReason, LPVOID reserved)
{
if (dwReason == DLL_PROCE
超级会员免费看
订阅专栏 解锁全文
48

被折叠的 条评论
为什么被折叠?



