From 0c8c1d0eec1c1214094c90caa3857c4358741ab8 Mon Sep 17 00:00:00 2001 From: belal Date: Sun, 7 Mar 2010 21:00:31 -0500 Subject: [PATCH] Modified Memory.xml to support all d# versions, modified Vtable meminfo reading, so it auto-resolves all vtables now, so you should never have to do any rebasing or anything. Fixed some bugs in windows meminfo as well --- library/DFMemInfo.cpp | 5 +- library/DFProcess-windows.cpp | 4 +- output/Memory.xml | 848 +++++++++++++--------------------- 3 files changed, 335 insertions(+), 522 deletions(-) diff --git a/library/DFMemInfo.cpp b/library/DFMemInfo.cpp index 4b843cca6..a2724461b 100644 --- a/library/DFMemInfo.cpp +++ b/library/DFMemInfo.cpp @@ -100,6 +100,7 @@ memory_info::memory_info(const memory_info &old) t_class * copy = new t_class(*old.d->classes[i]); d->classes.push_back(copy); } + d->classnames = old.d->classnames; d->classindex = old.d->classindex; d->professions = old.d->professions; d->jobs = old.d->jobs; @@ -340,9 +341,10 @@ bool memory_info::resolveObjectToClassID(const uint32_t address, int32_t & class { uint32_t vtable = g_pProcess->readDWord(address); // FIXME: stupid search. we need a better container + string classname = g_pProcess->readClassName(vtable); for(uint32_t i = 0;i< d->classes.size();i++) { - if(d->classes[i]->vtable == vtable) // got class + if(d->classes[i]->classname == classname) // got class { // if it is a multiclass, try resolving it if(d->classes[i]->type_offset) @@ -366,7 +368,6 @@ bool memory_info::resolveObjectToClassID(const uint32_t address, int32_t & class return true; } } - string classname = g_pProcess->readClassName(vtable); t_class * c = setClass(classname.c_str(),vtable); classid = c->assign; return true; diff --git a/library/DFProcess-windows.cpp b/library/DFProcess-windows.cpp index eaba63abd..1479db1e1 100644 --- a/library/DFProcess-windows.cpp +++ b/library/DFProcess-windows.cpp @@ -379,9 +379,9 @@ const string NormalProcess::readCString (const uint32_t offset) string temp; char temp_c[256]; DWORD read; - ReadProcessMemory(d->my_handle, (int *) offset, temp_c, 255, &read); + ReadProcessMemory(d->my_handle, (int *) offset, temp_c, 254, &read); // needs to be 254+1 byte for the null term temp_c[read+1] = 0; - temp = temp_c; + temp.assign(temp_c); return temp; } diff --git a/output/Memory.xml b/output/Memory.xml index dd4cb17cd..959d80083 100644 --- a/output/Memory.xml +++ b/output/Memory.xml @@ -671,6 +671,55 @@ 55 57 -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -781,103 +830,7 @@ 0x84 0x60 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
0x9fc294
0xd457f4
0xd73868
@@ -885,21 +838,39 @@
0x1706d4c
- - - 0x4967C2E0 - aea5a207b8b1cda942502f97a429f6c3 - - -
0x01531EC0
-
0x014da5e0
-
0x014ee978
-
0x014F4B4C
-
0x014edfcc
- - -
0x01534270
-
0x01534240
+ + 0x4953556c + B1A8CA1F91734EB492B7F54F6823CDDB +
0x014d1db0
+
0x014bda18
+
0x014d1404
+
0x014d1de4
+
0x0165b5a8
+
0x0094b27c
+
0x012e101c
+
0x014d14f8
+
0x01517678
+
0x015152f8
+
0x01517468
+
0x012e0fe4
+
0x012cefbf
+
0x01515330
+
0x01515334
+
0x01515338
+
0x015170f8
+
0x0151702c
+
0x015176a8
+
0x014d7f84
+
0x012ef340
+
0x0165a34c
+
0x00c9333c
+
0x00cc13b0
+
0x00cc138c
+
0x01516930
+
0x01515318
+
0x0151531c
+
0x01515320
+ 0x54 @@ -922,17 +893,7 @@ 0x70 - - -
0x01531EE0
-
0x01531EE4
-
0x01531EE8
- - -
0x01531EF8
-
0x01531EFC
-
0x01531F00
- + 0x10 0x2C @@ -941,8 +902,6 @@ 0x0684 0x1D84 - -
0x015334F8
0x84 0x86 0x75C @@ -956,443 +915,296 @@ 0xC -
0x01534030
0x18 - - - - - - - - - - - - - - - -
0x9662a4
-
0xcae368
-
0xcdc3dc
-
0xcdc3b8
-
0x1676f14
- -
0x012FDBAC
0x2 0x4 0x8 0x24 -
0x012FDBE4
0x1C 0x20 - 0x2C - -
0x01533CC0
-
0x01533BF4
0x38 0x7a 0x100 -
- - - 0x49C82D3F - 6f81231b845e9c9dc29aaf57705ccc7c - - -
0x9652a4
-
0xcdf5a0
-
0xd0d64c
-
0xd0d628
+ 0x68 + 0x24 + 0x1C + 0x28 + 0x24 + 0x24 + 0x24 + 0x5C + 0x94 + 0xB0 -
0x013E853C
-
0x013E8574
+ + + + + + + + +
+ + 0x4957716f + 9B6DA355562A4CDD345EA3046290499B +
0x0094d27c
+
0x012d0fbf
+
0x00c9533c
+
0x00cc33b0
+
0x00cc338c
+
+ + 0x4957a0a2 + B77759DB7A6DD787BF98953FC5749D81 + + + 0x495991c3 + A0792B81E5B8EC1DBDD627643E93B40D +
0x0094f27c
+
0x012d2fbb
+
0x00c97334
+
0x00cc53a8
+
0x00cc5384
+
+ + 0x495cafd2 + D09E88A32FE57DE5973F78EF213271B6 +
0x009662a4
+
0x012e9fef
+
0x00cae368
+
0x00cdc3dc
+
0x00cdc3b8
+
+ + 0x495fcfef + 8E8E2A83D421E356A8047DC8830A7426 +
0x009662a4
+
0x012e9fef
+
0x00cae368
+
0x00cdc3dc
+
0x00cdc3b8
+
+ + 0x4963c928 + 32253BEE114DD25EBBAA50D90B5C0A2A + + + 0x4967c2e0 + AEA5A207B8B1CDA942502F97A429F6C3 + + + 0x49c59b94 + 193193D8624F2F3F6D9D556FAB09B122 +
0x0151bd00
+
0x01507968
+
0x0151b354
+
0x0151bd34
+
0x016a54f8
+
0x009652a4
+
0x0132e574
+
0x0151b448
+
0x015615c8
+
0x0155f248
+
0x015613b8
+
0x0132e53c
+
0x0131b25f
+
0x0155f280
+
0x0155f284
+
0x0155f288
+
0x01561048
+
0x01560f7c
+
0x015615f8
+
0x01521ed4
+
0x0133c898
+
0x016a429c
+
0x00cdf5a0
+
0x00d0d64c
+
0x00d0d628
+
0x01560880
+
0x0155f268
+
0x0155f26c
+
0x0155f270
+
+ + 0x49c82d3f + 6F81231B845E9C9DC29AAF57705CCC7C - - 0x4A3CCB7F - 6ea1de36af8e1666bd6478736e298c4c - - -
0x015FACCC
-
0x015A33B8
-
0x015B7750
-
0x015BD924
-
0x015B6DA4
- - -
0x015FD07C
-
0x015FD04C
- - -
0x015FACEC
-
0x015FACF0
-
0x015FACF4
- - -
0x015FAD04
-
0x015FAD08
-
0x015FAD0C
- - -
0x015FC304
- -
0x015FCE3C
- - - - - - -
0x95f2b4
-
0xd995a0
-
0xdc764c
-
0xdc7628
-
0x173fde0
- -
0x015FCACC
-
0x015FCA00
- + 0x4a3ccb7f + 6EA1DE36AF8E1666BD6478736E298C4C +
0x015b7750
+
0x015a33b8
+
0x015b6da4
+
0x01750e7c
+
0x0095f410
+
0x0095f2b4
+
0x013e8574
+
0x015b6e98
+
0x015fd04c
+
0x015faccc
+
0x015fce3c
+
0x013e853c
+
0x013d525f
+
0x015fad04
+
0x015fad08
+
0x015fad0c
+
0x015fcacc
+
0x015fca00
+
0x015fd07c
+
0x015bd924
+
0x015b6dc4
+
0x0173fde0
+
0x00d995a0
+
0x00dc764c
+
0x00dc7628
+
0x015fc304
+
0x015facec
+
0x015facf0
+
0x015facf4
- - 0x4A51C26E - 04a8d8ce311d8ac75e4241bef68d3147 - - - + 0x4a51c26e + 04A8D8CE311D8AC75E4241BEF68D3147 +
0x00964430
0x009642b4
+
0x013da2bf
0x00d9e600
0x00dcc6ac
0x00dcc688
- - 0x4A8623D2 - 781a2e51be4056a7320108f8f0df8a13 - - - -
0x009662B4
-
0x00DA060C
-
0x00DCE6B8
-
0x00DCE694
+ 0x4a8623d2 + 781A2E51BE4056A7320108F8F0DF8A13 +
0x00966430
+
0x009662b4
+
0x013dc2c7
+
0x00da060c
+
0x00dce6b8
+
0x00dce694
- - - 0x4A9A6090 - 12cc4a3dbb6e6dfd7bc7aee458b9471a - - - -
0x009662B4
-
0x00DA061C
-
0x00DCE6C8
-
0x00DCE6A4
+ + 0x4a9a6090 + 12CC4A3DBB6E6DFD7BC7AEE458B9471A +
0x015be808
+
0x015aa470
+
0x015bde5c
+
0x01757f3c
+
0x00966430
+
0x009662b4
+
0x013ef62c
+
0x015bdf50
+
0x01604104
+
0x01601d84
+
0x01603ef4
+
0x013ef5f4
+
0x013dc2eb
+
0x01601dbc
+
0x01601dc0
+
0x01601dc4
+
0x01603b84
+
0x01603ab8
+
0x01604134
+
0x015c49dc
+
0x015bde7c
+
0x01746e98
+
0x00da061c
+
0x00dce6c8
+
0x00dce6a4
+
0x016033bc
+
0x01601da4
+
0x01601da8
+
0x01601dac
- - - 0x4A9B1A72 - 59ab29021aca9f3c66b1ab102fb3ceea - - -
0x01757F38
-
0x15BDF50
- 0x68 -
0x013EF900
-
0x13DC2EB
-
0x013EF970
- - 0x24 - 0x1C - 0x28 - 0x24 - 0x24 - 0x24 - 0x5C - 0x94 - 0xB0 - + + 0x4a9b1a72 + 59AB29021ACA9F3C66B1AB102FB3CEEA - - 0x4B6B7879 - de66405f54d98297303d439b3b7aa30e - -
0x016367DC
-
0x015DEEC8
-
0x015F3260
-
0x015F9434
-
0x015F28B4
-
0x015F29A8
- - -
0x01638B8C
-
0x01638B5C
- - -
0x016367FC
-
0x01636800
-
0x01636804
- - + 0x4b6b7879 + DE66405F54D98297303D439B3B7AA30E +
0x015f3260
+
0x015deec8
+
0x015f28b4
+
0x0178c994
+
0x0099ae08
+
0x0099ac88
+
0x014240dc
+
0x015f29a8
+
0x01638b5c
+
0x016367dc
+
0x0163894c
+
0x014240a4
+
0x01410cc1
0x01636814
0x01636818
-
0x0163681C
- - -
0x01637E14
- -
0x0163894C
- -
0x0099AC88
-
0x00DD4FEC
-
0x00E03098
-
0x00E03074
-
0x0177B8F0
-
0x0099AE0C
-
0x01410CC1
-
0x014243C4
-
0x0178C994
- -
0x014240A4
-
0x014240DC
- -
0x16385DC
-
0x1638510
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
0x0163681c
+
0x016385dc
+
0x01638510
+
0x01638b8c
+
0x015f9434
+
0x014243c4
+
0x0177b8f0
+
0x00dd4fec
+
0x00e03098
+
0x00e03074
+
0x01637e14
+
0x016367fc
+
0x01636800
+
0x01636804
- + 0x4b81b00d 5cdc6f4804809f4d5cacdb66785e8cda - -
0x016D2DD4
-
0x167B4C0
-
0x168f858
-
0x01695A2C
-
0x168EEAC
-
0x0168EFA0
- - -
0x016D5184
-
0x016D5154
- - -
0x16D2DF4
-
0x16D2DF8
-
0x16D2DFC
- - -
0x016D2E0C
-
0x016D2E10
-
0x016D2E14
- - -
0x016D440C
- -
0x016D4F44
- -
0x9772b8
-
0xDB1584
-
0xDDF630
-
0xDDF60C
-
0x1817EE8
-
0x977438
-
0x014AD278
-
0x014C09BC
-
0x01828F8C
- -
0x014C069C
-
0x014C06D4
- -
0x016D4BD4
-
0x16D4B08
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
0x00977438
+
0x009772b8
+
0x014ad278
+
0x00db1584
+
0x00ddf630
+
0x00ddf60c
- - - 0x4B90268A - 13640a273d90af39425b798ae9823757 - -
0x01555E14
- - -
0x014FE500
+ 0x4b90268a + 13640A273D90AF39425B798AE9823757
0x01512898
-
0x01518A6C
-
0x01511EEC
-
0x01511FE0
- - - -
0x015581C4
-
0x01558194
- - -
0x01555E34
-
0x01555E38
-
0x01555E3C
- - -
0x01555E4C
-
0x01555E50
-
0x01555E54
- - -
0x0155744C
- -
0x01557F84
- -
0x0097A2B8
-
0x00CF4230
-
0x00D222DC
-
0x00D222B8
-
0x0169AF28
-
0x016AC1A0
-
0x0132FF1E
-
0x013439FC
- -
0x016ABFC8
- - -
0x01558194
-
0x01343710
- -
0x01557C14
-
0x01557B48
- - +
0x01511fe0
+
0x01558194
+
0x01555e14
+
0x01557f84
+
0x013436dc
+
0x0132ff1e
+
0x01555e4c
+
0x01555e50
+
0x01555e54
+
0x01557c14
+
0x01557b48
+
0x015581c4
+
0x01518a6c
+
0x013439fc
+
0x0169af28
+
0x00cf4230
+
0x00d222dc
+
0x00d222b8
+
0x0155744c
+
0x01555e34
+
0x01555e38
+
0x01555e3c
0x4B918BB9 af29004e1763bb3460faa11907c3ac90 - .-"""-. ' \