diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 97e2763e52..36acd69f83 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -143,6 +143,8 @@ jobs: uses: actions-rs/cargo@v1 with: command: clippy + #- name: Build frida + # run: cd fuzzers/frida_libpng/ && cargo build --release macos: runs-on: macOS-latest steps: diff --git a/fuzzers/frida_libpng/.gitignore b/fuzzers/frida_libpng/.gitignore index 93ffa298c8..8d08c6cf96 100644 --- a/fuzzers/frida_libpng/.gitignore +++ b/fuzzers/frida_libpng/.gitignore @@ -2,3 +2,4 @@ libpng-* corpus_discovered libafl_frida frida_libpng +zlib* \ No newline at end of file diff --git a/fuzzers/frida_libpng/README.md b/fuzzers/frida_libpng/README.md index 7952102722..0dacf0cdd2 100644 --- a/fuzzers/frida_libpng/README.md +++ b/fuzzers/frida_libpng/README.md @@ -38,15 +38,16 @@ You can also fuzz libpng-1.6.37 on windows with frida mode! 2. Build libpng1.6.37 - Open libpng-1.6.37/projects/vstudio/vstudio.sln - Open Build->Configuration Manager - - select Release for Active soltuion configuration and + - select Release for Active solution configuration and - select ->x64 for Active solution platform (Copy settings from Win32) - Then for libpng, pngstest, pngtest, pngunknown, pngvalid, zlib in Solution Explorer, choose General -> Configuration Type -> Static library(.lib) - C/C++ -> Treat Warnings As Errors -> No - C/C++ -> Code Generation -> Runtime Library -> Multi-threaded (/MT) - - Finally you can build libpng-1.6.37 + - Finally, you can build libpng-1.6.37 3. Compile the harness Fire up a powershell at this directory. ``` +cargo build --release cp .\libpng-1.6.37\projects\vstudio\x64\Release\libpng16.lib . cp .\libpng-1.6.37\projects\vstudio\x64\Release\zlib.lib . cp .\target\release\frida_libpng.exe . diff --git a/libafl/src/feedbacks/mod.rs b/libafl/src/feedbacks/mod.rs index eaaa551993..6c6a90b307 100644 --- a/libafl/src/feedbacks/mod.rs +++ b/libafl/src/feedbacks/mod.rs @@ -593,7 +593,7 @@ where } } -/// Variadic macro to create a chain of AndFeedback +/// Variadic macro to create a chain of [`AndFeedback`](EagerAndFeedback) #[macro_export] macro_rules! feedback_and { ( $last:expr ) => { $last }; @@ -604,7 +604,7 @@ macro_rules! feedback_and { }; } /// -/// Variadic macro to create a chain of (fast) AndFeedback +/// Variadic macro to create a chain of (fast) [`AndFeedback`](FastAndFeedback) #[macro_export] macro_rules! feedback_and_fast { ( $last:expr ) => { $last }; @@ -615,7 +615,7 @@ macro_rules! feedback_and_fast { }; } -/// Variadic macro to create a chain of OrFeedback +/// Variadic macro to create a chain of [`OrFeedback`](EagerOrFeedback) #[macro_export] macro_rules! feedback_or { ( $last:expr ) => { $last }; @@ -636,7 +636,7 @@ macro_rules! feedback_or_fast { }; } -/// Variadic macro to create a NotFeedback +/// Variadic macro to create a [`NotFeedback`] #[macro_export] macro_rules! feedback_not { ( $last:expr ) => { diff --git a/libafl_concolic/symcc_runtime/src/tracing.rs b/libafl_concolic/symcc_runtime/src/tracing.rs index d3c6c98b97..3919dc9879 100644 --- a/libafl_concolic/symcc_runtime/src/tracing.rs +++ b/libafl_concolic/symcc_runtime/src/tracing.rs @@ -1,7 +1,5 @@ //! Tracing of expressions in a serialized form. -use std::num::NonZeroUsize; - pub use libafl::observers::concolic::serialization_format::StdShMemMessageFileWriter; use libafl::observers::concolic::SymExpr; @@ -32,7 +30,7 @@ impl TracingRuntime { } } -/// A macro to generate the boilerplate for declaring a runtime function for SymCC that simply logs the function call +/// A macro to generate the boilerplate for declaring a runtime function for `SymCC` that simply logs the function call /// according to [`concolic::SymExpr`]. macro_rules! expression_builder { ($method_name:ident ( $($param_name:ident : $param_type:ty ),+ ) => $message:ident) => { diff --git a/libafl_frida/src/helper.rs b/libafl_frida/src/helper.rs index 3ac7fe175d..acdb2b7221 100644 --- a/libafl_frida/src/helper.rs +++ b/libafl_frida/src/helper.rs @@ -249,7 +249,7 @@ fn pc(context: &CpuContext) -> usize { context.pc() as usize } -#[cfg(target_arch = "x86_64")] +#[cfg(all(target_arch = "x86_64", not(windows)))] fn pc(context: &CpuContext) -> usize { context.rip() as usize }