如何影响函数的地址?

use*_*748 3 c assembly

有没有一种方法来影响,设置或定义函数的(相对)地址?也许链接器脚本有任何可能性来确保函数abc()始终驻留在OFFSET + 0x0034C0(仅作为示例).我想以某种方式"控制"内存中函数的位置,使这些位置进行某种参数化.目前我正在使用gcc在我的x86上寻找一种方法.但是,真正的应用程序应该在嵌入式设备上运行.

问候

unw*_*ind 8

你可以使用gcc的链接器脚本魔术来做到这一点,是的.看看如何定义节放置,然后在源代码中放置指令以将函数放入您选择的部分.

完全不确定它是否可以在x86机器上运行,因为操作系统可能有...异议.这更适合直接嵌入式使用.

会是什么一个完整的操作系统上控制代码的位置?

  • @ user1192748 CRC校验的优点是您只需检查该值,如果不匹配则不运行.调用未定义的行为只是灾难的一个方法(即,如果"停止",您无法控制软件何时/何地/如何"停止") (3认同)