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

Better page faulting with swap file support #772

Conversation

paulkermann
Copy link
Contributor

Handle swap entries more correctly.
I have removed the # Handle transition page thing because transition is handle via _page_is_valid which is overrided by the WindowsMixin anyways.
@f-block - I hope you can test this PR to see if it works for you. I have tested it using the dump you have provided me and it seems to work. I hope you have a better setup for this.

gcmoreira and others added 30 commits December 2, 2021 17:38
digitalisx and others added 2 commits June 16, 2022 05:40
…ell-excp

Remove: unreachable code (`UnsatisfiedExceptions` Message) of `volshell`.
@digitalisx
Copy link
Contributor

Hello @paulkermann, This PR related to #581 ?

@f-block
Copy link
Contributor

f-block commented Jun 17, 2022

Hi,

yes, this PR looks/works great! Thx @paulkermann.

@paulkermann
Copy link
Contributor Author

@digitalisx yes this PR is into #581

@f-block
Copy link
Contributor

f-block commented Jun 22, 2022

Hi,

just had another look: Why do you make the PageFileLow shift in _get_PageFileLow_shift dependent on the existence of the SwizzleBit ? If in a newer Windows version the PageFileLow field get moved around again, this won't work anymore. I think the best way to do it would be to get the field start from the PageFileLow field directly. Something like this (didn't test it yet):

return mmpte_software_type.vol.members.get("PageFileLow")[1].vol.start_bit

Cheers,
Frank

@paulkermann
Copy link
Contributor Author

paulkermann commented Jun 23, 2022

@f-block thanks'. Did not know the start_bit was accessible this way.


return 12 # The new shift
return mmpte_software_type.vol.members["PageFileLow"][1].start_bit
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a pretty nasty way of doing it, and tinkers with the internal state of volatility. I've now added #777 which gives the child_template call, so you can do mmpte_software_type.child_template('PageFileLow').start_bit instead. Should be much cleaner and make it easier for us if we ever need to mess with the members mechanism.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When are you planning on merging this in?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After that standard review process, so I'm hoping a week but it could be longer.

Copy link
Member

@ikelos ikelos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm still concerned about bringing a requirement on the kernel into the windows mixin. This will need some thinking about and a lot of testing.

volatility3/framework/layers/intel.py Outdated Show resolved Hide resolved
volatility3/framework/layers/intel.py Outdated Show resolved Hide resolved
volatility3/framework/layers/intel.py Show resolved Hide resolved
@ikelos
Copy link
Member

ikelos commented Jun 23, 2022

The PR's become a bit of a message, please could you rebase it.

ikelos and others added 6 commits June 23, 2022 14:32
This shifts the transition page handling into the windows fault handler.
It makes the table traversal from a loop into a recursive call so that
handlers can jump back into the traversal directly.
@paulkermann paulkermann force-pushed the feature/swap-better-pagefault branch from 390dc6e to 34e9038 Compare June 23, 2022 11:33
@paulkermann
Copy link
Contributor Author

@ikelos the problem is better-page-faulting is behind develop. My branch (this) is ahead of develop and not behind

@ikelos
Copy link
Member

ikelos commented Jun 23, 2022

Hmmm, ok. Either you can roll in the changes from better-page-faulting, rebase it all, and we abandon that PR/branch in favour of this one, or we'll have to wait for it to get merged at some point...

@paulkermann
Copy link
Contributor Author

moved this PR to #778.

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.

8 participants