

just curious.
SO when g0dly posted his source, I saw what I did wrong and fixed it 
#include <windows.h>
#include <fstream>
#include <stdio.h>
#include <Psapi.h>
#pragma comment(lib, "psapi.lib")
#define Dvar_List_MP 0x29383B0
#define EndOfList_MP 0x29A83B4
#define Dvar_List_ZM 0x29393B0
#define EndOfList_ZM 0x29A93B4
#define Dvar_List_SP 0x2A45F90
#define EndOfList_SP 0x2AB5F94
struct dvar_union_s
{
union
{
int iValue;
float flValue;
char *szValue;
};
};
typedef struct
{
char *szName; //0x0000
char _0x0004[12];
int iType; //0x0010
char _0x0014[4];
dvar_union_s uValue; //0x0018
char _0x001C[84];
}dvar_t; //Size=0x70
using namespace std;
ofstream ofile;
char dlldir[320];
void __cdecl add_log ( const char *fmt, ...)
{
if(ofile != NULL)
{
if(!fmt) { return; }
va_list va_alist;
char logbuf[256] = {0};
va_start (va_alist, fmt);
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
va_end (va_alist);
ofile << logbuf;
}
}
MODULEINFO GetModuleInfo( LPCSTR szModule )
{
MODULEINFO modinfo = {0};
HMODULE hModule = GetModuleHandleA(szModule);
if(hModule == 0) return modinfo;
GetModuleInformation(GetCurrentProcess(), hModule, &modinfo, sizeof(MODULEINFO));
return modinfo;
}
char *GetDirectoryFile(char *filename)
{
static char path[320];
strcpy(path, dlldir);
strcat(path, filename);
return path;
}
void LogDvars()
{
DWORD* Max, Base;
char Process[16];
GetModuleBaseNameA(GetCurrentProcess(), NULL, Process, 16);
if(strcmp(Process, "t6mp.exe") == 0){
Max = (DWORD*)EndOfList_MP;
Base = Dvar_List_MP;
ofile.open(GetDirectoryFile("DvarDump_MP.txt"), ios::app);
}else if(strcmp(Process, "t6sp.exe") == 0){
Max = (DWORD*)EndOfList_SP;
Base = Dvar_List_SP;
ofile.open(GetDirectoryFile("DvarDump_SP.txt"), ios::app);
}else if(strcmp(Process, "t6zm.exe") == 0){
Max = (DWORD*)EndOfList_ZM;
Base = Dvar_List_ZM;
ofile.open(GetDirectoryFile("DvarDump_ZM.txt"), ios::app);
}else{
MessageBoxA(NULL, "Process Name not recognized. Can't create dump file!", "Wrong Process", MB_ICONERROR);
exit(EXIT_FAILURE);
}
char Name[64];
for(int i = 0; i < *Max; i++)
{
dvar_t *Dvar = (dvar_t*)(Base + (DWORD)i * 0x70);
if(Dvar != NULL){
sprintf(Name, "%s.", Dvar->szName);
while(strlen(Name) < 50)
sprintf(Name, "%s.", Name);
add_log("%s0x%.8X\n",Name, &Dvar->uValue);
}
}
}
BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call,LPVOID lpReserved)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
GetModuleFileNameA(hModule, dlldir, 512);
for(int i = strlen(dlldir); i > 0; i--){
if(dlldir[i] == '\\'){
dlldir[i+1] = 0;
break;
}
}
LogDvars();
break;
}
return TRUE;
}


But even if you do find, it'll only work when you're host 
