2

我有程序,其结构定义如下:

struct foo {
    int magic;
    int bar;
};

当我创建这个结构的对象时,我总是做以下事情:

object.magic = 654321;

这个程序最终会随着核心转储的生成而死掉。

是否有可能使 C++ 程序自动计算所有值并找到所有条形值,例如求和?

PS。到目前为止,我已经调查过,我不能简单地将核心作为二进制打开并搜索 654321 转换为十六进制(在十六进制编辑器中找不到)。Wikipedia 说现代 unix 系统使用 ELF,但不幸的是我不了解所有标头系统,因为我是一个非常缺乏经验的程序员。

有没有办法在不学习整个标题结构的情况下获得这个栏?

4

1 回答 1

5

到目前为止,我已经调查过,我不能简单地将核心作为二进制打开并搜索 654321 转换为十六进制(在十六进制编辑器中找不到)。

我希望这会产生一些匹配。确保您在进行搜索时得到了正确的字节顺序

注意无论您使用哪种方法来执行此操作,它都必然是一个近似值。您不能指望这样的搜索总是能找到所有实例foo而不是其他任何实例(尤其是在导致进程崩溃的事件之后)。

于 2012-05-15T16:34:42.053 回答