Fuzzing Gets More Complicated
Fuzzing in 2019 switch (UR(15 + ((extras_cnt + a_extras_cnt) ? 2 : 0))) { case 0: /* Flip a single bit somewhere. Spooky! */ FLIP_BIT(out_buf, UR(temp_len << 3)); break; case 1: /* Set byte to interesting value. */ out_buf[UR(temp_len)] = interesting_8[UR(sizeof(interesting_8))]; break; case 2: /* Set word to interesting value, randomly choosing endian. */ if (temp_len < 2) break; if (UR(2)) { *(u16*)(out_buf + UR(temp_len - 1)) = interesting_16[UR(sizeof(interesting_16) >> 1)]; } else { *(u16*)(out_buf + UR(temp_len - 1)) = SWAP16(interesting_16[UR(sizeof(interesting_16) >> 1)]); } } Fuzzing in 2024 impl<E, F, EM, I, M, Z> Named for PowerMutationStage<E, F, EM, I, M, Z> { fn name(&self) -> &'static str { &self.name } } impl<E, F, EM, I, M, Z> MutationalStage<E, EM, I, M, Z> for PowerMutationalStage<E, F, EM, I, M, Z> where E: Executor<EM, Z> + HasObservers, EM: UsesState<State = Self::State>, F: TestcaseScore<Self::State>, M: Mutator<Self::State>, Self: HasCorpus + HasMetadata + HasRand + HasExecutions, Z: Evaluator<E, EM, I, State = Self::State>, I: MutatedTransform<E::Input, Self::State> + Clone, Fuzzing in 2030 (λπ.λρ.λσ.(π (ρ (σ (λτ.λϋ.(τ (ϋ (λφ.(φ π ρ τ υ)))))))) (λχ.λψ.λω.(((λA.λB.(A (B χ))) (λΓ (ψ ω))) (λΔ.Ε.((Ξ (λZ.(Σ χ λ)))))) (λΘ.λΙ.λΚ.((λΛ.λΜ.(M (N λ))) (λΟ.Π.(N ΟΙ)))) (λΡ.λΣ.(λΤ.(Σ (Τ Π))) (λΥ.γ (λΦ.φ λ))) (λΧ.λΨ.((λΩ.(λΦ.(Φ ψ))) (λΑ.(β λ))))
The image compares fuzzing code from 2019, 2024, and an absurdly unreadable lambda-calculus-like version imagined for 2030. The joke is that software fuzzing becomes increasingly complex and academic over time, turning simple byte mutations into elaborate Rust abstractions and incomprehensible symbolic code. It is a reaction meme for situations where a once-simple engineering task has become massively overengineered. EN: The image compares fuzzing code from 2019, 2024, and an absurdly unreadable lambda-calculus-like version imagined for 2030. The joke is that software fuzzing becomes increasingly complex and academic over time, turning simple byte mutations into elaborate Rust abstractions and incomprehensible symbolic code. It is a reaction meme for situations where a once-simple engineering task has become massively overengineered.
- @infosecmemes / 973 2024-06-28
- Type
- image
- Size
- 787×800 · 99.7 KiB
- Mood
- sarcastic, absurd
- Language
- en
- Added