首页 > 解决方案 > 将状态存储在 golang 二进制文件中

问题描述

我正在为机器上没有任何控制和互联网连接的客户端开发本地解决方案。

该解决方案将根据购买的许可证的允许请求(REST API 调用)数量进行货币化。因此,目前我们将请求计数存储在文件系统本身的加密文件中。但是这个解决方案并不完美,因为文件可以复制到某个地方,然后在请求配额结束时替换。此外,如果文件被删除,则需要支持人员进行手动干预。

我正在寻找一种将状态/数据存储在二进制文件中并在运行时更新它的解决方案(考虑以二进制文件本身更新的使用计数)

寻找更好的方法。

二进制文件也应该从之前存储的状态开始

有没有办法做到这一点?

PS我知道写入二进制文件不会解决问题,但我认为它会通过增加可以存储状态的位置的排列和组合的数量来增加难度,因为你可以更改可执行文件并不是一个常识如果有人试图弄乱系统,那将是寻找状态的最后一个地方(默默无闻的安全性)

标签: gobinaryfilesbinarywriter

解决方案


有没有办法做到这一点?

不。

(至少没有官方的、可移植的方式。当然您可以修改二进制文件并更改例如数据或 BSS 段,但这很难,依赖于操作系统并且不能解决您的问题,因为它与外部文件有相同的问题:您可以保留原始可执行文件并从该可执行文件重新开始。有些事情根本无法从技术上解决。)


推荐阅读