如何复制和重命名目标文件中的符号?

阿杰

我有一个目标文件(无法访问源文件)。

出于充分的原因,我需要复制一个呼叫路径。例如,此目标文件可能具有以下符号:

_FuncA _FuncB _FuncC

_FuncA呼叫_FuncB,依次呼叫_FuncCFuncC可能会增加C源代码中定义的全局变量counter

我想修改这个目标文件和复制_FuncA_FuncB_FuncC

结果将是带有以下符号的目标文件:

_FuncA _FuncB _FuncC _FuncA_copy _FuncB_copy _FuncC_copy

_FuncA_copy需要通话_FuncB_copy,依次通话_FuncC_copy而且我_FuncC_copy仍然需要引用相同的全局变量counter并将其递增。

到目前为止,我有:

似乎该objcopy命令将允许您使用flag添加新符号--add-symbol <name>=[<section>:]<value>[,<flags>]

这似乎是它会帮助我创造_FuncA_copy_FuncB_copy_FuncC_copy不过反正是有修改函数调用内部_FuncA_copy_FuncB_FuncB_copy呢?

有一个更好的方法吗?

阿杰

我发现的解决方案是编写LLVM Pass共享模块,该模块可以插入LLVM的优化器工具,该工具接收字节码对象并输出字节码对象。

http://llvm.org/docs/WritingAnLLVMPass.html

LLVM传递是可以创建的自定义优化器,并且可以在其中通过优化器循环所有函数符号,并根据需要对其进行重命名,并更新对该函数的所有引用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用 Python 复制和重命名目录中的所有文件?

复制文件并重命名目标文件

同时在ant中复制和重命名目录

如何重命名目录中的多个文件

如何重命名目录中的多个文件?

如何使用当前目录重命名目录中的文件

如何同时重命名目录中的多个文件

重命名目录和部分文件重命名

批量重命名目录中的文件

Powershell 重命名目录中的文件

Python,重命名目录中的文件

如何批量复制和重命名文件?

如何在外部目标文件中调用重命名的符号?

使用Gradle在复制过程中重命名目录

Powershell重命名目录中的所有文件,重命名值来自被重命名的文件

复制和重命名文件

复制和重命名文件

如何在不重命名目录的情况下重命名多个文件夹中的文件?

如何根据目录和子目录中的txt文件复制和重命名文件

如何重命名目录内不同文件夹中的文件?

如何重命名目录中所有带有特殊字符和空格的文件?

重命名目录和子目录中的所有文件

Xcode 6如何重命名复制的目标

根据指令文件重命名目录中的文件

如何通过在当前名称中添加值来重命名目录中的文件?

如何在Linux中以某种模式重命名目录中的多个文件?

如何使用“:”和文件名中的递增数字复制和重命名文件

如何根据原始文件的更改重命名复制目录中的文件和子目录?

如何重命名目录中的所有文件并添加当前unix日期的前缀