计算不带符号的可执行文件中的函数调用 table

Count function calls in an exectuable without symbol table

我目前正在寻找一种快速实现我的想法的方法,为此我需要在运行时对二进制 executable 中调用的所有函数进行计数。 据我所知,Intel 的 PIN 工具可以计算例程调用和这些例程中的指令数量(参见此处:https://software.intel.com/sites/landingpage/pintool/docs/67254/Pin/html/index.html#ProcInstrCount)。但是当符号 table 不可用时会发生什么? PIN 可以解决这个问题吗?

我不需要例程的名称,它们的起始地址就足够了。有没有我可以用来访问此类信息的工具?

一点背景知识:我想在运行时对某些函数调用进行集群。例如,我想将所有周期性函数调用聚集在一个 "update" 集群中。此外,我希望能够判断哪些功能是由于用户操作(例如按下按钮)而被调用的,然后再次将这些功能聚集在一起。最后,我想对何时执行哪些功能有一个相当清晰的印象。这甚至可能吗?

感谢任何建议

我通过使用 frida (http://www.frida.re) 实现了我的目标。非常酷和强大的工具!