对十六进制二进制补丁程序macOSX进行编码
我的问题如下 我对编程非常陌生,但我非常希望能够为我的应用程序创建一个补丁程序,以防我需要编辑一组都有相同错误的应用程序 我需要的是构建一个命令行实用程序或cocoa应用程序,该应用程序将打开一个二进制文件,在其中搜索十六进制字符串,然后用更新版本替换该字符串,然后保存文件并退出 现在,我希望能为自己创建一个小cocoa应用程序,例如打开一个.app导航到二进制文件打开它,执行搜索和替换功能并保存结果 这将是额外的方便更新文件,我已经发送给其他人,因为他们可以只修补他们的旧版本与此工具和改进将得到实施 同样重要的是,“补丁程序”不包括资源中的原始二进制文件,因此补丁程序非常小。随着我的项目变得越来越大,我当然不想发送大而笨重的补丁 因此,基本上,如果有人能给我概述一下我如何才能得到我需要的东西,我将非常感激 我将使用MacOSX10.8.4和最新的开发工具/xcode等 这似乎是一个很容易的概念,我相信它很容易做到。我只是不知道怎么做,如果有人能帮我,请把你认为有帮助的东西贴出来,就像我能得到的任何信息一样:) 非常感谢 编辑:- 基本上,我希望补丁有一个十六进制值字符串 B0 01 c3 0f 85 00 00 75 5b 90 20 这足够长,我当然会在构建补丁之前测试它,然后替换相关字节 原件:B001 c3 0f 85 00 00 75 5b 90 20 已修补:B0 01 c3 0f 84 00 00 74 5b 20 20 因此,它将搜索一个唯一的十六进制值字符串,并用编辑过的字符串替换它 希望能把事情弄清楚对十六进制二进制补丁程序macOSX进行编码,c,xcode,macos,cocoa,offset,C,Xcode,Macos,Cocoa,Offset,我的问题如下 我对编程非常陌生,但我非常希望能够为我的应用程序创建一个补丁程序,以防我需要编辑一组都有相同错误的应用程序 我需要的是构建一个命令行实用程序或cocoa应用程序,该应用程序将打开一个二进制文件,在其中搜索十六进制字符串,然后用更新版本替换该字符串,然后保存文件并退出 现在,我希望能为自己创建一个小cocoa应用程序,例如打开一个.app导航到二进制文件打开它,执行搜索和替换功能并保存结果 这将是额外的方便更新文件,我已经发送给其他人,因为他们可以只修补他们的旧版本与此工具和改进将得
海市蜃楼啊,旧的二进制搜索。幸运的是,有一个解决方案。二进制搜索和替换似乎不太可能适用于任意可执行文件。为什么不直接用
diff
或类似的方法计算一个显式补丁呢?这听起来对我来说非常危险。您如何知道现有号码是您要替换的号码的唯一实例。假设您将0xabcd替换为0xbeef。您如何知道0xabcd不存在于您不想替换的位置。也许我误解了这个问题?@KerrekSB:我想你是在看一种不同类型的“二进制搜索”。OP希望在二进制文件中查找内容,而不是使用“二进制搜索”方法(使用m=(h+l)/2
,然后根据找到的值将l
或h
替换为m
,直到找到值或l>=h
)。支持增量更新,可能是一个比自己滚动更可靠、用户友好的解决方案