shellphish / fuzzer

A Python interface to AFL, allowing for easy injection of testcases and other functionality.
BSD 2-Clause "Simplified" License
636 stars 130 forks source link

unable to fuzz bsdtar on docker #38

Open genewitch opened 5 years ago

genewitch commented 5 years ago

(angr) angr@ee8fe98b1fc4:$ shellphuzz -i -c 27 -d 13 libarchive/bsdtar [*] Drilling... [*] Creating fuzzer... Traceback (most recent call last):
File "/home/angr/.virtualenvs/angr/bin/shellphuzz", line 7, in \<module> exec(compile(f.read(), __file\, 'exec')) File "/home/angr/angr-dev/fuzzer/shellphuzz", line 87, in \<module> memory=args.memory, seeds=seeds, timeout=args.run_timeout, protocol_fuzz=args.opc_afl, AttributeError: 'Namespace' object has no attribute 'opc_afl' (angr) angr@ee8fe98b1fc4:~$

All set up with docker run -it shellphish/mechaphish; git clone https://github.com/libarchive/libarchive; compiling libarchive[1], then running the above command.

[1] cd libarchive/build && ./autogen.sh && cd .. && ./configure && make -j40

genewitch commented 5 years ago

I see that this is a prior error, however shouldn't this fix be pushed to docker? I guess that's my "issue" -- thanks

rhelmot commented 5 years ago

This should have been fixed already. I think the shellphish/mechaphish docker is just broken.

genewitch commented 5 years ago

is it an easy fix like run the extremely_easy_setup.sh script in angr-dev? that's what i am doing right now

rhelmot commented 5 years ago

you want ./git_all.sh pull first. you gotta actually update all the repositories.

genewitch commented 5 years ago

Double requirement given: shellphish-qemu==0.9.8 from file:///home/angr/angr-dev/wheels/shellphish_qemu-0.9.8-py2.py3-none-manylinux1_x86_64.whl (already in shellphish-qemu==0.9.10 from file:///home/angr/angr-dev/wheels/shellphish_qemu-0.9.10-py2.py3-none-manylinux1_x86_64.whl, name='shellphish-qemu')

after ./git-all.sh pull; that error came from the "extremely-simple-setup.sh" script. shellphuzz does start now, and there's a lot of scrolling dark blue "error" lines, but i'll tackle that later.

The ./git-all.sh command also asked me to set a commit message for "/home/angr/angr-dev/wheels/.git/MERGE_MSG" Merge branch 'master' of https://github.com/angr/wheels - i'm no git expert but i've never had to enter my email and whatnot to update/get a repo before.

I'm only using the docker because i couldn't get pip to install driller due to dpkt-fix (among other things). if there's some way i can help in my aforementioned fuzzy-brained capacity i'd be happy to.

rhelmot commented 5 years ago

the wheels repo is our poor-man's pypi instance for wheels for which we don't control the distribution or can't go on real pypi bc they're too big. We don't actually use it ever as a real version control repository, we just force-push to it whenever we want to update it because it's full of zillion-megabyte binary files. You want git reset --hard origin/master. Then, you want pip install ./shellphish_qemu-0.9.10-py2.py3-none-manylinux1_x86_64.whl, to install the binary version of shellphish-qemu in the wheels so you don't have to suffer through building it yourself.