如何在进程的内存中搜索特定字符串?

2024-03-27

我对基础知识感兴趣。我不知道从哪里开始。我创建了这个测试程序:

#include <stdio.h>

int main()
{
    char* test = "TEST04560";
    getchar();
    printf("%s\n", test);
}

目标是使用外部程序找到“TEST04560”的内存地址。我知道如何使用ReadProcessMemory and WriteProcessMemory但我不知道如何在程序内存中搜索特定字符串。任何正确方向的提示都将不胜感激。


什么操作系统?大多数操作系统都有某种“调试”功能,允许您观察/修改其他进程(当然,如果您有权限)。

在 Linux 上,这是ptrace http://linux.die.net/man/2/ptrace.

在 Windows 上,有ReadProcessMemory http://msdn.microsoft.com/en-us/library/windows/desktop/ms680553.aspx, and friends http://msdn.microsoft.com/en-us/library/windows/desktop/ms679303.aspx.

对于搜索任何类型的数据,有memcmp http://www.cplusplus.com/reference/cstring/memcmp/。如果你知道如何使用ReadProcessMemory,这个功能你肯定很熟悉。

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

如何在进程的内存中搜索特定字符串? 的相关文章

  • 从实体获取单列

    如何从查询中获取单个列而不是整个对象 我可以这样做来获取整个对象 但我想要的只是名称 IList
  • 从 Invoke 方法获取 RETURN

    我正在尝试从另一个线程上的列表框项目中读取值 我尝试创建一种新方法来运行调用命令 我可以设法将命令发送到列表框 例如通过调用方法添加 但我似乎无法得到响应 我似乎无法获取该项目的值 我尝试了几种方法 一旦我将它从空变为字符串 事情就开始变得
  • OpenGL缓冲区更新[重复]

    这个问题在这里已经有答案了 目前我正在编写一个模拟水的程序 以下是我所做的步骤 创建水面 平面 创建VAO 创建顶点缓冲区对象 在其中存储法线和顶点 将指针绑定到此 VBO 创建索引缓冲区对象 然后我使用 glDrawElements 渲染
  • .pdbs 会减慢发布应用程序的速度吗?

    如果 dll 中包含 pdb 程序调试 文件 则行号将出现在引发的任何异常的堆栈跟踪中 这会影响应用程序的性能吗 这个问题与发布与调试 即优化 无关 这是关于拥有 pdb 文件的性能影响 每次抛出异常时都会读取 pdb 文件吗 加载程序集时
  • 为什么在 C++ 中声明枚举时使用 typedef?

    我已经很多年没有写过任何 C 了 现在我正试图重新开始 然后我遇到了这个并考虑放弃 typedef enum TokenType blah1 0x00000000 blah2 0X01000000 blah3 0X02000000 Toke
  • 在 Mac OS X 上安装 libxml2 时出现问题

    我正在尝试在我的 Mac 操作系统 10 6 4 上安装 libxml2 我实际上正在尝试在 Python 中运行 Scrapy 脚本 这需要我安装 Twisted Zope 现在还需要安装 libxml2 我已经下载了最新版本 2 7 7
  • DataGridView 列中的数字文本框

    我有一个DataGridView 我想要它的第一列或任何所需的列 其中有textboxes在其中 成为NUMERIC ONLY 我目前正在使用这段代码 private void dataGridViewItems EditingContro
  • 以下 PLINQ 代码没有改进

    我没有看到使用以下代码的处理速度有任何改进 IEnumerable
  • 为什么 C# 中同一类型的隐式和显式运算符不能共存? [复制]

    这个问题在这里已经有答案了 为什么同一类中两个相同类型的运算符 显式和隐式 不能共存 假设我有以下内容 public class Fahrenheit public float Degrees get set public Fahrenhe
  • 名称查找、实例化点 (POI) 和基本类型

    以下代码针对 X 进行编译 但不适用于 double struct X void foo double void foo X namespace NN struct A void foo A foo double error foo not
  • 为什么 std::function 不是有效的模板参数,而函数指针却是?

    我已经定义了名为的类模板CallBackAtInit其唯一目的是在初始化时调用函数 构造函数 该函数在模板参数中指定 问题是模板不接受std function作为参数 但它们接受函数指针 为什么 这是我的代码 include
  • 在 mvc4 中创建通用 mvc 视图

    我以前也提过类似的问题 没有得到答案 如何创建一个通用的 mvc4 视图 该视图可以显示传递给它的模型列表或单个模型 模型可以是个人 组织或团体 无论传递给它的是什么 如果您正在寻找类似的东西 model MyViewModel
  • 与 Entity Framework Core 2.0 的一对零关系

    我正在使用 C 和 NET Framework 4 7 将 Entity Framework 6 1 3 Code First 库迁移到 Entity Framework Core 我一直在用 Google 搜索 Entity Framew
  • 使用 boost 异步发送和接收自定义数据包?

    我正在尝试使用 boost 异步发送和接收自定义数据包 根据我当前的实现 我有一些问题 tcpclient cpp include tcpclient h include
  • 使用 IdentityDbContext 和 Code First 自动迁移表位置和架构的实体框架?

    我正在尝试使用 IdentityDbContext 类设置自动迁移更新 并将更改传播到整个数据库的实际 DbContext 在进入代码之前 在使用自动迁移实现 IdentityDbContext 时 我收到此错误 影响迁移历史系统表位置的自
  • 对多个对象使用事件处理程序

    我有 20 件物品List
  • 在 C 中使用 #define 没有任何价值

    If a define没有任何价值地使用 例如 define COMMAND SPI 默认值是0吗 不 它的评估结果为零 从字面上看 该符号被替换为空 然而 一旦你有了 define FOO 预处理器条件 ifdef FOO现在将是真的 另
  • 如何知道 HTTP 请求标头值是否存在

    我确信这很简单 但是却让我感到厌烦 我在 Web 应用程序中使用了一个组件 它在 Web 请求期间通过添加标头 XYZComponent true 来标识自身 我遇到的问题是 如何在视图中检查此组件 以下内容不起作用 if Request
  • Emacs C++,打开相应的头文件

    我是 emacs 新手 我想知道 是否有在头文件 源文件和相应的源文件 头文件之间切换的快捷方式 是否有像通用 emacs 参考卡那样的参考卡 Thanks There s ff find other file 您可以使用以下方法将其绑定到
  • IDisposable 的显式实现

    虽然有很多关于IDisposable在 SO 上找到 我还没有找到答案 我通常遵循这样的做法 当我的一个班级拥有一个IDisposable对象然后它也实现IDisposable并打电话Dispose在拥有的对象上 然而最近我遇到了一个类 它

