不学会C++不改名 2021-10-29 23:58 采纳率: 100%
浏览 29
已结题

Detours库的问题!救救孩子吧

    pSwapChainVT = reinterpret_cast<DWORD_PTR*>(pSwapChain);//拿到虚表指针
    printf("pSwapChainVT=%p\n", pSwapChainVT);
    pSwapChainVT = reinterpret_cast<DWORD_PTR*>(pSwapChainVT[0]);//拿对象
    printf("pSwapChainVT=%p\n", pSwapChainVT);
    phookD3D11Present = reinterpret_cast<tD3D11Present>(pSwapChainVT[8]);//拿到这个方法东西 就是Present
    printf("phookD3D11Present=%p\n", phookD3D11Present);


//     //-------------detours Hook------------------------
    DetourRestoreAfterWith();//避免重复HOOK
    DetourTransactionBegin();//开始HOOK
    DetourUpdateThread(GetCurrentThread());//更新到当前线程
    DetourAttach(reinterpret_cast<PVOID*>(&phookD3D11Present), hookD3D11Present);//你要HOOK的函数的函数的地址,以及你自定义的函数的函数地址.
    DetourTransactionCommit();//提交HOOK 到此为止 HOOK完成

不知道为什么 就是不执行hookD3D11Present函数 前面的都正常 但是运行到DetourAttach这行时 不会进入到自己定义的hookD3D11Present函数里面

  • 写回答

3条回答 默认 最新

  • 赵4老师 2021-10-30 05:32
    关注

    注意区分32位/64位?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 11月6日
  • 已采纳回答 10月30日
  • 创建了问题 10月29日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部