使用 GetModuleHandle 获取指向 IMAGE_DOS_HEADER 的指针?

2023-12-02

一旦进程加载到内存中,我就试图获取它的图像库。根据我的理解,您可以调用 GetModuleHandle 来获取图像库。我的问题是,返回的句柄本质上是否指向 IMAGE_DOS_HEADER 结构,以便您可以执行以下操作:

PIMAGE_DOS_HEADER DosHeader;
DosHeader = (PIMAGE_DOS_HEADER)GetModuleHandle(NULL);

如果这不正确,您还可以使用什么其他方法?


这是正确的,但如果您想要 dll 的模块句柄,则需要指定其路径。否则你将获得进程exe的句柄。您还应该检查返回的HMODULE首先看看它是否有效。

如何获取模块的虚拟大小的示例:

std::size_t GetModuleSize(const char* szModule)
{
    HMODULE hModule = GetModuleHandle(szModule);
    if(hModule == NULL) return 0;
    IMAGE_DOS_HEADER* pDOSHeader = (IMAGE_DOS_HEADER*)hModule;
    IMAGE_NT_HEADERS* pNTHeaders =(IMAGE_NT_HEADERS*)((BYTE*)pDOSHeader + pDOSHeader->e_lfanew);
    return pNTHeaders->OptionalHeader.SizeOfImage;
}

你会注意到我用IMAGE_DOS_HEADER*并不是PIMAGE_DOS_HEADER因为我发现它更具可读性和清晰性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 GetModuleHandle 获取指向 IMAGE_DOS_HEADER 的指针? 的相关文章

  • Directory.Delete 之后 Directory.Exists 有时返回 true ?

    我有非常奇怪的行为 我有 Directory Delete tempFolder true if Directory Exists tempFolder 有时 Directory Exists 返回 true 为什么 可能是资源管理器打开了
  • 计算 Richtextbox 中所有单词的最有效方法是什么?

    我正在编写一个文本编辑器 需要提供实时字数统计 现在我正在使用这个扩展方法 public static int WordCount this string s s s TrimEnd if String IsNullOrEmpty s re
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • ClickOnce 应用程序错误:部署和应用程序没有匹配的安全区域

    我在 IE 中使用 FireFox 和 Chrome 的 ClickOnce 应用程序时遇到问题 它工作正常 异常的详细信息是 PLATFORM VERSION INFO Windows 6 1 7600 0 Win32NT Common
  • 在 LINQ 中按 Id 连接多表和分组

    我想按categoryId显示列表产品的名称组 这是我的代码 我想要我的视图显示结果 Desktop PC HP Red PC Dell Yellow PC Asus Red SmartPhone Lumia 720 Blue 我的组模型
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 在 Visual Studio 2010 中从 Fortran 调用 C++ 函数

    我想从 Fortran 调用 C 函数 为此 我在 Visual Studio 2010 中创建了一个 FORTRAN 项目 之后 我将一个 Cpp 项目添加到该 FORTRAN 项目中 当我要构建程序时出现以下错误 Error 1 unr
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • 如果我使用客户端计算机上未安装的字体,会发生什么情况?

    有人可以告诉我 如果我在 WinForms 应用程序中使用目标计算机上不可用的字体 会发生什么情况 它是否使用同一系列的字体 只是 Sans Serif 还是其他字体 您的应用程序将回退到 Segoe UI Tahoma 然后是 MS Sa
  • AES 128 CBC 蒙特卡罗测试

    我正在 AES 128 CBC 上执行 MCT 如中所述http csrc nist gov groups STM cavp documents aes AESAVS pdf http csrc nist gov groups STM ca
  • 如何设置 log4net 每天将我的文件记录到不同的文件夹中?

    我想将每天的所有日志保存在名为 YYYYMMdd 的文件夹中 log4net 应该根据系统日期时间处理创建新文件夹 我如何设置它 我想将一天中的所有日志保存到 n 个 1MB 的文件中 我不想重写旧文件 但想真正拥有一天中的所有日志 我该如
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • 无法访问127.0.0.1

    我不知道这种情况何时开始发生 但结果是 127 0 0 1 无法在任何地方的任何端口上工作 例如 浏览器显示无法连接 以下是我的研究结果 localhost COMPUTER NAME 和实际 IP 地址都工作正常 我的主机文件中没有什么特

