angr / angr/cle

[Request] lazy backend memory reader

Open
#345 19 comments 0 reactions 0 assignees View on GitHub
help wanted
Dominant language
Python
Stars
485
Forks
135
Avg merge
2d 2h
Merged PRs (30d)
15

Description

Hey,
I want a backend class which will allow me to let the cle engine (and angr) get the needed bytes lazily.
This way I will be able to have sparse address space (similar to the minidump) without loading all of it beforehand.
I want this backend to have one parameter which will be a `read` function with address and size parameters.

When angr or cle wants to read memory it will read from the cached copy if it exists, otherwise the `read` function will be called for that address and a cached copy will be created.
When angr (cle) wants to write somewhere the original bytes will be read into a cached copy and then the write operation will happen. If the cache already exists then angr will just write there.

I have a huge minidump file and loading all the segments at initialization causes an out of memory error for my python.
In the end I want to use the angr engine with this backend and use the common normal functionality (like `explore` and such).

Thanks in advance and looking forward to hearing your opinion on this :)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.