常见问题(FAQ)

本文介绍的内容包含了一个关于Detours的常见问题列表。这些问题是按主题类别和有趣 的领域分组的。

兼容性

Detours与Windows 10兼容吗?

是的。Detours完全兼容Windows 10桌面和服务器应用程序。虽然Detours可以用于Windows Store应用程序的开发和测试,但Windows 10的Windows Store新应用程序不能使用Detours。

为什么我的Windows 10商店应用程序不能包含Detours?

Windows Store应用程序只能使用Win32 API的一个子集。Detours需要几个Win32 api,这些api在Windows应用程序认证中是被禁止的。Detours禁用的api包括VirtualAlloc, VirtualProtect和FlushInstructionCache。

Detours兼容Windows 95, Windows 98或Windows ME吗?

不。Detours仅与Windows NT家族的操作系统兼容:Windows NT、Windows XP和Windows Server 2003等。Detours不能在Windows 9x系列操作系统上工作,因为它们有一个基本的虚拟内存系统。

用Detours代码编译

我该怎么做XDetours吗?Detours

查看Detours代码样本。Detours的样本相当广泛。很可能您想用Detours完成的任何事情都包含在其中一个示例中。

我在哪里可以找到detours.libdetours.h

您需要构建一个版本的Detours。为您的c/c++编译器。构建detours的步骤是:

  1. 为目标架构初始化Microsoft c++工具集命令行环境。

  2. 克隆Detours库:git Clone https://github.com/microsoft/Detours.git

  3. 构建与nmake

    a.要仅仅构建detours库,请切换到detours/src目录并运行nmake命令。

    b.要构建detours和示例,请切换到detours目录并运行nmake命令。

  4. 一个自由。 目录现在应该存在,包含Detours静态库,其中 是您要编译的目标架构。include目录也将在构建过程中生成,它包含库的头文件。

    C:\detours> dir /b *。x64垃圾箱。X64自由。X64 C:\detours> dir /b lib. txt文件。X64弯路。自由弯路。pdb syelog。lib C:\detours> dir /b include detours.h detver.h syelog.h

使用Detours

为什么没人打电话来找我malloc

可能是因为目标程序没有使用您绕过的malloc函数。

像malloc这样的标准库函数可以从libc*中静态地链接到程序。Lib库,或动态地从msvcrt*.dll库之一。当静态链接时,程序接收标准库函数的私有版本。动态链接时,程序共享DLL中标准库函数的版本。如果您绕过函数的私有版本,或者如果目标程序使用它自己的函数的私有版本,目标程序将不会调用您的绕道。

为什么Detours被打包为静态库(detours.lib),而不是动态链接库(例如detours.dll)?

将Detours打包为静态库,可以最大限度地降低意外地使Detours包本身所需的函数的风险,并减少版本问题。注意,当与代码静态链接时,Detours只增加了大约16KB。

我还需要使用吗detoured.dll

不,Detours .dll标记文件在Detours 3.0中被删除了。在Detours 3.0之前,该文件被用作标记,用于指导微软技术支持人员和工具,如Windows错误报告,帮助他们快速确定进程已被Detours包更改。Windows 7中Windows OCA的进步消除了这个标记的需要,因为Windows 7维护了一个已从进程中卸载的DLL列表。微软不能以任何方式保证或支持第三方对微软二进制文件的修改。微软也不能以任何方式支持包含由第三方修改的微软二进制文件的应用程序。这包括使用Detours包在内存中进行修改。

如何调试我的detour DLL的启动?

Windbg可以单步执行,也可以在进程启动时出现异常而中断。Windbg可以从msdn.microsoft.com的“Windows调试工具”下载。例如,你可以使用命令行:

Windbg -o withdll.exe

在Visual Studio中,也可以使用Microsoft子进程调试强大工具扩展来调试子进程启动。安装完成后,您将需要使用扩展启用子进程调试,关于如何实现这一点的详细说明可以在宣布扩展的博客文章中找到。

为什么我的代码在调试器下表现不同?

调试器通过用break指令替换函数代码来插入断点。例如,在X86和X64处理器上,调试器将为断点编写0xCC (int 3)。如果在应用一个detour之前编写了断点,那么detour库将看到0xCC而不是真正的指令。

解决这个问题的最佳方法是确保在目标函数上没有设置调试器断点。

许可

Detours可以用于商业应用吗?

Dettours是根据麻省理工学院许可许可的,允许商业使用。

错误报告

如何报告错误或问题?

请在GitHub问题跟踪系统上打开一个问题。在您的问题中,请确保包含您正在使用的Detours版本。在打开一个问题之前,请尽一切努力确保问题不是您自己的代码或使用Detours的错误。本FAQ中涵盖了最常见的用户错误来源。

您还可以将详细的错误报告发送到detours@microsoft.com。请在主题行中包含“DETOURS BUG报告”文本。在您的消息体中,请包含README.TXT文件中的第一行,该文件包含您正在使用的Detours版本的完整描述,包括Build号。

detours@microsoft.com电子邮件地址只用于bug报告,而不是产品支持线。

页面87

概述

  • 首页
  • 常见问题
  • 使用Detours
  • 拦截二进制函数
  • 有效负载和DLL导入编辑
  • 32位和64位进程
  • 实例

