Git Product home page Git Product logo

Comments (12)

TheShiftedBit avatar TheShiftedBit commented on April 28, 2024 3

I'll make some prebuilt distributions available, either in the same package or a separate one. Expect this done within a few days.

from atheris.

pschanely avatar pschanely commented on April 28, 2024 2

FWIW, my use case is for pure python. Namely, I'm trying to make CrossHair be able to work alongside a fuzzer and share corpus examples in both directions. Making it trivial for people to install the fuzzer alongside CrossHair is really important, however.

I guess if you'd prefer to encourage direct atheris users to build locally, I could also just build a fork and publish it separately on PyPI?

from atheris.

TheShiftedBit avatar TheShiftedBit commented on April 28, 2024 1

Hi,

I've published prebuilt binary packages to https://test.pypi.org/project/atheris/1.0.13/ for Linux 64 bit, Python 3.5-3.9. (That's test PyPI). Could you test them out and see if they work reasonably? Deployment code is also pushed to the prebuilt branch.

from atheris.

TheShiftedBit avatar TheShiftedBit commented on April 28, 2024 1

Oh, and as for Windows: nope, nothing stopping us from supporting Windows. I didn't put any effort into it because Google rarely uses Windows and Python is rarely used on Windows, but it's possible. PRs accepted. :)

I'll probably switch entirely to GitHub actions sometime soon.

from atheris.

TheShiftedBit avatar TheShiftedBit commented on April 28, 2024

This would actually be fairly easy. The main reason we didn't is that when fuzzing native code, the version of libFuzzer needs to roughly correspond to the version of Clang used to build the extensions.

However, that doesn't matter for people only fuzzing Python. @inferno-chromium Do you have an opinion?

from atheris.

inferno-chromium avatar inferno-chromium commented on April 28, 2024

This would actually be fairly easy. The main reason we didn't is that when fuzzing native code, the version of libFuzzer needs to roughly correspond to the version of Clang used to build the extensions.

However, that doesn't matter for people only fuzzing Python. @inferno-chromium Do you have an opinion?

Yes right, prebuilts does not help to match clang version with one used to build extension. And you need to build extension anyway locally with some clang, so can't escape from that. Do you really need to build llvm from source, why not use prebuilt clang packages ?

from atheris.

TheShiftedBit avatar TheShiftedBit commented on April 28, 2024

from atheris.

pschanely avatar pschanely commented on April 28, 2024

Friendly ping on this. 😄 Do you have concerns or recommendations about a separate prebuilt distribution on PyPI, if it was named appropriately? ("atheris-pure-python"?)

from atheris.

pschanely avatar pschanely commented on April 28, 2024

Awesome! I've confirmed pip installation locally (via docker, I'm on mac):

>>> import atheris
>>> atheris.__file__
'/usr/local/lib/python3.8/site-packages/atheris.cpython-38-x86_64-linux-gnu.so'

WDYT about mac/windows? I've seen other folks have success with cibuildwheel in github actions. Would be happy to experiment myself a little if that would help!

from atheris.

TheShiftedBit avatar TheShiftedBit commented on April 28, 2024

from atheris.

pschanely avatar pschanely commented on April 28, 2024

So, I didn't quite get cibuildwheel to work, but a simple script in this GitHub action builds for me!
Feel free to pull it in if you like (it would be manually triggered under the Actions tab, and you'd then manually upload the wheel to PyPI, though either of those could be automated too)

I think I hadn't noticed originally that Windows isn't supported. Apparently, libfuzzer does work on Windows: the main blockers would be the various shell scripts and such that we use during setup? Or is there a more fundamental problem that would prevent this from working?

from atheris.

TheShiftedBit avatar TheShiftedBit commented on April 28, 2024

Thanks for the GitHub action!

Prebuilt releases are now on PyPI for both Linux and Mac. I didn't use the GitHub action yet because I don't want to build Linux with a script and Mac with a Github action; I'd rather they be consistent. However, I'll probably need to switch to entirely Github actions eventually, to best support M1 Macs other Mac versions.

from atheris.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.