gpt4 book ai didi

c++ - 通过 C a #define(或其他代码/编译时解决方案)省略核心转储?

转载 作者:行者123 更新时间:2023-12-01 12:46:28 25 4
gpt4 key购买 nike

我知道操作系统有时会在发送信号时(通常在崩溃时)生成核心转储。有没有办法通过 #define 或编译器标志从 C/C++ 内部告诉操作系统不,或者不知何故 特别限量可以通过该可执行文件生成核心转储?我知道控制它的唯一方法是通过 ulimit -c。我的测试系统是Linux。无核心转储不需要在系统范围内实现,仅适用于特定程序。

对于感兴趣的,这与CVE-2019-15947有关。在 Bitcoin Core 的 bitcoin-qt 中仍然没有解决方案。

部分讨论位于 Bitcoin GitHub bug tracking page .

另一种选择是对内存中的 wallet.dat 进行混淆和/或加密,这样就不容易通过核心转储来检索它。请注意,第二个选项已经可以完成,但默认情况下未启用。

最佳答案

根据您对“代码中/编译时”的定义,您可以安装信号处理程序并在接收到该信号时删除内存。

但是,崩溃是由内核处理的,而不是编译器或可执行文件。无论您做什么,您都无法阻止内核将内存从可执行文件内部转储到内核中。

因此,另一个选项听起来最好。

关于c++ - 通过 C a #define(或其他代码/编译时解决方案)省略核心转储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60662162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com