Contributor
Pulak Malhotra

Heap Viewer


Mentors
Yossi Zapesochini, Itay Cohen
Organization
Rizin

Currently, there are no heap-specific widgets in Cutter to get information about the heap while debugging a program. This project aims to solve this by providing various heap visualization widgets and memory maps to provide information about the state of the heap. Another issue with the heap parsing in Rizin is that it depends on how Rizin is compiled and fails for cases of non-native and remote debugging cases. The project will also try to expand the number of heap allocators that Rizin supports. After completing this project, users would be able to get information about the state of the heap in Cutter and do this for cases of remote debugging and a variety of allocators. As part of the project, the following are the key features that will be added and changed:

  • Widgets in Cutter for the following:
  • Bins Info (Fastbins, Unsorted, Small, Large)
  • T-cache Info for each thread
  • Arenas Info (chunks, top, last remainder)
  • Graph visualization for bins and tcache
  • Improve the implementation of heap related commands like dmh in Rizin
  • Refactor the Rizin code to make heap parsing work for non-native code
  • Add heap parsing for other allocators like MacHeap.