angr / angr/cle

[Request] lazy backend memory reader

Aperta
#345 19 commenti 0 reazioni 0 assegnatari Vedi su GitHub
help wanted
Lingua principale
Python
Stelle
485
Fork
135
Merge medio
2g 2h
PR unite (30g)
15

Descrizione

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 :)

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.