Не уверен, что это самый простой подход, но, возможно, вам следует перехватить выделение памяти функциями WinAPI сразу после загрузки каждой библиотеки.
Тогда в вашем крючке вы сможете сделать необходимый подсчет
Взгляните на библиотеку Microsoft Detours как на хорошую среду для перехвата (http://research.microsoft.com/en-us/projects/detours/). Как правило, она не бесплатна, но доступна бесплатно "для исследовательских, некоммерческих и непроизводственных целей"
Какие фактические функции для перехвата в действительности зависят от dll, которые нужно отслеживать.
Если все они скомпилированы с динамически связанными средами выполнения MSVC, вам нужно перехватить ряд функций malloc () / free () / calloc () / realloc ().
Если он был статически связан со средой выполнения или не был скомпилирован с MS VC, вам придется перехватывать связанные с памятью вызовы WinAPI, такие как HeapAlloc / HeapCreate / HeapDestroy / HeapFree / heapReAlloc / VirtualAlloc / VirtualFree (я только что искал связанные с памятью функции, которые msvcr100.dll импортирует из kernel32.dll)