如何在特定偏移量处存储变量

时间:2012-04-19 10:34:54

标签: c++ variables offset portable-executable

有没有办法在PE文件中的特定偏移处存储变量(在C ++中)? 类似的问题:我可以定义存储在数据部分中的变量的特定顺序吗?

我听说有些程序可以在其可执行文件中存储设置。

2 个答案:

答案 0 :(得分:1)

“最简单”的方法是使用资源部分。您不需要偏移量:LoadString代替ID,这比重建更稳定。但是,顾名思义,这只是Load部分。 Windows在执行时会锁定您的可执行文件,这会使SaveString部分批次变得更难。

并不是说锁定并不重要,因为您的程序可能存储在\Program Files\中,用户无论如何都无法写入。

答案 1 :(得分:1)

根据数据的大小,您可以使用PE图像的弃用(未使用)区域(如MS-DOS Stub)来存储变量。许多这些未使用区域的偏移是众所周知的(因为它们是由PE格式定义的)。