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

Refactor: Update from master #88

Open
wants to merge 26 commits into
base: sulley_refactor
Choose a base branch
from

Conversation

jtpereyda
Copy link
Contributor

Merging updates from master into sulley_refactor. It was messy, but nothing tricky for the most part.

From here, it should be easy to merge future master fixes into sulley_refactor.

Fitblip and others added 26 commits June 18, 2014 21:26
Thanks to Julio <[email protected]> for letting me know about this!
…n "Restarting the target failed, exiting.".
Sulley close on "Restarting the target failed, exiting" when target is restarted by process_monitor.py
Allow the loopback interface to be used.
TL;DR I had a block whereby the whole block contents had to be considered
for checksum calculation, but one field (fixed length) not included in the
size field for the block.
Detail:
I was creating a fuzzer for PNG fields whose "Chunks" required the above
consideration, see: http://www.w3.org/TR/PNG/#5Chunk-layout
Add "offset" parameter to the s_size funtion.
… from

emitting the maximum possible value of a primitive.
Fixed a failing unit test.
…uded

Fixed primitives "off-by-one" error. This was preventing "full_range"…
When these primitives are not mutating, cycle them through the
values. If they are "Fuzzable" they will generate a mutation with each
possible value. If they are not fuzzable they will cycle through values
according to the demands of other mutating item, with no guarantee that
all specified values will be used.
Updated .gitignote to ignored generated pydocs.
Updated user guide to include details on defining integer primitives with
lists of values. Also further minor improvements to assist with readabiity
that I noted from my initial read through of the guide when familiarising
myself with the product.
…ples_of_values

Add support for tuples of values to be defined for primitives.
…icate that -s is required. Also removed default vmrun value and fixed two typos.
Fixing 1ms error.
…ent-fix

OpenRCE/sulley Issue OpenRCE#79 Changing code and usage string to indicate t…
network_monitor.py now runs its server in a thread, making Ctrl+C wor…
Adding workaround since singal.pause() is missing in Windows.
…-filenames

process_monitor.py now accepts relative filenames in -c argument.
…I'm not sure aboutu sulley/primitives.py BitField.render signed logic. It was changed in two places and IDK which is right.

Conflicts:
	.gitignore
	docs/generate_epydocs.bat
	docs/index.html
	process_monitor.py
	sulley/__init__.py
	sulley/blocks.py
	sulley/pgraph/graph.py
	sulley/primitives.py
	sulley/sessions.py
	unit_tests/blocks.py
	vmcontrol.py
@Fitblip
Copy link
Member

Fitblip commented Aug 18, 2015

Hey @jtpereyda!

Wow! Awesome. Thanks a ton for doing this. I seriously appreciate it. I know that merge was messy and took a decent amount of time.

If it's not too much trouble would you mind squashing this PR into a single commit (http://eli.thegreenplace.net/2014/02/19/squashing-github-pull-requests-into-a-single-commit)? There are a few commits just for merging in branches/PRs that aren't specific to the sulley_refactor branch.

Cheers!

@jtpereyda
Copy link
Contributor Author

My pleasure.

I'd be happy to squash the commits, but when I tried, I ran into all of the same merge conflicts again. :/

Here is my command:

> git rev-parse --abbrev-ref HEAD  # show current branch
refactor-update-from-master
> git rebase -i openrce/sulley_refactor

And here's what I saved for the rebase file:

pick afcd647 Implement a quick fix to network_monitor.py
squash fead662 Added return value on function start_target so sulley doesn't close on "Restarting the target failed, exiting.".
squash 2edc1ca Fix issue #66
squash 8952ad0 Allow the loopback interface to be used.
squash 829758b Add "offset" parameter to the s_size funtion. TL;DR I had a block whereby the whole block contents had to be considered for checksum calculation, but one field (fixed length) not included in the size field for the block. Detail: I was creating a fuzzer for PNG fields whose "Chunks" required the above consideration, see: http://www.w3.org/TR/PNG/#5Chunk-layout
squash 68dc3f5 Add support for binary prinitives to be defined with a list / tuple of values.
squash 7bc54f2 Fixed primitives "off-by-one" error. This was preventing "full_range" from emitting the maximum possible value of a primitive. Fixed a failing unit test.
squash b742a0d Mutate primitives defined with lists / tuples through the values. When these primitives are not mutating, cycle them through the values. If they are "Fuzzable" they will generate a mutation with each possible value. If they are not fuzzable they will cycle through values according to the demands of other mutating item, with no guarantee that all specified values will be used.
squash ac0c625 Corrected exception thrown when the wrong value is used. Updated .gitignote to ignored generated pydocs. Updated user guide to include details on defining integer primitives with lists of values. Also further minor improvements to assist with readabiity that I noted from my initial read through of the guide when familiarising myself with the product.
squash cf74c68 OpenRCE/sulley Issue #79 Changing code and usage string to indicate that -s is required. Also removed default vmrun value and fixed two typos.
squash b842560 network_monitor.py now runs its server in a thread, making Ctrl+C work in Windows.
squash 007edd3 Adding workaround since singal.pause() is missing in Windows. OpenRCE/sulley issue #49
squash 54bdbbe Update sessions.py
squash 8928ce8 process_monitor.py now accepts relative filenames in -c argument.

As it was rebasing, it started bringing up all of the old merge decisions. In order to do it this way, I'd need to re-make every single decision. :/

Besides, I'm apprehensive to squash since all of these happened before my merge. My only commit is the very last one, b78c235.

All of the commits already exist in the OpenRCE repo, they're just new to this branch. My guess is that this PR won't add any superfluous commits to the repo, though it will expand the history of sulley_refactor. I think this is a good thing, though -- at least it's how I understood merges to work anyway.

Let me know if you have another approach to squashing you'd like me to try.

@jtpereyda
Copy link
Contributor Author

Maybe the squashing guideline doesn't apply for merges like this. I couldn't find much online about this exact scenario.

@Fitblip
Copy link
Member

Fitblip commented Aug 20, 2015

Hrm, I'll try to take a whack at it when I get a chance, but it's really not the worst thing if all the merges are there. Probably not worth the effort.

If what I try encounters any problems I'll just merge it in :-P.

@jtpereyda
Copy link
Contributor Author

@Fitblip Any chance to check this one out yet?

@Fitblip
Copy link
Member

Fitblip commented Aug 29, 2015

Hey @jtpereyda - Sorry for the smokebomb. I've been crazy busy at work (we're just getting ready to start our pilots), so I probably can't look at this until next week some time.

@jtpereyda
Copy link
Contributor Author

@Fitblip Well knock it out! I hope all goes well.

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.

4 participants