使用python中afl的库

libafl的Python项目详细描述


#利法夫[![pypi](https://img.shields.io/pypi/v/libafl.svg?maxage=2592000);

这个库不是用来模糊python代码的。此库仍在开发中,预计会出现错误并破坏API更改。

目标有三种方法,用于下载/提取/修补包的“init”,用于生成包的“build”,以及用于运行包的“run”。三个都是可选的。afl目标有一个特殊的目标,称为“afl target”。

`` python
类libfooaltarget(libafl.afltarget):
在这种情况下,这个脚本的位置
****kwargs:
super(libarchiveaflafltarget,self)超级(libarchiveaflafltarget,self)。


;解压缩包含的tar文件,并移动到具有正确

名称
defininit(self):
如果不是os.path.isdir.isdir(self.src\u dir):
subprocess.check输出(['tar','-xf','libfoo-0.0.0.0.1.tar.gz'])


是的shutil.move('libfoo-0.0.1',self.src_dir)


**envs)
子流程。检查_输出(
./configure&;make',
shell=true,
env=env,

os.chdir(self.root_path);
子流程检查输出(
('afl-gcc libfootest.c-i%s/include-l%s/libs-o libfootest afl')%
(self.src_dir,self.src_dir),
shell=true,
env=env,

````

创建一个新的“aflproject”,并注册所有目标:

```python
类libfooproject(libafl.aflproject):
def初始(self,wrapper=none):
超级(libarchiveproject,self)。\u初始(wrapper)

self.addtarget('afl',libarchiveafltarget('input','output','./libfootest afl',,'@@'))
````

>现在您可以手动运行函数:

``python
project=libfooproject()
project.build('afl')或project.build廑all()来生成所有目标
project.run('afl')
```

```python
libafl.handle_args(libfooproject(libafl.tmuxwrapper())
````

注意在本例中,我们使用了“tmuxwrapper”,它将在新的“tmux”窗口中启动fuzzer。您可以为其他程序(如'screen`)编写自己的包装器。

命令行界面提供以下选项:

```
vagrant@vagrant-ubuntu-trusty-64:/vagrant/libafl/libarchive$。/libarchive-afl.py-h
用法:libarchive-afl.py[-h]{init,init-u all,build,build-all,run,列表}…

所有目标
BR/>可选参数:
-H,帮助显示此帮助消息,并退出
‘BR/> BR/>可以在我的[AFL脚本]中看到更多的例子(HTTPS://GITHUBCOM/GSIH93/AFL脚本)回购。有关完整函数签名和所有可用方法,请参见源代码。

我想编译的配置不断增加(32位/64位版本,asan/no asan,gcov instrumentation,no afl instrumentation,等等)。

这个库试图从编写afl模糊脚本中删除boiler plate,这将使测试不同的配置更加容易,并保存这些配置以供以后使用或与其他人共享。

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

推荐PyPI第三方库


热门话题
java Ejb@Schedule在elasticbeanstalk上运行的swarm应用程序中不起作用   oop在java中,接口是否可以从超级接口继承常量和方法?   来自JDBC的java PL/SQL调用导致“SQLSyntaxErrorException:ORA00900”   java在安卓中共享到应用程序时如何制作覆盖?   java Cardview是一张一卡通   从java中的类名实例化类   java无法获取HashMap中新Putte的元素?   使用iText库在PDF中生成java分层书签   java@Target属性值必须是类文本   java Spring绑定抽象对象   Java中类间的c JNI作用域   spring如何从java运行curl命令?   java如何计算死亡年龄?   swing动态JPanel加法   java生成计算机移动   java是多维数组的新成员   SpringMVCJava。lang.ClassNotFoundException:org。springframework。表示表达式分析器   java在运行时创建NinePatch