The ever increasing complexity of distributed systems mandates to formally verify their design and implementation. Unfortunately, the common approaches and existing tools to formally establish the correctness of these systems remain hardly applicable to the kind of legacy applications that are commonly found in the HPC community. We present how system-level memory introspection can be achieved directly at runtime without relying on the sourcecode analysis. We use this mechanism to detect the equality of the application’s state at system level. As the storage ofthe system state may be memory expensive, we compact the memory by sharing unchanged memory pages between snapshots.This enables the automated verification of safety and liveness properties on legacy distributed applications written in Fortran orC/C++ using the MPI standard. We demonstrate the effectiveness of our approach on several programs from the MPICH3 test suite.