Check markdown links validity in CI (#2495)
* add markdown link check in ci * fix broken links when possible. configuration file for md checker. * accept code 200... * more fixes * more fixes * more fixes
This commit is contained in:
parent
f856092f3d
commit
8d0ad23856
9
.github/workflows/build_and_test.yml
vendored
9
.github/workflows/build_and_test.yml
vendored
@ -221,6 +221,15 @@ jobs:
|
||||
- name: Format Check
|
||||
run: ./scripts/fmt_all.sh check
|
||||
|
||||
md-links-check:
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Run Markdown Link checks
|
||||
uses: gaurav-nelson/github-action-markdown-link-check@v1
|
||||
with:
|
||||
config-file: '.github/workflows/md-config.json'
|
||||
|
||||
fuzzers-preflight:
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
|
8
.github/workflows/md-config.json
vendored
Normal file
8
.github/workflows/md-config.json
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"ignorePatterns": [
|
||||
{
|
||||
"pattern": "^https://crates.io"
|
||||
}
|
||||
],
|
||||
"aliveStatusCodes": [0, 200]
|
||||
}
|
@ -93,7 +93,7 @@ cargo make run
|
||||
|
||||
as long as the fuzzer directory has `Makefile.toml` file.
|
||||
|
||||
The best-tested fuzzer is [`./fuzzers/libfuzzer_libpng`](./fuzzers/libfuzzer_libpng), a multicore libfuzzer-like fuzzer using LibAFL for a libpng harness.
|
||||
The best-tested fuzzer is [`./fuzzers/libpng/libfuzzer_libpng`](./fuzzers/libpng/libfuzzer_libpng), a multicore libfuzzer-like fuzzer using LibAFL for a libpng harness.
|
||||
|
||||
## Resources
|
||||
|
||||
|
@ -27,7 +27,7 @@ Metadata objects are primarly intended to be used inside [`SerdeAnyMap`](https:/
|
||||
|
||||
With these maps, the user can retrieve instances by type (and name). Internally, the instances are stored as SerdeAny trait objects.
|
||||
|
||||
Structs that want to have a set of metadata must implement the [`HasMetadata`](https://docs.rs/libafl/latest/libafl/state/trait.HasMetadata.html) trait.
|
||||
Structs that want to have a set of metadata must implement the [`HasMetadata`](https://docs.rs/libafl/latest/libafl/common/trait.HasMetadata.html) trait.
|
||||
|
||||
By default, Testcase and State implement it and hold a SerdeAnyMap testcase.
|
||||
|
||||
|
@ -12,7 +12,7 @@ Some cross-platform things in bolts include
|
||||
* ShMem: A cross-platform (Windows, Linux, Android, MacOS) shared memory implementation
|
||||
* LLMP: A fast, lock-free IPC mechanism via SharedMap
|
||||
* Core_affinity: A maintained version of `core_affinity` that can be used to get core information and bind processes to cores
|
||||
* Rands: Fast random number generators for fuzzing (like [RomuRand](http://www.romu-random.org/))
|
||||
* Rands: Fast random number generators for fuzzing (like [RomuRand](https://www.romu-random.org/))
|
||||
* MiniBSOD: get and print information about the current process state including important registers.
|
||||
* Tuples: Haskel-like compile-time tuple lists
|
||||
* Os: OS specific stuff like signal handling, windows exception handling, pipes, and helpers for `fork`
|
||||
|
@ -51,7 +51,7 @@ In it, you'll find highlights like:
|
||||
The sugar crate abstracts away most of the complexity of LibAFL's API.
|
||||
Instead of high flexibility, it aims to be high-level and easy-to-use.
|
||||
It is not as flexible as stitching your fuzzer together from each individual component, but allows you to build a fuzzer with minimal lines of code.
|
||||
To see it in action, take a look at the [`libfuzzer_stb_image_sugar` example fuzzer](https://github.com/AFLplusplus/LibAFL/tree/main/fuzzers/libfuzzer_stb_image_sugar).
|
||||
To see it in action, take a look at the [`libfuzzer_stb_image_sugar` example fuzzer](https://github.com/AFLplusplus/LibAFL/tree/main/fuzzers/stb/libfuzzer_stb_image_sugar).
|
||||
|
||||
### [`libafl_derive`](https://github.com/AFLplusplus/LibAFL/tree/main/libafl_derive)
|
||||
|
||||
|
@ -4,7 +4,7 @@ Multiple fuzzer instances can be spawned using different ways.
|
||||
|
||||
## Manually, via a TCP port
|
||||
|
||||
The straightforward way to do Multi-Threading is to use the [`LlmpRestartingEventManager`](https://docs.rs/libafl/latest/libafl/events/llmp/struct.LlmpRestartingEventManager.html), specifically to use [`setup_restarting_mgr_std`](https://docs.rs/libafl/latest/libafl/events/llmp/fn.setup_restarting_mgr_std.html).
|
||||
The straightforward way to do Multi-Threading is to use the [`LlmpRestartingEventManager`](https://docs.rs/libafl/latest/libafl/events/llmp/restarting/struct.LlmpRestartingEventManager.html), specifically to use [`setup_restarting_mgr_std`](https://docs.rs/libafl/latest/libafl/events/llmp/restarting/fn.setup_restarting_mgr_std.html).
|
||||
It abstracts away all the pesky details about restarts on crash handling (for in-memory fuzzers) and multi-threading.
|
||||
With it, every instance you launch manually tries to connect to a TCP port on the local machine.
|
||||
|
||||
|
@ -5,4 +5,4 @@
|
||||
> This section is under construction.
|
||||
> Please check back later (or open a PR)
|
||||
>
|
||||
> In the meantime, find the final Lain-based fuzzer in [the fuzzers folder](https://github.com/AFLplusplus/LibAFL/tree/main/fuzzers/tutorial)
|
||||
> In the meantime, find the final Lain-based fuzzer in [the fuzzers folder](https://github.com/AFLplusplus/LibAFL/tree/main/fuzzers/others/tutorial)
|
||||
|
@ -15,7 +15,7 @@ On unix platforms, you'll need [libc++](https://libcxx.llvm.org/) to build it.
|
||||
Alternatively you can run `cargo make run` and this command will automatically build and run the fuzzer
|
||||
|
||||
### Build For Android
|
||||
When building for android using a cross-compiler, make sure you have a [_standalone toolchain_](https://developer.android.com/ndk/guides/standalone_toolchain), and then add the following:
|
||||
When building for android using a cross-compiler, make sure you have a [_standalone toolchain_](https://developer.android.com/ndk/guides/other_build_systems), and then add the following:
|
||||
1. In the ~/.cargo/config file add a target with the correct cross-compiler toolchain name (in this case aarch64-linux-android, but names may vary)
|
||||
`[target.aarch64-linux-android]`
|
||||
`linker="aarch64-linux-android-clang"`
|
||||
|
@ -15,7 +15,7 @@ On unix platforms, you'll need [libc++](https://libcxx.llvm.org/) to build it.
|
||||
Alternatively you can run `cargo make run` and this command will automatically build and run the fuzzer
|
||||
|
||||
### Build For Android
|
||||
When building for android using a cross-compiler, make sure you have a [_standalone toolchain_](https://developer.android.com/ndk/guides/standalone_toolchain), and then add the following:
|
||||
When building for android using a cross-compiler, make sure you have a [_standalone toolchain_](https://developer.android.com/ndk/guides/other_build_systems), and then add the following:
|
||||
1. In the ~/.cargo/config file add a target with the correct cross-compiler toolchain name (in this case aarch64-linux-android, but names may vary)
|
||||
`[target.aarch64-linux-android]`
|
||||
`linker="aarch64-linux-android-clang"`
|
||||
@ -38,7 +38,7 @@ You can also fuzz libpng-1.6.37 on windows with frida mode
|
||||
### To build it with visual studio
|
||||
1. Install clang for windows (make sure you add LLVM to the system path!)
|
||||
[https://github.com/llvm/llvm-project/releases/tag/llvmorg-12.0.1](https://github.com/llvm/llvm-project/releases/tag/llvmorg-12.0.1)
|
||||
2. Download libpng-1.6.37[https://github.com/glennrp/libpng/archive/refs/tags/v1.6.37.tar.gz] and zlib [https://zlib.net/fossils/zlib-1.2.11.tar.gz] into this directory, and rename `zlib-1.2.11` directory to `zlib`.
|
||||
2. Download [libpng-1.6.37](https://github.com/glennrp/libpng/archive/refs/tags/v1.6.37.tar.gz) and [zlib](https://zlib.net/fossils/zlib-1.2.11.tar.gz) into this directory, and rename `zlib-1.2.11` directory to `zlib`.
|
||||
|
||||
3. Build libpng1.6.37
|
||||
- Open libpng-1.6.37/projects/vstudio/vstudio.sln
|
||||
|
@ -3,7 +3,7 @@
|
||||
Nautilus is a coverage guided, grammar-based mutator. You can use it to improve your test coverage and find more bugs. By specifying the grammar of semi-valid inputs, Nautilus is able to perform complex mutation and to uncover more interesting test cases. Many of the ideas behind the original fuzzer are documented in a paper published at NDSS 2019.
|
||||
|
||||
<p>
|
||||
<a href="https://www.syssec.ruhr-uni-bochum.de/media/emma/veroeffentlichungen/2018/12/17/NDSS19-Nautilus.pdf"> <img align="right" width="200" src="https://github.com/RUB-SysSec/nautilus/raw/master/paper.png"> </a>
|
||||
<a href="https://www.ndss-symposium.org/wp-content/uploads/2019/02/ndss2019_04A-3_Aschermann_paper.pdf"> <img align="right" width="200" src="https://github.com/RUB-SysSec/nautilus/raw/master/paper.png"> </a>
|
||||
</p>
|
||||
|
||||
Version 2.0 has added many improvements to this early prototype.
|
||||
|
@ -33,8 +33,10 @@ use crate::{
|
||||
inputs::UsesInput,
|
||||
observers::{ObserversTuple, UsesObservers},
|
||||
state::{HasCorpus, HasCurrentTestcase, HasExecutions, HasSolutions, State, UsesState},
|
||||
Error, ExecutionProcessor, HasMetadata, HasScheduler,
|
||||
Error, HasMetadata,
|
||||
};
|
||||
#[cfg(any(unix, feature = "std"))]
|
||||
use crate::{ExecutionProcessor, HasScheduler};
|
||||
|
||||
/// The inner structure of `InProcessExecutor`.
|
||||
pub mod inner;
|
||||
|
@ -9,7 +9,7 @@ Some cross-platform things in bolts include (but are not limited to):
|
||||
* ShMem: A cross-platform (Windows, Linux, Android, MacOS) shared memory implementation
|
||||
* LLMP: A fast, lock-free IPC mechanism via SharedMap
|
||||
* Core_affinity: A maintained version of `core_affinity` that can be used to get core information and bind processes to cores
|
||||
* Rands: Fast random number generators for fuzzing (like [RomuRand](http://www.romu-random.org/))
|
||||
* Rands: Fast random number generators for fuzzing (like [RomuRand](https://www.romu-random.org/))
|
||||
* MiniBSOD: get and print information about the current process state including important registers.
|
||||
* Tuples: Haskel-like compile-time tuple lists
|
||||
* Os: OS specific stuff like signal handling, windows exception handling, pipes, and helpers for `fork`
|
||||
@ -37,8 +37,8 @@ Some of the parts in this list may be hard, don't be afraid to open a PR if you
|
||||
#### License
|
||||
|
||||
<sup>
|
||||
Licensed under either of <a href="LICENSE-APACHE">Apache License, Version
|
||||
2.0</a> or <a href="LICENSE-MIT">MIT license</a> at your option.
|
||||
Licensed under either of <a href="../LICENSE-APACHE">Apache License, Version
|
||||
2.0</a> or <a href="../LICENSE-MIT">MIT license</a> at your option.
|
||||
</sup>
|
||||
|
||||
<br>
|
||||
|
@ -196,7 +196,6 @@ Running with the `--wait-for-keypress exit` option waits for the enter key after
|
||||
## Projects Using printf
|
||||
- [turnkeyboard](https://github.com/mpaland/turnkeyboard) uses printf as log and generic tty (formatting) output.
|
||||
- printf is part of [embeddedartistry/libc](https://github.com/embeddedartistry/libc), a libc targeted for embedded systems usage.
|
||||
- The [Hatchling Platform]( https://github.com/adrian3git/HatchlingPlatform) uses printf.
|
||||
|
||||
(Just send me a mail/issue/PR to get *your* project listed here)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user