qiling icon indicating copy to clipboard operation
qiling copied to clipboard

Clear memory before restore.

Open LukeSerne opened this issue 3 years ago • 3 comments

This fixes #1136 by unmapping everything before applying the restore operation. This will make sure that after a restore, the memory state will be exactly the same as it was when the memory's save method was called.

Checklist

Which kind of PR do you create?

  • [x] This PR only contains minor fixes.
  • [ ] This PR contains major feature update.
  • [ ] This PR introduces a new function/api for Qiling Framework.

Coding convention?

  • [x] The new code conforms to Qiling Framework naming convention.
  • [x] The imports are arranged properly.
  • [x] Essential comments are added.
  • [x] The reference of the new code is pointed out.

Extra tests?

  • [x] No extra tests are needed for this PR.
  • [ ] I have added enough tests for this PR.
  • [ ] Tests will be added after some discussion and review.

Changelog?

  • [ ] This PR doesn't need to update Changelog.
  • [ ] Changelog will be updated after some proper review.
  • [ ] Changelog has been updated in my PR.

Target branch?

  • [x] The target branch is dev branch.

One last thing


LukeSerne avatar Dec 31 '22 17:12 LukeSerne

@wtdcode @elicn Do you think mem.restore() should have the semantic to clear all memory?

chinggg avatar Jan 03 '23 12:01 chinggg

That is a good question. I tend to say "yes", because restore operations are usually used to overwrite an existing state with a previous one. Since we restore the entire memory map here (as opposed to restoring each memory region individually), I think this is expected.

elicn avatar Jan 04 '23 13:01 elicn

What is the status of this PR? I see some tests are failing on ubuntu, but I don't really see why. Personally, I think that if the tests assume the old behaviour (where a restore would not clear the memory state), they should be changed.

LukeSerne avatar Feb 07 '23 14:02 LukeSerne