c/c++ 如何获取.exe运行进程的基地址?

2024-01-21

我正在寻找一个可以用来获取基地址的方法/函数"program.exe"+03262C08 -> B4895A0。该地址来自作弊引擎,基地址已通过指针扫描器找到。在指针扫描仪中我可以按show module list并且有地址program.exe从地址开始00400000 program.exe。指针扫描仪已扫描地址09c3000(我想在基地址+许多偏移量[最终地址]之后到达的地址)。该地址是某个对象的基础,但我无法到达该地址。我只能获取 exe 文件的基地址00400000。我正在尝试添加指针的偏移量03262C08(和其他人)但我仍然可以到达该地址。我无法使用功能FindWindow()。因为程序的名称将会改变,坚持使用它是多余的。我在用着OpenProcess(), EnumProcessModulesEx(), GetModuleFileNameEx()功能。我也尝试过其他人GetModuleInformation(),...得到相同的结果。GetModuleHandle()以结果结束0x126 [ERROR_MOD_NOT_FOUND]。我正在使用 64 位操作系统,并且正在尝试获取另一个进程的基地址。 我可以看到本地计算机上的所有进程和“程序”进程的模块。

if (!K32EnumProcesses(aProcesses, sizeof(aProcesses), &cbNeeded)) {
    return 1;
}

cProcesses = cbNeeded / sizeof(DWORD);

cout << setw(15) << left << "Process ID" << setw(10) << left << "Modules";
cout << setw(30) << left << "Process Name" << endl;
for (i = 0; i < cProcesses; i++) {
    if (aProcesses[i] != 0) {
        ProcessView::GetProccesses(aProcesses[i], modules, sizeModules, &cModules, &hCurrProcess);
        if (hCurrProcess != NULL) {
            cout << endl << setw(15) << left << aProcesses[i] << setw(10) << left << cModules;
            ProcessView::PrintModuleName(hCurrProcess, modules);
            CloseHandle(hCurrProcess);
        }

    }
}
ProcessView::GetProccesses(cProcesses, modules, sizeModules, &cModules, &hCurrProcess);

system("cls");
ProcessView::PrintModuleNameAll(hCurrProcess, modules, cModules);

我在示例中添加了我创建的 ProcessView.h 文件中的函数定义。

static void GetProccesses(_In_ DWORD processID, _Inout_ HMODULE ahModules[], _In_ int sizeModules, _Out_ DWORD* cModules, _Out_ HANDLE* hProcess);
static void PrintModuleName(_In_ HANDLE processID, _In_ HMODULE* modules);
static void PrintModuleNameAll(_In_ HANDLE hProcess, _In_ HMODULE * modules, _In_ DWORD cModules);

Windows 使用地址空间布局随机化已有大约十年的历史,但 EXE 中的模块库却比这更古老。干脆忽略它吧,现在已经没有意义了。

并且不要忘记:每个进程都有自己的地址空间。一个进程中的指针在另一个进程中毫无意义。

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

c/c++ 如何获取.exe运行进程的基地址? 的相关文章

  • 到底什么是“位填充”或“填充位”?

    我只是在互联网上找不到任何关于 位填充 真正含义的详细解释 并且在 Stack Overflow 上也没有找到与位填充相关的线程的任何答案 我还搜索了 ISO 9899 1990 其中提到了 位填充 但没有根据我的需要进行解释 我在网上找到
  • 更改 Visual Studio 2015 扩展中项目内的文件 ProjectItem 的内容?

    如何更改文件的内容 ProjectItem在给定的范围内Project 我想用字符串替换它的所有内容 这个问题有解决办法吗 我想做一些改变ProjectItem CS 文件 通过使用 VSIX 包 以及我现在看到的唯一一种执行此操作的方法
  • 限制纬度和经度值的模数

    我有代表纬度和经度的双精度数 我可以轻松地将经度限制为 180 0 180 0 具有以下功能 double limitLon double lon return fmod lon 180 0 360 0 180 0 这是有效的 因为一端是排
  • C# 动态 Linq 变量Where 子句

    我正在按照 Scott Gu 的文章创建动态 LINQhttp weblogs asp net scottgu archive 2008 01 07 dynamic linq part 1 using the linq dynamic qu
  • 堆栈独立的C/C++蓝牙API?

    我想知道是否有适用于 Windows XP Vista 7 x86 和 x64 的堆栈独立 C C 蓝牙 api 我的目标是创建连接并通过蓝牙发送 接收一些时间关键的数据 我的研究给了我以下选择以及这项任务的缺点 用于蓝牙的 Windows
  • 实体框架 5 不清除导航属性

    我在 Entity Framework 5 中遇到了这个奇怪的问题 我在其中一个实体中有一个导航属性 我想将其设置为null 但由于某种原因 该属性只有在我第二次调用该属性时才会被清除 using var db new Entities v
  • EASTL 与 STL 相比,std::vector::operator[] 怎么会有这么大的性能差异

    根据http www open std org jtc1 sc22 wg21 docs papers 2007 n2271 html http www open std org jtc1 sc22 wg21 docs papers 2007
  • 如何使用 ASP.NET MVC 4.0 DonutOutputCache VaryByCustom 使缓存失效

    我正在为我的 ASP NET 应用程序使用 DevTrends MvcDonutCaching 包 它工作得很好 我目前遇到的一个问题是使我为子操作设置的 VaryByCustom 缓存无效 这是我用于 VaryByCustom 设置的一些
  • C# 列表框 ObservableCollection

    我正在尝试使用 ListBox DataSource ObservableCollection 但是我不知道如何在 OC 更新时让列表框自动更新 我可以在 OC 上挂接 CollectionChanged 事件 但是我需要对列表框执行什么操
  • 接口中的私有成员

    是否可以在 NET 接口中创建私有成员 我听说现在可以了 但我的 IDE 拒绝了 public interface IAnimal void SetDefaultName string name ChangeName name privat
  • 为什么将多线程应用程序限制在一个核心上会使其运行速度更快?

    我有一个本机多线程Win32用 C 编写的应用程序 大约有 3 个相对繁忙的线程和 4 到 6 个不执行太多操作的线程 当它在正常模式下运行时 在 8 核计算机上 总 CPU 使用率总计约为 15 并且应用程序在大约 30 秒内完成 当我通
  • 当应用程序未聚焦时监听按键

    我有一个应用程序 C 4 0 WPF 它是隐藏的 可以通过单击系统托盘图标或我创建的其他框架 停靠在左侧和最上面的小框架 来显示 My customer wants to add a new way to display the appli
  • C#中如何将委托转换为对象?

    我正在使用反射类来调用其他 dll 上的一些方法 方法的参数之一是委托类型 我想通过使用反射来调用这个方法 所以我需要将函数参数作为对象数组传递 但我找不到任何关于 如何将委托转换为对象 提前致谢 委托是一个对象 只需像平常一样创建预期的委
  • 通过 Nuke.Common/NuGet.CommandLine 部署 NuGet 包时如何通过 Azure Auth

    我正在尝试通过 Azure DevOps 上的 Nuke 和 CI CD 自动执行 NuGet 包更新 一切都构建得很好 但在 PushNuGet 步骤中 该过程尝试通过弹出窗口向 Azure 进行身份验证 这显然从未在 in devops
  • 在 C# 4.0 中,是否可以从泛型类型参数派生类?

    我一直在尝试这个 但我似乎无法弄清楚 我想做这个 public abstract class SingletonType
  • “sizeof”对不完整类型列表结构 C 的无效应用

    我正在尝试实现一种处理页面错误的替换算法 因此 我尝试使用 malloc 创建一个循环链表 但出现以下错误 无效的应用程序sizeof to incomplete typepageInMemory 以下是代码 typedef struct
  • std::regex 转义正则表达式中使用的特殊字符

    我是字符串来创建一个std regex FILE 作为单元测试的一部分 检查一些打印文件名的异常输出 在 Windows 上失败并显示 regex error error escape 表达式包含无效的转义字符或尾随转义 因为 FILE 宏
  • g++4.9 不支持 std::align

    在学习对齐问题等时 我意识到我的 g 4 9 macports OS X 实现不支持std align 如果我尝试编译 使用 std c 11 此示例代码来自http www cplusplus com reference memory a
  • 正则表达式基于组的不同替换?

    所以我对正则表达式比较陌生 并且做了一些练习 我正在玩一个简单的 混淆器 它只是寻找 dot or dot or at or at 不区分大小写 并且在匹配项之前或之后有或没有任意数量的空格 这是针对通常情况的 someemail AT d
  • TypeScript 中 C# 类虚拟成员的等效项

    因此 在 C 中 当我创建模型类和延迟加载内容时 我会执行以下操作 public int User ID get set public int Dept ID get set 然后在我的班级稍远一点的地方 我像这样弹出我的虚拟 public

随机推荐

  • 如何将 X 和 Y 转换为纬度和经度

    我有一张桌子叫IK TEMP它包含名为 data range 的列 String sql SELECT DATA RANGE FROM IK TEMP try Connection conn this connect Statement s
  • 在 Android 上横向模式下隐藏 URL 地址栏

    使用 JavaScript 如何在横向模式下滚动经过 URL 栏 在纵向模式下 您只需执行 window scrollTo 0 1 即可 但在横向模式下则不起作用 它在 URL 栏上部分运行 关于尝试什么有什么建议吗 有两种方法可以做到这一
  • 如何加速简单连接

    我不擅长SQL 我正在寻找一种方法来加速像这样的简单连接 SELECT E expressionID A attributeName A attributeValue FROM attributes A JOIN expressions E
  • 为什么在基于 Identity Cookie 的身份验证中一段时间​​后 User.Identity.IsAuthenticated 设置为 false

    我正在使用 EF core 在 asp net core 2 0 中开发 API 我已经在中配置了身份cookie身份验证startup cs如下 services ConfigureApplicationCookie options gt
  • 默认路由重定向不适用于 Angular 2 中的延迟加载路由

    我有一个应用程序 分为经过身份验证的部分 InternalRootComponent 和匿名部分 ExternalRootComponent 当我显式导航到路线时 一切正常 但当我转到根目录 时 我不会被重定向 此外 由于某种原因加载了帐户
  • Android Flipboard 动画

    我想在 Android 中更改视图时为 Flipboard 制作动画 是否可以在整个布局上为 Flipboard 制作动画 与图片上的字母相似 但整体布局相似 例如
  • Python Tkinter,在函数之后销毁顶层

    我正在使用 Tkinter 作为 GUI 使用 python 对一些驱动器进行编程 当我的机器运行时 我想向用户显示一个顶级窗口 其中包含一些信息 该窗口应在函数完成后自行关闭 这是我的最小例子 from Tkinter import im
  • 正则表达式匹配所有美国电话号码格式

    首先 我想说我在这里看到了很多例子 并用谷歌搜索过 但没有找到符合我正在寻找的匹配前 3 名而不低于中间值的所有条件 请让我知道如何将它们全部放在一处 xxx xxxxxxx xxx xxxxxxx xxx xxx xxxx xxx xxx
  • 如何添加在所有 cron 作业之前运行的 pre-hook 和 post-hook 脚本?

    假设我有以下 cron 条目 bin date 现在假设我想要在 cron 作业运行之前和之后运行的脚本 我可以将 cron 条目修改为如下所示 bin prehook bin date bin posthook 或者 如果我想要 preh
  • 让 paulirish 的 Infinite-Scroll 在 iPhone 上运行

    我一直在我的网站上实施 Paul Irish 的无限滚动 它可以在桌面浏览器上运行 但在移动设备 特别是 iPhone 上却不能立即运行 解决方法是稍微放大 这使得滚动事件触发 从而触发无限滚动 另请参阅此处的问题报告 https gith
  • 生成安全的 cookie 令牌以持久存储

    我正在尝试为我的网站创建登录和注册页面 我希望使用 cookie 来跟踪用户会话 但我正在尝试以最正确 最安全的方式实现它 我尝试查看教程和论坛 但其中大多数都已经过时 并且使用人们评论不安全的技术 我知道令牌需要随机生成和加密 因此我发现
  • 我应该在哪里重新实现 QApplication::notify 函数?

    我应该在哪里重新实现 QApplication notify 函数 我的意思是 哪个班级 我自己的类之一或 Qt 类的子类并在那里执行 我需要这个 因为我在从服务器下载文件时收到以下错误 小文件下载正常 但大文件会导致此消息 Qt 捕获了事
  • 实体框架包含OrderBy随机生成重复数据

    当我从数据库中检索项目列表 包括一些子项目 通过 Include 并随机排序时 EF 给出了一个意外的结果 我创建 克隆了附加项目 为了更好地解释自己 我创建了一个小型且简单的 EF Code First 项目来重现该问题 首先 我将为您提
  • 如何在Python中获取文件的修改日期/时间? [复制]

    这个问题在这里已经有答案了 如何在Python中获取文件的修改日期 时间 os path getmtime filepath or os stat filepath st mtime
  • C# 将 ISO-8859-1 字符转换为实体编号

    我似乎不知道如何将 ISO 8859 1 字符 例如 转换为它的实体编号 233 我希望能够采用字符串 例如 Steel D cor 并将其转换为 Steel D 233 cor 假设您不关心 HTML 中特殊的 HTML 编码字符 例如
  • 来自网络的“添加到日历”的 href 不适用于 Android 6.0+ 上的本机谷歌日历应用程序

    我们有一些 href 链接到 ics 文件和谷歌日历等 一切都在网络和 iOS 设备上完美运行 但是 当在 Chrome 中从 Android 6 0 链接到 添加到日历 时 它会自动打开 Google 日历 这是预期的 但随后它只是显示
  • 今天的日期 JSP

    我发现自己正在处理一些旧的 JSP 并且想做一些简单的事情 例如以 dd mm yyyy 格式显示今天的日期 好像没那么简单 到目前为止我已经导入了 java util 我尝试过各种事情 比如 String df new SimpleDat
  • 我可以安全地删除对 .pdb 文件的引用吗?

    我正在使用 ASP NET Core 5 0 因为它刚刚发布不久 今天我注意到一些奇怪的事情 我为我的软件制作了一个安装程序 它会自动过滤掉进入我的发布版本的每个 pdb 文件 一种永远不会引起问题的机制 但是新的 NET 5 0运行时似乎
  • Sharepoint 工作流首次运行时失败,但手动运行时成功

    我们正在使用一个 infopath 表单 提交后应该会触发自定义 NET 工作流程 基本上 表单中的信息用于创建新的共享点站点 我看到发生的情况是 工作流程第一次运行 提交表单后自动运行 工作流程出错 当我在工作流程失败后立即手动运行该工作
  • c/c++ 如何获取.exe运行进程的基地址?

    我正在寻找一个可以用来获取基地址的方法 函数 program exe 03262C08 gt B4895A0 该地址来自作弊引擎 基地址已通过指针扫描器找到 在指针扫描仪中我可以按show module list并且有地址program e