All Projects → AlexDenisov → Fuzzer

AlexDenisov / Fuzzer

Licence: mit
Do not crash when your server lies

Projects that are alternatives of or similar to Fuzzer

logmap
Log4j jndi injection fuzz tool
Stars: ✭ 60 (-14.29%)
Mutual labels:  fuzz-testing
Awesome Fuzzing
A curated list of awesome Fuzzing(or Fuzz Testing) for software security
Stars: ✭ 399 (+470%)
Mutual labels:  fuzz-testing
Fuzzingpaper
Recent Fuzzing Paper
Stars: ✭ 773 (+1004.29%)
Mutual labels:  fuzz-testing
clusterfuzzlite
ClusterFuzzLite - Simple continuous fuzzing that runs in CI.
Stars: ✭ 315 (+350%)
Mutual labels:  fuzz-testing
Burpcrypto
BurpCrypto is a collection of burpsuite encryption plug-ins, support AES/RSA/DES/ExecJs(execute JS encryption code in burpsuite).
Stars: ✭ 350 (+400%)
Mutual labels:  fuzz-testing
Jsencrypter
一个用于前端加密Fuzz的Burp Suite插件
Stars: ✭ 532 (+660%)
Mutual labels:  fuzz-testing
OpenXMolar
A MS OpenXML Format Fuzzing Framework
Stars: ✭ 79 (+12.86%)
Mutual labels:  fuzz-testing
Burpsuite Collections
BurpSuite收集:包括不限于 Burp 文章、破解版、插件(非BApp Store)、汉化等相关教程,欢迎添砖加瓦---burpsuite-pro burpsuite-extender burpsuite cracked-version hackbar hacktools fuzzing fuzz-testing burp-plugin burp-extensions bapp-store brute-force-attacks brute-force-passwords waf sqlmap jar
Stars: ✭ 1,081 (+1444.29%)
Mutual labels:  fuzz-testing
Elm Test
moved to elm-explorations/test
Stars: ✭ 357 (+410%)
Mutual labels:  fuzz-testing
Oss Fuzz
OSS-Fuzz - continuous fuzzing for open source software.
Stars: ✭ 6,937 (+9810%)
Mutual labels:  fuzz-testing
Fuzzdicts
Web Pentesting Fuzz 字典,一个就够了。
Stars: ✭ 4,013 (+5632.86%)
Mutual labels:  fuzz-testing
Sqlsmith
A random SQL query generator
Stars: ✭ 343 (+390%)
Mutual labels:  fuzz-testing
Crosshair
An analysis tool for Python that blurs the line between testing and type systems.
Stars: ✭ 586 (+737.14%)
Mutual labels:  fuzz-testing
fuzzuf
Fuzzing Unification Framework
Stars: ✭ 263 (+275.71%)
Mutual labels:  fuzz-testing
Example Go
Go Fuzzit Example
Stars: ✭ 39 (-44.29%)
Mutual labels:  fuzz-testing
tribble
Coverage based JVM Fuzz testing tool.
Stars: ✭ 16 (-77.14%)
Mutual labels:  fuzz-testing
Jsfuzz
coverage guided fuzz testing for javascript
Stars: ✭ 532 (+660%)
Mutual labels:  fuzz-testing
Book
📖 Guides and tutorials on how to fuzz Rust code
Stars: ✭ 67 (-4.29%)
Mutual labels:  fuzz-testing
Afl.rs
🐇 Fuzzing Rust code with American Fuzzy Lop
Stars: ✭ 1,013 (+1347.14%)
Mutual labels:  fuzz-testing
Cargo Fuzz
Command line helpers for fuzzing
Stars: ✭ 725 (+935.71%)
Mutual labels:  fuzz-testing

Carthage compatible Cocoapods compatible

Fuzzer

Do not crash when your server lies

What is that?

We all know that the API has a specification. We all write tests to cover “happy paths” and to cover “unhappy paths” when work with the API.

It may seem that we’re pretty safe if we have tests and follow the specification. Well, actually no. Usually it works well in theory, but doesn’t really work in practice.

We can write as many tests as we need to cover all edge cases, but that is both time consuming and error prone. The best choice would be is to automate this process.

from Crash-free code with Fuzzer

Example

- (void)test {
  NSDictionary *sample = @{
    @“name” : @“John Doe”,
    @“age” : @42
  };

  UserDeserializer *deserializer = [UserDeserializer new];

  FZRRunner *runner = [FZRRunner runnerWithBuiltinMutationsForSample:sample];

  NSArray *reports = [runner enumerateMutantsUsingBlock:^(NSDictionary *mutant) {
    [deserializer deserializeUser:mutant];
  }];

  XCTAssertEqual(reports.count, 0);
}

Installation

Components (used by maintainers)

Get the latest component .make file for Fuzzer.

CocoaPods

pod 'Fuzzer', '0.3.2'

Carthage

Add the line below to your Cartfile to get the latest version of Fuzzer.

github "AlexDenisov/Fuzzer"

Please consider Carthage Documentation if you want to install a specific version of Fuzzer or make any advanced setup.

Note : Carthage support has been introduded in v0.3.1
So older versions of Fuzzer cannot be installed with Carthage.

Building From Source

Typically, you won't have to do this. But if you do, a preferred approach for building from source is using sub-projects.

You can use either of the targets below depending on your needs:

  • Fuzzer-lib-ios-static - for legacy projects (up to iOS 6)
  • Fuzzer-iOS-dynamic - for swift and modern projects

Out of the box

Builtin Mutations

Delete Node Mutation

Removes random key/value pair from a dictionary

Replace Node Mutation

Takes random key from dictionary and replaces its value with a value provided by Node Replacement

Builtin Replacements

  • integer replacement: replaces value with 'random' integer
  • float replacement: replaces value with 'random' float
  • string replacement: replaces value with 'random' string
  • boolean replacement: replaces value with 'random' boolean
  • array replacement: replaces value with 'random' array
  • dictionary replacement: replaces value with 'random' dictionary
  • null replacement: replaces value with [NSNull null]
  • nil replacement: replaces value with nil (leads to removing key/value from dictionary)

License

MIT, see LICENSE for details

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].