如何从C中的pe(exe)文件中删除一些数据

发布于 2024-09-26 20:03:30 字数 104 浏览 8 评论 0原文

在第一个exe中,我定义了带有一些特殊字节作为标签的字符数组,我将其从另一个exe映射到内存,找到所需的标签并放入新数据,但该数据可能比定义的数组短,所以我想剪切这个数组需要的大小!我该怎么做?

in first exe i have defined array of char with some special bytes as label, i mapping it to memory from another exe, finding needed label and putting in it new data, but this data could be shorter then defined array, so i want to cut this array to needed size! how can i do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最舍不得你 2024-10-03 20:03:30

没有什么好的简单方法可以剪切 PE 文件片段。

明显的解决方案是在原始(用您的术语第一个)exe中额外定义一个length字段,并用另一个标签标记它。然后第二个 exe 的额外工作是将实际数据长度写入该字段。


编辑:如果切割是您的主要目标,您还必须记住:

  • PE 的控制总和将会改变。不过,控制和字段在 PE 标头中的位置并不难找到。
  • PE 文件已对齐。所有部分均对齐。对齐方式也可以在标题中找到。
  • 如果你砍掉其中的一部分,将会造成巨大的后果。看一下PE文件头结构。

header

参考:
http://msdn.microsoft.com/en-us/library/ms809762。 ASPX

There is no fine and simple way to cut out pieces of PE file.

Obvious solution is to additionally define a length field in the original (in your terms first) exe and mark it with another label. Then additional work of second exe would be to write to this field actual data length.


EDIT: If cutting is your primary goal you must also keep in mind that:

  • Control sum of a PE will change. Location of control sum field in PE header is not hard to find though.
  • PE file is aligned. All sections are aligned. The alignment could be found in the header too.
  • If you cut one section it would cause great consequences. Take a look at PE file header structure.

header

Reference:
http://msdn.microsoft.com/en-us/library/ms809762.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文