C# 替换二进制文件中的 HEX

2024-02-25

我有一个二进制文件,其中有一些应该更改的值。 更准确地说,在文件的两个部分,一开始有两个十六进制值

66 73 69 6D 35 2E 36 39

应该改为什么

4D 53 57 49 4E 34 2E 31

我怎样才能尽可能快地异步执行此操作?我已经将整个文件读入 byte[] 数组,但该类没有搜索或替换功能。


这是我写的一个方法,您可以用它来查找您的位置byte[]这些字节是您要查找的字节。

/// <summary>
/// Searches the current array for a specified subarray and returns the index
/// of the first occurrence, or -1 if not found.
/// </summary>
/// <param name="sourceArray">Array in which to search for the
/// subarray.</param>
/// <param name="findWhat">Subarray to search for.</param>
/// <param name="startIndex">Index in <paramref name="sourceArray"/> at which
/// to start searching.</param>
/// <param name="sourceLength">Maximum length of the source array to search.
/// The greatest index that can be returned is this minus the length of
/// <paramref name="findWhat"/>.</param>
public static int IndexOfSubarray<T>(this T[] sourceArray, T[] findWhat,
        int startIndex, int sourceLength) where T : IEquatable<T>
{
    if (sourceArray == null)
        throw new ArgumentNullException("sourceArray");
    if (findWhat == null)
        throw new ArgumentNullException("findWhat");
    if (startIndex < 0 || startIndex > sourceArray.Length)
        throw new ArgumentOutOfRangeException();
    var maxIndex = sourceLength - findWhat.Length;
    for (int i = startIndex; i <= maxIndex; i++)
    {
        if (sourceArray.SubarrayEquals(i, findWhat, 0, findWhat.Length))
            return i;
    }
    return -1;
}

/// <summary>Determines whether the two arrays contain the same content in the
/// specified location.</summary>
public static bool SubarrayEquals<T>(this T[] sourceArray,
        int sourceStartIndex, T[] otherArray, int otherStartIndex, int length)
        where T : IEquatable<T>
{
    if (sourceArray == null)
        throw new ArgumentNullException("sourceArray");
    if (otherArray == null)
        throw new ArgumentNullException("otherArray");
    if (sourceStartIndex < 0 || length < 0 || otherStartIndex < 0 ||
        sourceStartIndex + length > sourceArray.Length ||
        otherStartIndex + length > otherArray.Length)
        throw new ArgumentOutOfRangeException();

    for (int i = 0; i < length; i++)
    {
        if (!sourceArray[sourceStartIndex + i]
            .Equals(otherArray[otherStartIndex + i]))
            return false;
    }
    return true;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 替换二进制文件中的 HEX 的相关文章

  • C修改printf()输出到文件

    有没有办法修改printf为了将字符串输出到文件而不是控制台 我尝试在互联网上查找一些内容 发现了类似的电话dup dup2 and fflush这可能与此有关 EDIT 也许我不清楚 问题是这是C考试问题 问题如下 解释一个通常将字符串输
  • 切换图片框可见性 C#

    为什么图片框控件的可见性属性在这里不起作用 我最初将它们设置为 false 以便在屏幕加载时它们不可见 但后来我想切换这个 我已完成以下操作 但似乎不起作用 这是一个 Windows 窗体应用程序 private void Action w
  • Android NDK C++“wstring”支持

    我有用 C 编写的源代码 lib 现在我想在 Android NDK 项目 NDK 6 中编译并使用相同的源代码 lib 我能够编译大多数 C 文件 除了基于 std wstring 的功能 在 Application mk 中 当我指定时
  • 在 GCC 和 Clang 下,使用 lambda 的简单 RAII 包装器的复制初始化意外失败

    我在创建一个简单的 RAII 包装器时遇到了一个意想不到的问题 更不用说下面代码的逻辑不完整性了 复制构造函数和赋值运算符未删除等 这意味着是一个SSCCE 令我印象深刻的是复制初始化我的包装器与临时 lambda 的结果会导致编译错误 而
  • rand() 播种与 time() 问题

    我很难弄清楚如何使用 rand 并使用 Xcode 用 time 为其播种 我想生成 0 到 1 之间的随机十进制数 该代码为我提供了元素 1 和 2 看似随机的数字 但元素 0 始终在 0 077 左右 有什么想法吗 我的代码是 incl
  • F10键没被抓住

    I have a Windows Form and there overriden ProcessCmdKey However this works with all of the F Keys except for F10 I am tr
  • 将成员函数作为参数传递/c++

    我想用 C 实现一个类b可以通过封装该迭代器类型的成员集进行某种迭代 喜欢 b object for each x do function f so 函数 f会得到每个人的x成员并做任何事情 比方说 void function f x me
  • 抽象类或接口。哪种方式是正确的?

    有两种方法可以选择抽象类或接口 微软解决方案和Oracle解决方案 微软 设计指南 请使用抽象 在 Visual Basic 中为 MustInherit 类而不是接口来将协定与实现分离 http msdn microsoft com en
  • 使用scanf()时如何区分整数和字符

    我只是使用该功能scanf 代码如下 scanf d a printf d a 当我输入1时 它会像我想要的那样打印1 但即使我输入 1a 它也会像以前一样打印 1 当用户输入非整数时 例如 2 3 12ab 1 a 我想向用户显示 输入整
  • 线程安全的 C++ 堆栈

    我是 C 新手 正在编写一个多线程应用程序 不同的编写者将对象推入堆栈 读者将它们从堆栈中拉出 或至少将指针推入对象 C 中是否有任何内置结构可以在不添加锁定代码等的情况下处理此问题 如果没有 那么 Boost 库呢 EDIT 你好 感谢您
  • 为什么重载方法在 ref 仅符合 CLS 方面有所不同

    公共语言规范对方法重载非常严格 仅允许根据其参数的数量和类型来重载方法 如果是泛型方法 则根据其泛型参数的数量进行重载 根据 csc 为什么此代码符合 CLS 无 CS3006 警告 using System assembly CLSCom
  • 数据损坏 C++ 和 Python 之间的管道

    我正在编写一些代码 从 Python 获取二进制数据 将其通过管道传输到 C 对数据进行一些处理 在本例中计算互信息度量 然后将结果通过管道传输回 Python 在测试时 我发现如果我发送的数据是一组尺寸小于 1500 X 1500 的 2
  • C# 中处理 SQL 死锁的模式?

    我正在用 C 编写一个访问 SQL Server 2005 数据库的应用程序 该应用程序是数据库密集型的 即使我尝试优化所有访问 设置适当的索引等 我预计迟早会遇到死锁 我知道为什么会发生数据库死锁 但我怀疑我能否在某个时候发布不发生死锁的
  • 从包含大量文件的目录中检索文件

    我的目录包含近 14 000 000 个 wav 格式的音频样本 所有普通存储 没有子目录 我想循环浏览文件 但是当我使用DirectoryInfo GetFiles 在该文件夹上 整个应用程序冻结了几分钟 可以用另一种方式完成吗 也许读取
  • 如何将字符串转换为 Indian Money 格式?

    我正在尝试将字符串转换为印度货币格式 例如如果输入为 1234567 则输出应为 12 34 567 我编写了以下代码 但它没有给出预期的输出 CultureInfo hindi new CultureInfo hi IN string t
  • 用 pandas DataFrame 替换 mysql 数据库表中的行

    Python 版本 2 7 6 熊猫版本 0 17 1 MySQLdb 版本 1 2 5 在我的数据库中 PRODUCT 我有一张桌子 XML FEED 表 XML FEED 很大 数百万条记录 我有一个 pandas DataFrame
  • 如何在 VS Code 中为 CMake 项目设置 C/C++ IntelliSense?

    我正在尝试使用 libTooling 编写一个工具 我对其进行了设置 以便它可以使用 LLVM 文档中的示例进行编译 然而 C C IntelliSense 似乎不适用于 CMake 项目 我的工具位于
  • asp.net c# 防止在从服务器端代码更改索引时触发 selectedindexchanged 事件

    我在同一个 aspx 页面上有两个下拉列表控件
  • 无法通过 LINQ to Entities 使用某些功能?

    我正在尝试使用 LINQ 查询在项目上实现搜索功能 由于数据有时包含带有重音符号和其他符号的字符 因此我创建了一种方法来删除这些字符以进行搜索 这是我的代码 var addresses from a in db Addresses join
  • 如何从函数返回矩阵(二维数组)? (C)

    我创建了一个生成宾果板的函数 我想返回宾果板 正如我没想到的那样 它不起作用 这是函数 int generateBoard int board N M i j fillNum Boolean exists True initilize se

随机推荐

  • MYSQL 包括项目计数为零的日期值

    我想统计购买总数以及一段时间内按 item id 的购买次数 在此示例中 用户可以拥有商品 并且其他用户可以购买这些商品 所有者不能购买自己的物品 我遇到的问题是如何在没有购买的日子以及正整数计数的日子中返回计数为 0 的结果 这是我的表格
  • 在控制器中调用异步方法

    我有一个控制器 其内容如下 public MyController Controller public ActionResult DoSomething CallSomeMethodWhichDoesAsyncOperations retu
  • Import-Module with -force 删除导入模块功能?

    我有 ModuleA 它使用下面的代码从模块 ADAutoDeployUtilities 和 Common LoggingNotifications 导入函数 但是 当我尝试使用 force 导入 Common LoggingNotific
  • 在 PATH 中找不到程序“g++”

    我在将 openCV 本机 C 添加到我的项目时遇到问题 首先它只是说 在路径中找不到程序 g 在路径中找不到程序 gcc 但是当我右键单击我的项目 gt Android Tools gt Add Native 时 出现更多错误 这是错误
  • 从服务器 xamarin.android 收到的证书无效

    所以这让我发疯了一天 我正在尝试与 xamarin android 上的 REST API 进行通信 但由于某种原因我收到此错误 InnerException Mono Security Protocol Tls TlsException
  • 使用静态构造函数(Jon Skeet Brainteaser)

    作为一个相对新手 我尝试尽可能多地阅读有关特定主题的内容 并尽可能多地测试 编写代码 我正在看其中之一乔恩斯脑筋急转弯 http www yoda arachsys com csharp teasers html 问题 2 我的输出与答案不
  • Pandas 从两列之间的操作开始

    我有一个包含两列的 pandas 数据框 我需要检查 A 列每行的值是一个以 B 列相应行的值开头的字符串 反之亦然 似乎系列方法 str startswith无法处理矢量化输入 因此我需要压缩列表理解中的两列并创建一个新的pd Serie
  • Struts2 预选复选框列表

    我已经尝试了我发现的类似情况下的所有解决方案 但没有运气 My jsp
  • 如何将 Mapsui 2.0.1 与 Xamarin.Forms 结合使用?

    据我了解 从 Mapsui 2 0 版本开始 我们可以在 Xamarin Forms 中使用 Mapsui 目前 Mapsui 版本为 2 0 1 Xamarin Forms 为 4 6 我正在寻找一个简单的示例或教程来指导我如何将 Map
  • 没有vhook的ffmpeg水印? [复制]

    这个问题在这里已经有答案了 由于 vhook 子系统已从最新版本的 FFMPEG 中删除 如何为视频添加水印 我需要能够覆盖具有背景透明度的 PNG 使用 Xuggler 我们可以在 java 中做到这一点 使用 IMediaTool 编码
  • Node.js Web 应用程序浏览器兼容性

    我听说node js是构建实时Web应用程序 聊天 实时提要等 的理想框架 那么我猜它涉及nodejs和客户端浏览器之间的大量套接字io连接 在客户端 我是否必须使用 websocket html5 才能与 node js 进行通信 如果是
  • 如何在 Android 上的 RoomDB 中保存嵌套 List

    嘿谷歌有一个使用 Relation的例子 Entity public class Pet int userId String name other fields public class UserNameAndAllPets public
  • 在 Firebase Auth#onAuthStateChanged 上获取 Facebook/Google 访问令牌?

    如果我使用 Auth signInWithPopup 进行身份验证 我会得到包含凭据的结果 如何在 Auth onStateChanged 的 观察者内部获得相同的凭据 您无法从 Auth onStateChanged 获取凭据 您只能从
  • 在父级或祖先上下文中找不到方法

    我已经处理这个问题有一段时间了 并查看了我能找到的所有相关问题 例如 this one https stackoverflow com questions 34567192 could not find method addcontactv
  • ElementNotInteractableException:消息:尝试使用 Selenium 和 Python 单击元素时,元素无法滚动到视图中

    我有这个代码 driver switch to window window after try myElem WebDriverWait driver delay until EC presence of element located B
  • JQuery Mobile 自定义主题按钮

    我刚刚开始使用 jquery 移动自定义主题而不是默认主题之一 很多问题 但当前的一个问题是动态创建的按钮无法按预期工作 我有一些动态 html 通过 container append 注入 div a class view it href
  • Java 17 是否支持任何 OSGi 版本?

    我已经使用 Java17 运行了 OSGi 捆绑包 并在启动时得到了以下结果 Java 17 还不支持 OSGi 吗 org osgi util tracker ServiceTracker getServices 为空 None
  • 从 HttpWebResponse 中检索多个“Set-Cookie”标头

    我正在尝试以编程方式登录雅虎开发人员 API 我遇到了一个障碍 无法访问 HttpWebResponse 的所有 Set Cookie 标头 Fiddler 在响应的标头中向我显示了以下 cookie Set Cookie B 733jjv
  • iTunesArtwork 重大发布提交至应用商店

    我有一个在 Xcode4 中内置的 iOS 4 3 iPhone 应用程序 我通过应用程序加载器应用程序提交该应用程序 我不断收到此错误 在顶级应用程序包装器下找不到 Info plist 中指定的图标 iTunesArtwork 我确实有
  • C# 替换二进制文件中的 HEX

    我有一个二进制文件 其中有一些应该更改的值 更准确地说 在文件的两个部分 一开始有两个十六进制值 66 73 69 6D 35 2E 36 39 应该改为什么 4D 53 57 49 4E 34 2E 31 我怎样才能尽可能快地异步执行此操