随机推荐

  • 计算带有空白的唯一值Excel公式

    我正在尝试使用公式计算 Excel 中的唯一值 我尝试使用下面的公式 但它返回 DIV 0 错误 因为我的范围中有空格 无论如何 是否可以使用公式来计算带有空白的范围内的唯一值 任何有关此问题的帮助将不胜感激 SUM 1 COUNTIF U
  • 在 Linux C++ 上检测 keydown 和 keyup 事件 [重复]

    这个问题在这里已经有答案了 可能的重复 访问 C 中的击键 监控 Ubuntu 中的键盘按键 我想检测程序中的每个 keydown 和 keyup 事件并为其添加时间戳 是的 我的意思是keydown and keyup不仅仅是按键 以及按
  • 在data.table中动态创建新列

    我在 R 中有一个 data table 想要创建一个新列 假设我将日期列名称保存为变量并想要附加 year到新列中的该名称 我可以通过指定名称来完成正常的路由 但是如何使用date col多变的 这是我尝试过的 我想要的最后两个不起作用
  • Spark - 将整行传递给 udf,然后获取 udf 内的列名称

    我正在将 Spark 与 Scala 一起使用 并且希望将整行传递给 udf 并选择 side udf 中的每个列名称和列值 我怎样才能做到这一点 我正在尝试遵循 inputDataDF withColumn errorField mapC
  • 在 UCS-2 Little Endian、Java 中写入文本文件

    我正在尝试写入 txt 文件 它必须是 UCS 2 Little Endian 但是当我尝试时 writer new PrintWriter path UTF 16LE 从我读到的内容来看 它应该是相同的 但它在服务器上的特定应用程序中不起
  • 如何在 Zxing 扫描仪相机视图中添加按钮?

    我当前的 Zxing 扫描仪屏幕如下所示 我想在上面添加一个文本视图和几个按钮 我尝试了很多程序 但没有任何效果 任何人都可以指导我 我将虚心期待您的帮助 这是代码 Java文件 private ZXingScannerView mScan
  • 在 Gradle 和 Eclipse 的 Checkstyle-plugins 中使用 ${samedir}

    I use a 抑制滤波器在我的 checkstyle 配置中 文件的路径suppression xml相对于 checkstyle configuration 给出 使用 samedir http eclipse cs sourcefor
  • 从列表列表中删除 NULL 元素

    如何从 R 中的列表列表中删除 null 元素 如下所示 lll lt list list NULL list 1 list a 我想要的对象看起来像 lll lt list list 1 list a 我在这里看到了类似的答案 如何从列表
  • 将可执行文件链接到第三方依赖共享库时,C++ CMake 未定义引用

    我读了很多相关主题 例如1 2 3 但我自己没有找到答案 所以我在这里 我有一个可构建且可执行的 CMake 项目 假设为 x 我创建了一个名为 a so 的共享库 它依赖于另一个名为 b so 的共享库 我想在 x 中使用 a 这是我简化
  • 无法从 ASP 计时器滴答事件中找到 ASP Repeater 子控件

    见下图 Scenario 我有一个repeater控制轴承 ID rpt1 在 ItemTemplate 中我有一个量程控制其 ID 为 abc 当前显示的是一个数字 我也有一个ticker above the repeater in fo
  • PHP 中的远程 MySQL 连接

    我开始将软件项目从桌面应用程序迁移到 Web 应用程序 目前我正在使用与其安装的桌面关联的本地 PHP MySQL 连接 我希望解决这个问题 并尝试通过我的 1and1 帐户创建一个 MySQL 数据库 我毫不费力地创建了一个数据库并记录了
  • 如何连接多个CString

    所有函数都返回 CString 这是 MFC 代码 必须以 32 和 64 位进行编译 目前我正在使用 CString sURI GetURL sURI GetMethod sURI sURI GetParameters 存在任何方式可以执
  • 无法启动 weblogic BEA-002606

    我在我的 Mac 机器上运行 Weblogic 10 3 的托管实例 有一天 我尝试启动它 但收到此错误消息
  • SQL多次更新同一行

    我们可以考虑对同一行进行多次更新的必要性的一个示例 create table t c1 int insert into t c1 values 1 insert into t c1 values 2 insert into t c1 val
  • JetBrains Fleet:运行 Flutter 项目

    我正在尝试 JetBrains Fleet 我正在考虑在其中制作一个示例 Flutter 项目 但不知道如何配置run json对于 Flutter 项目 终端命令非常简单 flutter run debug or flutter run
  • 如何使用麻雀图在 wp8 中创建简单的区域系列

    我需要为我的 wp8 应用程序创建一个面积系列图表 所以我决定使用 Sparrow 工具包 但不幸的是 网上似乎确实有任何教程 我只是在研究如何开始它 所以如果有人可以给出基本的解释或给我指出一个像样的教程 那就太好了 如果有人知道更好的工
  • 如何获取隐藏 ID 来删除 jQuery 数据表中的记录

    我的 jQuery 数据表中有 编辑 和 删除 按钮 第一列是记录 ID 列并且是隐藏的 我有 编辑 和 删除 按钮的事件处理程序 我应该使用 DataTable click 和 tr 函数的事件处理程序来获取 id 或者如果使用按钮事件处
  • 错误:Fortran 格式字符串中的格式字符串意外结束

    尝试从 Fortran 77 程序编译复制的代码时出现此错误 code 900 FORMAT 1H0 2X ABSOLUTE GRID LIMITS FOR DATA RETENTION FOR RADAR I3 XMIN XMAX 2F8
  • 动态分配的二维数组

    我正在尝试通过动态分配来构建二维数组 我的问题是 它的第一个维度是否有可能采用 100 个值 然后第二个维度将根据我的问题采用可变数量的值 如果可能的话我将如何访问它 我怎么知道第二维度的边界 见代码中的注释 结果你会得到一个如下所示的数组
  • 使用 GetModuleHandle 获取指向 IMAGE_DOS_HEADER 的指针?

    一旦进程加载到内存中 我就试图获取它的图像库 根据我的理解 您可以调用 GetModuleHandle 来获取图像库 我的问题是 返回的句柄本质上是否指向 IMAGE DOS HEADER 结构 以便您可以执行以下操作 PIMAGE DOS