[−][src]Module falcon::memory
Efficient memory representations.
Falcon implements a layered memory model. When analyses interact with memory, they interact directly with the top layer. When a memory layer cannot satisfy an analysis' request, it checks the layer beneath it. I believe angr implements a similar model.
The performance of the memory model has tremendous impact on the performance of memory-dependent analyses. In practice, this layered approach greatly speeds up the runtime of of these analyses.
If you choose to implement your own memory model, you should also see the
TranslationMemory
trait in the translator
module. Implementation of this
trait will allow the translator to lift instructions from your memory model.
Modules
backing | A flat representation of memory provided by lifters, typically used in a read-only fashion |
paged | A memory model with copy-on-write pages, which attempts not to split values and accepts a memory backing. |
Structs
MemoryPermissions | RWX permissions for memory. |
Traits
Value | In order for a value to be used in the paged memory model, it must implement this trait. |