更新变量以增加Bytearray大小

时间:2015-06-29 06:44:52

标签: python bytearray

我目前正在以编程方式尝试操作PE文件的工作。到目前为止,该方法一直是从原始字节数组中解析出所有信息(标题,标题中的变量等),代表PE文件。

因此,我目前有大约70个变量,每个变量指向数组的不同字节片,表示有关PE的数据。问题来自于尝试现在操纵数组,并更改文件。

假设我希望在字节数组的任意点插入/添加数据。 35个变量在它之前,而35个变量在插入点之后。较早的变量不受影响。更新这35个变量的最佳方法是将它们的位置偏移N个字节?

变量具有的当前信息是a)它们在它们所在位置的值(通常是4字节的小端值),以及b)它们与PE文件开头的绝对偏移量。

干杯。

1 个答案:

答案 0 :(得分:0)

我认为您应该使用struct模块中的namedtuplecollections。将逻辑单位收集到namedtuple并使用struct打包/解包这些namedtuple。这是最具可读性的一个'并且'可维护'如何实现它。

要记住的另一件事是以二进制模式读取文件并使用read代替readlinestell以及seek来只读取您的内容利益。