cuando te refieres a la variable que se encuentra en la direccion 0x3c te refieres con respecto a la base del ejecutabñe?
en caso de ser asi podrias leerla asignandole la direccion real a un puntero.
//IMGBase = 400000, es un suponer, no siempre es esa.
// Las Dll siguen el formato PECOFF, por lo tanto tambien son consideradas ejecutables.
//0x3c es una direccion relativa a la direccion base donde fue cargado el ejecutable.
#Define IMGBASE 0x400000
int *RVAPE;
char *PEHeader;
RVAPE = IMGBASE +0x3c;
PEHeader = 0x400000 + *RVAPE;
// ahora dentro del puntero PEHeader tienes una direccion de memoria que apunta al PEHeader.