Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add custom mutate, post mutate, fuzzer_test_tlv_server #67

Merged
merged 4 commits into from Feb 2, 2022
Merged

Add custom mutate, post mutate, fuzzer_test_tlv_server #67

merged 4 commits into from Feb 2, 2022

Conversation

ghost
Copy link

@ghost ghost commented Jan 30, 2022

As I mentioned on Issue#64, I made this pull request mainly focusing on network server/client application fuzzing.

I only use built-in LibFuzzer mutator on example, but you can also using with other custom mutators like libprotobuf-mutator for structure-aware fuzzing.

I used multi input fuzzing feature with my test socket server. I know that test code quality is like shit but at least you will see that it works like persistent mode as I wanted.

@0vercl0k
Copy link
Owner

Wow this looks pretty cool, thanks for working on this @y0ny0ns0n 🙏🏽I'll be reviewing this this week!

Cheers

@0vercl0k
Copy link
Owner

0vercl0k commented Feb 1, 2022

All right, I've read the code and I think I have a good understanding of the scenarios you'd like to enable.

I've been wanting to have a mechanism for fuzzing modules to provide their mutator logic for a while so I like that now you can customize those. It means that we could implement multi packet as some sort of utility function / class and users can use it if they want and the core doesn't need to know about it. I also like the TLV server example, I think it'd be good to include this as well in wtf as it shows a more advanced usage.

What I'd like to change in your proposal is to basically move the multi packet logic into a mutator instead of having this logic inside the core of wtf. I don't think it brings anything more to have it in the core; I think it actually potentially limits what the user could do.

What do you think?

cc @yrp604

@ghost
Copy link
Author

ghost commented Feb 1, 2022

Yep. I agree with that. I also think user can control those things on CustomMutate function

@0vercl0k 0vercl0k changed the title Add custom mutate, post mutate, multiple testcase option Add custom mutate, post mutate Feb 2, 2022
@0vercl0k 0vercl0k changed the title Add custom mutate, post mutate Add custom mutate, post mutate, fuzzer_test_tlv_server Feb 2, 2022
@0vercl0k 0vercl0k merged commit ec8646b into 0vercl0k:main Feb 2, 2022
@0vercl0k
Copy link
Owner

0vercl0k commented Feb 2, 2022

Thanks a lot @y0ny0ns0n 🙏🏽🎉 - I'll be working on adding the server / cleaning up the code / updating the doc, etc. in other PRs which I'll add you too FYI :)

Cheers

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants