我想重写目标文件,以便将大多数函数的地址更改为无操作函数。我怎么能这样做?
更多上下文:在C ++中,我想默认自动模拟所有函数。要从a()
致电a() {}
和b()
致电b() {}
,让a()
真正致电replacement() {}
,又拥有b()
打电话(相同)replacement() {}
。
到目前为止我考虑过的事情:
objcopy --redefine-syms=filename
- 这会更改符号的名称,而不是地址。--wrap
参数 - 这需要为我想要包装的每个东西编译一个不同的符号__wrap_NameOfWrappedThing
,并且通常看起来不会很好地缩放。