C++ 用于编译时注入插装代码的Pin-Like工具

C++ 用于编译时注入插装代码的Pin-Like工具,c++,c,llvm,intel-pin,C++,C,Llvm,Intel Pin,正如您可能知道的,是一个动态二进制检测工具。例如,通过使用Pin,我可以在我的应用程序中对每个加载和存储进行检测。我想知道是否有类似的工具在编译时注入代码(使用更高级别的信息,不需要我们编写LLVM过程),而不是像Pin一样在运行时注入代码。我对LLVM的这种工具特别感兴趣 您可以自己编写,并将它们应用到代码中,以便在编译时“插入”它。这些在LLVM-IR上工作并生成LLVM-IR,因此对于某些任务来说这是一件非常自然的事情,而对于其他任务来说,这可能会很麻烦或困难(因为LLVM和IR以及源语言

正如您可能知道的,是一个动态二进制检测工具。例如,通过使用Pin,我可以在我的应用程序中对每个加载和存储进行检测。我想知道是否有类似的工具在编译时注入代码(使用更高级别的信息,不需要我们编写LLVM过程),而不是像Pin一样在运行时注入代码。我对LLVM的这种工具特别感兴趣

您可以自己编写,并将它们应用到代码中,以便在编译时“插入”它。这些在LLVM-IR上工作并生成LLVM-IR,因此对于某些任务来说这是一件非常自然的事情,而对于其他任务来说,这可能会很麻烦或困难(因为LLVM和IR以及源语言之间的差异)。视情况而定

您可以自己编写,并将它们应用到代码中,以便在编译时“插入”它。这些在LLVM-IR上工作并生成LLVM-IR,因此对于某些任务来说这是一件非常自然的事情,而对于其他任务来说,这可能会很麻烦或困难(因为LLVM和IR以及源语言之间的差异)。视情况而定

好像我还不知道,天才:)!我说的是一种工具,它可以在更高的层次上为您实现这一点,例如,我告诉该工具在每次加载时这样做,在每个存储时这样做。当然我可以自己写通行证,但这不是我的问题。所以为什么不采取这种方法呢?你有什么想法更适合你的需要?因为这比让工具为我写通行证更困难。我只需要说它是为了某个事件,就像Pin的情况一样。所以基本上我想要一个可以为我们创建通行证的工具。根据我对LLVM通行证的经验和我对Pin API的有限经验,它们非常相似,我不认为有这么大的区别。使用C++ LC++ C++ Maul+C++LIVM C++ API代码,可以为你提供的C/C++代码构造IR(这是否有意义?),如果像大多数凡人一样,你觉得在C/C++中编写代码比调用C++ API更容易为它生成IR,这就非常方便了。我说的是一种工具,它可以在更高的层次上为您实现这一点,例如,我告诉该工具在每次加载时这样做,在每个存储时这样做。当然我可以自己写通行证,但这不是我的问题。所以为什么不采取这种方法呢?你有什么想法更适合你的需要?因为这比让工具为我写通行证更困难。我只需要说它是为了某个事件,就像Pin的情况一样。所以基本上我想要一个可以为我们创建通行证的工具。根据我对LLVM通行证的经验和我对Pin API的有限经验,它们非常相似,我不认为有这么大的区别。C++ C++ C++语言的一个好技巧是使用LLC-Malth+C++来生成LVVM C++ API代码,为你提供的C/C++代码构造IR(这有意义吗?),如果像大多数凡人一样,你发现在C/C++中代码比调用C++ API来生成它更容易。