API参考

  • 保证目标函数
  • 寻找目标函数
  • 访问已加载的二进制文件和有效负载
  • 修改二进制文件
  • 在新进程中插入dll和有效负载

Detours学习之二:常见问题(FAQ)相关推荐

  1. H7-TOOL高速DAPLINK仿真器功能已发布,支持WinUSB和HID方式二合一,含常见问题FAQ(2020-12-07)

    H7-TOOL多功能开发工具完整介绍: http://www.armbbs.cn/forum.php?mod=viewthread&tid=89934 功能特点: 1.支持对外供电,电压范围1 ...

  2. 服务器时装不显示不出来,常见问题FAQ汇总

    常见问题FAQ汇总 1.金子刷皇榜,掉队字不显示,如何领取皇榜经验 点右上角的累了,打断进度条,就可以看到经验条末端有个掉队的字样出来了! 2.帝陵买钥匙进去后,要是中途出来了,还可以进去吗? 需要身 ...

  3. 看图学习VMWare以及常见问题答疑(转)

    看图学习VMWare以及常见问题答疑(转)[@more@] (一) VMWare是什么 VMWare是一个"虚拟机"软件.它使你可以在一台机器上同时运行二个或更多WIN2000 / ...

  4. 电子商务行业客户服务常见问题FAQ

    新手客服如何快速入门,新手快速销售有何技巧?初入电商行业,新手客服需要学习许多知识,如果想要把相关行业的知识掌握的比较熟练的话,至少需要6个月~1年时间.因此销售人员不能期望在短时间内把所有方面的相关 ...

  5. 一文盘点深度学习13个常见问题(附详细解答amp;学习资源)

    作者:VIDHYA小组 翻译:陈之炎 校对:顾佳妮 本文共4700字,建议阅读10+分钟. 本文为你解答关于入门深度学习的问题,并列出了大量的资源让你起步学习. 概述 从Facebook的研究到Dee ...

  6. 植物大战僵尸全明星服务器维修多长时间,植物大战僵尸全明星常见问题FAQ详解...

    植物大战僵尸全明星常见问题FAQ详解 2014-07-15 16:59:45来源:游戏下载编辑:评论(0) 植物大战僵尸全明星是一款卡牌类的手游,游戏拥有超多的植物及僵尸组成全新的PVP系统,是植物大 ...

  7. 小博无线认证无法连接服务器,常见问题FAQ一、设备绑定-小博无线.PDF

    常见问题FAQ一.设备绑定-小博无线.PDF 常见问题 FAQ 一. 设备绑定 1.序列号如何查找? >路由器联网后 ,管理界面首页左上角会有红色设备绑定按钮,点击按钮即可获 取序列号,填到云平 ...

  8. 微信小程序开发常见问题FAQ之五

    微信小程序遇到问题怎么办?遇到微信小程序方面的问题,该去哪里提问呢?一起来看看第九程序为您整理的微信开发者社区开发常见问题FAQ吧~在文中,您可使用「CTRL+F」,输入关键词来快速找寻您需要的答案. ...

  9. 《FontForge常见问题FAQ》字王翻译版

    <FontForge常见问题FAQ> 字王翻译版 原文: http://fontforge.github.io/en-US/faq/ 翻译: 字王·中国   blog: http://bl ...

最新文章

  1. pat1011. World Cup Betting (20)
  2. rdd数据存内存 数据量_spark系列:spark core 数据交互技术点(数据模型)
  3. 微信公众帐号开发教程第6篇-消息及消息处理工具的封装
  4. 单身的原因终于找到了!原来是这几个......
  5. java异常处理机制_Java编程中的异常机制
  6. java.lang.applet_Java Applet RuntimeException:java.lang.NoClassDefFoun...
  7. 在docker container中为gsutil认证gcloud
  8. 基于人脸识别的课堂签到管理系统(一)---环境设置以及简单的QT界面设计
  9. python手动抛出异常
  10. win10安装杜比驱动
  11. 机器学习-随机森林算法
  12. 有道云笔记linux使用教程,巧妙地使用typora编辑有道云笔记
  13. 腾讯云弹性微服务TEM
  14. 水瓶座 水瓶座的男人
  15. CVPR2019| 百度17篇CVPR论文学习记录(包含:无人驾驶、神经网络、GAN、无监督学习、目标检测)
  16. c语言报告对老师的致谢,论文致谢对老师的感谢-论文老师的致谢词怎么写?
  17. 【工控协议专题01】Modbus协议原理与安全性分析
  18. [Job服务] - 自定义计划任务服务
  19. window时间同步
  20. filters与v-html联合使用(uni-app代码被编译,节点照样不能被正常渲染:解决)

热门文章

  1. 全面理解隐马尔可夫模型
  2. Linux的Anaconda换阿里源
  3. secure CRT上传下载文件
  4. phpEnv-专业优雅强大的php集成环境
  5. 小米手机解锁BL以及获取Root权限(开发版)
  6. 小程序统一服务消息_小程序客服消息接入微信教程
  7. 【webrtc】RTPSender
  8. 推荐给 Mac 新手准备的工具套餐!
  9. 网页上表格复制到excel只能选html格式,怎么将网页中的表格快速复制到EXCEL中
  10. pyserial 全双工通信