我使用Python来分析二进制文件。我一直在使用Debugger进行动态分析(即运行应用程序并使用断点以获得运行时执行)。但是,如果我可以使用一些二元仪器fremework,可以改善结果 别针. 。引脚以C ++开发,并作为封闭源(仅DLL)提供。我们写的东西叫做Pintools确实描述了 在哪里和什么 我们想拦截。我想将PIN功能放置到Python中,以便继续使用Python。我知道“ CTYPES”和BOOST-PYTHON。

我的问题是:为了使用PIN,我们编写Pintool并运行带有PIN和PINTOOL的Bibnary可执行文件(就像使用JIT运行应用程序一样)。现在,我不知道我是否可以使用CTYPES等来导入PIN功能,并使用此Python代码来动态分析二进制。您能否提供有关如何执行此任务的一些建议或指南。

因此,在Nut-N-Shell中,我想创建一个Python界面(包装器)来固定框架。

有帮助吗?

解决方案

查看ProcessTap项目。似乎可以准确地实现您要寻找的内容: http://code.google.com/p/processtap/

其他提示

我最近在考虑这个问题,尽管我还没有研究它,但我会处理这样的问题:写一个初始化后,启动了一个嵌入式的python解释器,并导入一个python模块。我会考虑使用SWIG为您要使用的所有PIN API调用生成绑定。然后,Pintool将在导入的Python模块中调用硬编码功能,该功能将向API发出调用以注册更多功能并执行您想做的任何事情。

我不确定回调如何工作,我对Swig不了解。另外,如果您要仪器本身使用Python,这可能会失败。但这就是我尝试解决这个问题以开始的方式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top