gpt4 book ai didi

c++ - MFC 应用程序中的代码注入(inject)

转载 作者:行者123 更新时间:2023-11-28 03:33:20 25 4
gpt4 key购买 nike

我有一个获取 MFC 应用程序句柄的 Win32 应用程序。我的目标是强制 MFC 程序不显示 ASSERT 错误消息框。

基本上,我做了一个原型(prototype),允许我的 Win32 应用程序强制 MFC 应用程序显示消息框,只是为了检查这个想法是否可行。现在我需要强制 MFC 应用程序不显示此类 ASSERT 错误消息框。

这可能吗?

最佳答案

您可以通过拦截 MessageBoxA/MessageBoxW 函数调用来完成此操作。在用户模式级别,这通常在三个位置之一完成:

  • Call site - 在您的可执行文件中可能有多个对 MessageBox 的调用。您需要找到要禁用的那个。然后您可以用什么都不做的代码覆盖调用(即用 nop 指令覆盖)。
  • IAT - 导入地址表;由 PE 加载器填充的函数指针表。执行经常(但不总是)流经此处,替换 MessageBox 的函数指针可以允许将 MessageBox 调用重定向到某个不执行任何操作的例程。
  • 函数入口点 - MessageBox 函数的开始。这可以通过 GetProcAddress 找到,第一条指令替换为 ret

操作在运行时(动态)或静态(二进制重写/可执行编辑)完成,第一个选项更为常见。 Microsoft Detours 是一个可以帮助您实现运行时迂回的库。

这不是所有可能性的完整列表,而是最常见的执行重定向和迂回方法。

关于c++ - MFC 应用程序中的代码注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11924133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com