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 的相关文章

  • 从 Makefile 中的 C++FLAGS 中删除一个标志?

    我有一个 Makefile 其中包含另一个设置了很多默认值的 makefile 我无法编辑包含的 makefile 并且我想更改 makefile 中 C FLAGS 的值 即使它是在包含的 makefile 中设置的 具体来说 每当 de
  • 使用 ## 和 __LINE__ 创建 C 宏(与定位宏的标记串联)

    我想创建一个 C 宏来创建一个基于名称的函数 在行号上 我想我可以做类似的事情 真正的函数在大括号内有语句 define UNIQUE static void Unique LINE void 我希望能扩展到类似的内容 static voi
  • Xamarin 测试记录器选项有错误。无法记录自动化测试

    选项 gt Xamarin gt Xamarin Test Recorder 中的所有设置都有错误 我的桌面上安装了 Visual Studio 2015 企业版 以及 Xamarin 和 Xamarin Test Recorder 插件
  • ptrace和waitpid有什么关系?

    我正在练习使用ptrace但我不太了解它和之间的关系waitpid 这是我的测试程序 int main int argc char argv pid t pid 22092 if ptrace PTRACE ATTACH pid NULL
  • C# 中输入按键

    我尝试了这段代码 private void textBox1 KeyPress object sender KeyPressEventArgs e if Convert ToInt32 e KeyChar 13 MessageBox Sho
  • 使用正则表达式解析日志文件

    我目前正在为我们的内部日志文件 由 log4php log4net 和 log4j 生成 开发一个解析器 到目前为止 我有一个很好的正则表达式来解析日志 除了一个烦人的一点 一些日志消息跨越多行 我无法正确匹配 我现在的正则表达式是这样的
  • 公共基类打破了元组的空基类优化

    gcc 4 7 1 对元组进行空基类优化 我认为这是一个非常有用的功能 然而 这似乎有一个意想不到的限制 include
  • 如何检查给定调用站点的重载决策集

    如何检查重载解析集 我在多个调用站点中使用了 4 个相互竞争的函数 在一个调用站点中 我期望调用一个函数 但编译器会选择另一个函数 我不知道为什么 这不是微不足道的 为了了解发生了什么 我正在使用enable if disable if打开
  • 使用 (float&)int 进行类型双关可以正常工作,(float const&)int 会像 (float)int 一样转换吗?

    VS2019 发布 x86 template
  • 是否可以在对Where 的调用中调用命名方法?

    我试图从 RedGate 的这本免费电子书中了解 Linq 的一些性能影响ftp support red gate com ebooks under the hood of net memory management part1 pdf f
  • 指向 VLA 的指针

    你可能知道 VLA 的优点和缺点 https stackoverflow com a 3082302 1606345在 C11 中它们是可选的 我认为使 VLA 成为可选的主要原因是 堆栈可能会爆炸 int arr n where n 10
  • Bazel:将编译标志添加到默认 C++ 工具链

    我想向默认的 C 工具链添加一些编译器和链接器标志 以便我构建的所有目标 本地或导入 共享它们 我知道可以定义我自己的工具链 但我不想这样做 因为它非常复杂且容易出错 理想情况下我想要这样的东西 cc toolchain cc defaul
  • C++ 更改屏幕方向问题 -- DEVMODE dmDisplayOrientation DMDO_90 undefined

    我似乎无法编译一些 C 代码 我正在翻转显示器的方向 但 VS2008 告诉我 DMDO 90 和 DMDO 270 无法识别 error C2065 DMDO 90 undeclared identifier error C2065 DM
  • C# 从今天起 30 天

    我需要我的应用程序从今天起 30 天后过期 我会将当前日期存储在应用程序配置中 如何检查应用程序是否已过期 我不介意用户是否将时钟调回来并且应用程序可以正常工作 用户太愚蠢而不会这样做 if appmode Trial string dat
  • 什么是 C++11 扩展 [-Wc++11-extensions]

    我需要一些帮助来了解此错误发生的位置 警告 非静态数据成员的类内初始化是 C 11 扩展 Wc 11 extensions 这是它来自的代码部分 typedef struct Hand bool straight false bool fl
  • 为什么在 C++ 类中的数据成员上使用像 m_ 这样的前缀?

    许多 C 代码使用语法约定来标记数据成员 常见的例子包括 m memberName对于公共成员 在所有使用公共成员的情况下 memberName对于私人会员或所有会员 其他人尝试强制使用this gt member每当使用数据成员时 根据我
  • 曲线/路径骨架二值图像处理

    我正在尝试开发一个可以处理图像骨架的路径 曲线的代码 我想要一个来自两点之间骨架的点向量 该代码在添加一些点后结束 我没有找到解决方案 include opencv2 highgui highgui hpp include opencv2
  • OpenCV 仅围绕大轮廓绘制矩形?

    第一次发帖 希望我以正确的方式放置代码 我正在尝试检测和计算视频中的车辆 因此 如果您查看下面的代码 我会在阈值处理和膨胀后找到图像的轮廓 然后我使用 drawContours 和矩形在检测到的轮廓周围绘制一个框 我试图在 drawCont
  • 在地图上使用 find

    如何使用 find 和 aconst iterator如果你有一个地图定义为 typedef std pair
  • 使用 ImageResizer 获取图像尺寸的最佳方法

    我正在将现有的 MVC 4 网站从自制用户文件上传切换为在上传时使用 ImageResizer 调整文件大小 我在文档中看到我不应该使用 System Drawing 但我无法找出任何其他获取图像尺寸的方法 尺寸是来自原始图像还是调整大小的

随机推荐

  • 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 我怎样才能尽可能快地异步执行此操