American Fuzzy Lop
ctags
Our great sponsors
American Fuzzy Lop | ctags | |
---|---|---|
21 | 33 | |
2,903 | 6,257 | |
- | 1.3% | |
0.0 | 9.7 | |
almost 3 years ago | 7 days ago | |
C | C | |
Apache License 2.0 | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
American Fuzzy Lop
-
Prefer table driven tests (2019)
There's some efforts to guide test generation for property based testing to make the instruction pointer explore as large a space as possible.
This effort is more mature in the fuzzing community. See eg American Fuzzy Lop https://github.com/google/AFL
-
C++ Faker library
What you're describing, just generating random input to test a program, is sometimes called "blind fuzzing" but the state-of-the-art is far beyond that. Maybe try reading through the documentation of e.g. https://github.com/google/AFL to see what a fuzzer does and why just producing random input isn't even scratching the surface.
-
Hyperpom: An Apple Silicon Fuzzer for 64-bit ARM Binaries
for general riscv I used to use this https://github.com/google/AFL I dont know if it supports x64 tho.
-
How to fuzz java code with jazzar?
Ex ( AFL, WinAFL, HonggFuzz, LibFuzzer, Jazzer )
-
One year ago I wrote a buddy memory allocator - project update
I wrote this little fuzz test target in order to fuzz it with afl (under ASan and UBSan):
-
Beariish/little: A small, easily embedded language implemented in a single .c file
afl, which is trivial to apply to this program:
-
TCL like interpreter suitable for embedded use
I made my own version of a TCL interpreter (well, a very TCL like langauge) derived from "picol" available at https://github.com/howerj/pickle. There are many different re-implementations and derivatives of this interpreter but they all seem very "crashy", this one has been significantly hardened by using a fuzzer on it which ran for months called American Fuzzy Lop https://lcamtuf.coredump.cx/afl/ . It is also more suitable for embedded use whilst still not having arbitrary restrictions like many other implementations.
-
What's in your tool belt?
On Linux afl is a very powerful bug-finding tool, and it's a great companion when doing code review. Composes well with ASan and UBSan.
-
Frelatage: A fuzzing library to find vulnerabilities and bugs in Python applications
Frelatage is a coverage-based Python fuzzing library which can be used to fuzz python code. The development of Frelatage was inspired by various other fuzzers, including AFL/AFL++, Atheris and PyFuzzer.The main purpose of the project is to take advantage of the best features of these fuzzers and gather them together into a new tool in order to efficiently fuzz python applications.
-
A tiny C89/C90 zero-allocation JSON serializer
How to use with afl:
ctags
- If you owned a nvidia tesla a100, what would you do with it?
-
NeoVim & Rust
I also recommend you https://github.com/preservim/tagbar with https://ctags.io/ installed , it will map definitions (functions, enum, struct etc..) to tags and tagbar plugin allows you to open a split window with the mapped list and navigate through your file, it also enabled more advanced features for quick navigation .
-
How do you figure out which #include a function/variable came from?
grep, Ctags, Cscope, LSP
-
Vim plugin like vscode "go to definition" function
Vim has the tag feature built-in, which allows it to jump to the tags that were found by a tool like universal ctags using :h CTRL-]. See :help tags for more information on this. Fun fact: this is the approach that Vim uses when you use :help!
-
Neovim config from scratch (Part II)
Requirements: You need to have a CTags implementation like universal-ctags installed on your system (on every system where you use vim).
-
Project reading tools
If you are heavy Vim user, you do not need anything else. For just quick browsing, simply use ctags, make sure to use universal ctags (https://ctags.io) not exuberant ctags which are no longer well maintained. Go works out of box.
-
Help me set up vim for linting and a file tree please and some other stuff
Other (built-in) tools for file navigation in Vim include: :h :ls and :h :buffer to navigate in your buffer list (i.e. the files you have loaded); everything listed in [https://vimways.org/2018/death-by-a-thousand-files/](romainl's "Death by a Thousand Files" articles in vimways); using tags by installing universal-ctags to generate the tags then using any of the commands in :h tag to navigate them; setting global marks to files you use often with m[UPPERCASE LETTER] and jumping to them with `[UPPERCASE LETTER]; :h :vimgrep…
-
What's in your tool belt?
Universal Ctags: code navigation. This is the primary way I move around multiple source files in Vim.
-
Can't generate tags using universal-ctags
$ cat tags !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ !_TAG_OUTPUT_EXCMD mixed /number, pattern, mixed, or combineV2/ !_TAG_OUTPUT_FILESEP slash /slash or backslash/ !_TAG_OUTPUT_MODE u-ctags /u-ctags or e-ctags/ !_TAG_PATTERN_LENGTH_LIMIT 96 /0 for no limit/ !_TAG_PROC_CWD /home/rjc/testdir.iBxXhX7h/ // !_TAG_PROGRAM_AUTHOR Universal Ctags Team // !_TAG_PROGRAM_NAME Universal Ctags /Derived from Exuberant Ctags/ !_TAG_PROGRAM_URL https://ctags.io/ /official site/ !_TAG_PROGRAM_VERSION 5.9.0 // bar testfile.md /^ #bar$/;" t baz testfile.md /^ #baz$/;" t foo testfile.md /^#foo$/;" t
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/ !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/ !_TAG_OUTPUT_EXCMD mixed /number, pattern, mixed, or combineV2/ !_TAG_OUTPUT_FILESEP slash /slash or backslash/ !_TAG_OUTPUT_MODE u-ctags /u-ctags or e-ctags/ !_TAG_PATTERN_LENGTH_LIMIT 96 /0 for no limit/ !_TAG_PROC_CWD /home/eduard/testdir.Tba6N2dd/ // !_TAG_PROGRAM_AUTHOR Universal Ctags Team // !_TAG_PROGRAM_NAME Universal Ctags /Derived from Exuberant Ctags/ !_TAG_PROGRAM_URL https://ctags.io/ /official site/ !_TAG_PROGRAM_VERSION 5.9.0 //
What are some alternatives?
lsp-mode - Emacs client/library for the Language Server Protocol
vscode-intelephense - PHP intellisense for Visual Studio Code
lsp - Language Server Protocol (LSP) plugin for Vim9
nvim-lspconfig - Quickstart configs for Nvim LSP
coc.nvim - Nodejs extension host for vim & neovim, load extensions like VSCode and host language servers.
vim-gutentags - A Vim plugin that manages your tag files
fzf.vim - fzf :heart: vim
winget-pkgs - The Microsoft community Windows Package Manager manifest repository
boofuzz - A fork and successor of the Sulley Fuzzing Framework
honggfuzz - Security oriented software fuzzer. Supports evolutionary, feedback-driven fuzzing based on code coverage (SW and HW based)
Cppcheck - static analysis of C/C++ code
vista.vim - :cactus: Viewer & Finder for LSP symbols and tags