顶石分解发动机

tacocapstone的Python项目详细描述


0个。本文档说明如何从源代码安装capstone
的python绑定。如果要从pypi包安装它,请参阅下面的
文档:

-readme.pypi-src:如何编译capstone core&install binding
同时从pypi包“capstone”

-readme.pypi-win:如何从pypi包“capstone windows”安装windows绑定。请注意,这个包已经在内部预先构建了core
,因此不需要编译。

1。要在*nix上安装纯python绑定,请运行以下命令:

$sudo make install


要安装python3绑定包,请运行以下命令:
(注意:这需要在计算机中安装python3)

$sudo make install3

2。要获得更好的python性能,请使用以下命令安装基于cython的绑定:

$sudo make install_cython

请注意,这需要cython首先安装在计算机中。
要安装cython,请参阅下面的第3节。

3。要安装cython,您必须确保头文件
和python的静态库已预先安装。


例如,在ubuntu上,请执行以下操作:


$sudo apt get install python dev

,具体取决于您是否已经安装了pip或easy\install
,安装cython时可以使用:

$sudo pip install cython
或:
$sudo easy_install cython

注意:根据您的发行版,您也可以使用存储库安装所需的cython版本。

例如,在ubuntu上,请执行:

$sudo apt get install cython

我们基于cython的绑定要求cython版本0.19或更新,
,但有时发行版只提供旧版本。在进入以上第2节之前,请确保
验证当前安装的版本。


例如,在ubuntu上,您可以使用:


$apt cache policy cython


验证当前cython版本,该版本至少应打印0.19



此目录包含一些测试代码,说明如何使用capstone api。

-test.py
这段代码显示了最简单的API形式,我们只想从反汇编指令中获取基本的信息,例如地址、助记符和操作数字符串。

-test戥lite.py
与test.py类似,但这段代码显示了如何使用disasm戥lite(),一种更轻的方法来反汇编二进制文件。与返回csinsn对象的disasm()api(test.py使用)不同,此api只返回(address、size、mnemonic、op_str)的元组。

使用此api的主要原因是性能更好:disasm_lite()至少比disasm()快20%。内存使用也更少。因此,如果您只需要反汇编程序中的基本信息,请使用disasm_lite()而不是disasm()。

-test_detail.py:
此代码显示如何在反汇编指令(如隐式寄存器读/写)中访问与体系结构无关的信息,或此指令所属的指令组。


-测试架构。py
这些代码显示如何访问每个架构的特定于架构的信息。



2。在windows上安装python绑定:

推荐方法:


在32/64位windows上使用python模块安装程序:


http://www.capstone-engine.org/download.html




手动方法:

或者如果您已经安装了其他python(例如anaconda/virtualenv),请在命令提示符下运行以下命令:


c:\>;c:\ location_to_python\python.exe setup.py install

next,从同一个Capstone下载页上的“Core Engine for Windows”包中复制capstone.dll,并将其粘贴到路径:

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android Studio:我的短信应用程序不是默认短信应用程序的选项之一   java处理字符串问题   java为什么我的程序打印“null”而不是字符串?   java为什么要创建一个无限循环?   java循环在一段时间后将布尔值更改为false?   java Android Rest Api Post 400错误请求   java调用另一个方法以获取resultset并正确关闭连接?   java我想在2d数组中添加一行   Java:我需要从outputstream中获取字节数组   C语言中Java元注释的等价物#   java如何在从web下载图像时保持原始图像的dpi?   java中基于输入值的spring boot动态值   java从请求中获取主机名   java可以复制Swing代码并在intelliJ中的designer中查看它吗   spring如何使用java配置多个ldap   安卓如何在Java中使用具有多个类似参数的JSON请求/响应循环?   java LIbGDX如何在语言更改时翻译所有文本?