随机推荐

  • 根据两者的坐标选择某个位置的设备并对其进行计数

    通过使用 SQL 地理的 STContains 函数 可以计算一组坐标是否在一个区域内 https stackoverflow com questions 64453530 match location between coordinate
  • str.split() 返回的 Pandas 排序列表

    给定 str 类型的 Pandas Series 我想对 str split 返回的结果进行排序 例如 给定系列 s pd Series abc def ghi ghi abc 我想得到 s2 pd Series abc def ghi a
  • 如何监听 Flutter 中 platformBrightness 的变化?

    我正在设置一个系统 当用户将系统主题更改为深色模式时 它会更改主题 并且使用 Flutter 它运行得很好 但是 当用户更改系统主题时 系统导航和状态栏不会改变其颜色 我在构建方法内的主页上运行了代码 但这似乎没有做到这一点 这是主页构建方
  • jQuery Panzoom 插件将图像定位在右侧,包含:'invert'

    我正在尝试使用jQuery 全景缩放 https github com timmywil jquery panzoom插件 基本上都很好 除了 我希望最初缩放大图像以适合容器 并且有contain invert 已启用 我已经适应了这个例子
  • Windows 批处理:杀死进程

    我正在运行多个具有相同名称的进程 我希望有一个选项可以从批处理脚本中杀死它们 我需要一些与 unix shell 命令非常相似的东西 kill 9 ps axuw grep MY PROCESS NAME awk print 2 有什么建议
  • 使用 OperatorPrecedenceParser 通过 FParsec 解析函数应用程序?

    问题类似于this one https stackoverflow com questions 7199589 parsing method arguments with fparsec 但我想使用函数应用程序来解析表达式OperatorP
  • Laravel 5 无限滚动 + 分页

    对于在 l5 中使用 paginate 进行无限滚动 我发现了很多文章 但它们都使用这个 paginate 函数 因为它们使用来自 db 的结果集 但我从 googlefontapi 获取数据作为 json 所以当我在 json 中使用 p
  • 如何在 SQL 中查找去年的同一个工作日?

    通常在销售报告等中 您需要将这一天与去年的同一天进行比较 但基于相同的 工作日 而不是 每月的某一天 例如 今天是 2013 年 6 月 20 日 星期四 我希望看到今天的销售额与去年同一个星期四的销售额 2012 年 6 月 21 日 而
  • 如何抑制由我​​无法更改的代码显示的对话框?

    我有一个来自第 3 方的 Inproc COM 服务器 我调用的函数之一如果捕获特定类型的错误 将显示错误消息对话框 问题是我正在尝试批量处理数据 而我正在使用的数据源导致错误对话框频繁弹出 如果它产生 1000 个对话框 这不会成为问题
  • javascript 内联有什么好的理由吗

    我一直在建立一个网站 在某个阶段 我注意到 IE 显示有点损坏 Chrome 几乎除了 body 标签 空 之外什么都没有渲染 而 FF 看起来都不错 在把键盘扔到房间里并用头撞鼠标后 我发现了问题 我在内联脚本块中留下了未关闭的 HTML
  • 运行 kubectl exec 时禁用 Kubernetes 上的网络日志

    跑步kubectl exec it
  • Oracle - 返回新插入的键值

    我们有一个带有主键的表 该表在插入时由表上的触发器填充 触发器从我们为表创建的序列中获取下一个序列号 并将其用作插入时键的值 现在我们希望能够在插入过程 PL SQL 中返回该值 类似于 SQL Server 中的 select scope
  • 为什么 .gitconfig [includeIf] 不起作用?

    系统设置 MacOS Catalina 10 15 6 gt git version git version 2 24 3 Apple Git 128 file gitconfig user name nickname email emai
  • 如何将大型对象/数组序列化为 JSON

    我的应用程序需要生成一个具有大对象的 jsondata数组类型的属性 数组在收集数据库输出时需要保留在内存中 并且某些属性只有在数组完成后才能确定 复杂性 数组是基于数字的 并且必须在 json 输出中出现 因此直接json encode
  • 使用内联“宽度”时省略像素

    这是一个有点愚蠢的问题 但对我来说理解很重要 据我所知 在 HTML 中使用内联 width 属性时 允许省略 px 除非使用百分比 20 否则将自动被理解为 20px 我的问题是 即使不需要 px 使用它是否错误 这段代码对我来说看起来非
  • 如何更改/usr/bin/env?

    我有使用的脚本 usr bin env ruby但我已经改用 Ruby Enterprise Edition 而不是 Ubuntu 服务器附带的默认 ruby 因此 当我尝试运行脚本时 它们会崩溃 如何添加 Ruby EE 路径 usr b
  • 如何使用 Apache POI 对 Excel 工作表中的行应用背景颜色?

    我正在使用 Apache POI 将数据导出到 Excel 工作表中 效果很好 问题是我需要在生成 Excel 工作表时为 Excel 工作表中的几行应用黄色背景颜色 请告诉我如何在生成时为 Excel 工作表的行应用背景颜色 谢谢 雷迪
  • 单父实体的核心数据性能

    我正在创建一个与核心数据一起使用的框架 在核心数据类上使用我的框架的要求之一是 您想要拥有框架功能的任何实体都需要是我提供给您的实体的子实体和子类 为此 我将该对象称为 Foo 今天我意识到 Core Data 将作为 Foo 子实体的所有
  • 在 Studio 中将大写字母转换为驼峰字母的简单方法?

    我有一堆 C 定义需要移植到 C C 定义是带下划线的大写字母 Net 枚举应该是驼峰式 有什么办法可以自动转换它们吗 一些我不知道的工具 或者也许是一个神奇的正则表达式 eg BOOTSTRAP NOT SUPPORTED gt Boot
  • 如何在进程的内存中搜索特定字符串?

    我对基础知识感兴趣 我不知道从哪里开始 我创建了这个测试程序 include