wowdump 0.2.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +17 -111
  3. package/dist/adapters/reader.js +33 -0
  4. package/dist/analysis/disassemble.js +77 -0
  5. package/dist/{frida-runtime.js → analysis/frida-runtime.js} +3 -25
  6. package/dist/analysis/runtime-script.js +36 -0
  7. package/dist/cli.js +563 -0
  8. package/dist/core/profile-engine.js +238 -0
  9. package/dist/frida-worker.js +99 -0
  10. package/dist/reader/broker.js +475 -0
  11. package/dist/reader/client.js +1 -0
  12. package/dist/reader/launcher.js +219 -0
  13. package/dist/reader/main.js +100 -0
  14. package/dist/reader/protocol.js +1 -0
  15. package/dist/reader/windows.js +242 -0
  16. package/dist/reader-main.js +2 -0
  17. package/dist/toolchain.js +123 -0
  18. package/package.json +19 -37
  19. package/skills/wowdump/SKILL.md +22 -0
  20. package/skills/wowdump/references/commands.md +63 -0
  21. package/skills/wowdump/references/disassemble.md +18 -0
  22. package/skills/wowdump/references/dynamic.md +54 -0
  23. package/skills/wowdump/references/evidence-workflow.md +41 -0
  24. package/skills/wowdump/references/profiles.md +34 -0
  25. package/skills/wowdump/references/request-schema.md +28 -0
  26. package/skills/wowdump/references/workflow.md +44 -0
  27. package/skills/wowdump/scripts/dynamic-session.js +133 -0
  28. package/dist/agent.js +0 -1335
  29. package/dist/analysis-path.js +0 -38
  30. package/dist/analysis-process-log.js +0 -146
  31. package/dist/broker-client.js +0 -411
  32. package/dist/broker-codec.js +0 -148
  33. package/dist/broker-core.js +0 -1045
  34. package/dist/broker-gateway.js +0 -447
  35. package/dist/broker-ledger.js +0 -196
  36. package/dist/broker-main.js +0 -291
  37. package/dist/broker-protocol.js +0 -119
  38. package/dist/broker-runtime.js +0 -1283
  39. package/dist/broker-server.js +0 -466
  40. package/dist/build-bundle-loader.js +0 -183
  41. package/dist/build-bundle.js +0 -11
  42. package/dist/discovery.js +0 -59
  43. package/dist/dry-run.js +0 -38
  44. package/dist/error-log.js +0 -71
  45. package/dist/focus-errors.js +0 -63
  46. package/dist/focus-service.js +0 -1855
  47. package/dist/focused-session.js +0 -1357
  48. package/dist/mcp-main.js +0 -51
  49. package/dist/mcp.js +0 -924
  50. package/dist/observability.js +0 -41
  51. package/dist/process-log-lock.js +0 -195
  52. package/dist/processes.js +0 -47
  53. package/dist/runtime-config.js +0 -399
  54. package/dist/session.js +0 -145
  55. package/dist/storage.js +0 -12
  56. package/dist/wow-analysis.js +0 -1430
  57. package/resources/builds/retail/12.0.7.68974/build-profile.json +0 -290
  58. package/resources/builds/retail/12.0.7.68974/data-sources.json +0 -1633
  59. package/resources/builds/retail/12.0.7.68974/lua-targets.jsonl +0 -5130
  60. package/resources/builds/retail/12.0.7.68974/manifest.json +0 -63
  61. package/resources/builds/retail/12.0.7.68974/signatures.json +0 -260
  62. /package/dist/{adapters.js → core/build-adapters.js} +0 -0
  63. /package/dist/{types.js → core/types.js} +0 -0
@@ -1,1633 +0,0 @@
1
- {
2
- "schema": "wowdump.data-sources.v1",
3
- "buildKey": "retail@12.0.7.68974",
4
- "module": "Wow.exe",
5
- "imageBase": "0x140000000",
6
- "statusVocabulary": {
7
- "reader_ready": "Static and live invariants plus an independent cross-check passed.",
8
- "partial": "A specific data root/layout exists, but live verification is incomplete.",
9
- "unresolved": "Only a semantic anchor exists or the data root/layout is not established."
10
- },
11
- "records": [
12
- {
13
- "dataSourceId": "ds-aura-provider-anchor",
14
- "buildKey": "retail@12.0.7.68974",
15
- "module": "Wow.exe",
16
- "systemIds": [
17
- "aura",
18
- "ui-data-provider"
19
- ],
20
- "classification": "api-anchor-without-data-root",
21
- "status": "unresolved",
22
- "getterRva": null,
23
- "getterVa": null,
24
- "globalPointerRva": null,
25
- "pointerChain": [],
26
- "structureSize": null,
27
- "fields": [],
28
- "containerDefinition": null,
29
- "invariants": [],
30
- "updateEntry": {
31
- "rva": null,
32
- "status": "unresolved"
33
- },
34
- "sourceApis": [
35
- {
36
- "api": "C_Commentator.AddTrackedDefensiveAuras",
37
- "rva": "0xf28340",
38
- "va": "0x140f28340",
39
- "entryHash": "a1c0943a5c54989283963ea12f582261ba8ad56f11635de209e91d8d84c2c669",
40
- "sourceKind": "namespace-registration"
41
- },
42
- {
43
- "api": "C_Commentator.AddTrackedOffensiveAuras",
44
- "rva": "0xf29900",
45
- "va": "0x140f29900",
46
- "entryHash": "cf8006d342155f5d18a04c1fb9673b33a4f0339c37bc811ea610e0b15dc1506a",
47
- "sourceKind": "namespace-registration"
48
- },
49
- {
50
- "api": "C_Commentator.GetPlayerAuraInfo",
51
- "rva": "0xf4b790",
52
- "va": "0x140f4b790",
53
- "entryHash": "75154d90fb57a2d5070ecf7d45d3c7c123c048690247859c0e261a1169c3ff99",
54
- "sourceKind": "namespace-registration"
55
- },
56
- {
57
- "api": "C_Commentator.GetPlayerAuraInfoByUnit",
58
- "rva": "0xf4c4f0",
59
- "va": "0x140f4c4f0",
60
- "entryHash": "f336536f231aaa2516ca015acdfbae15b6e577f36b823efcb96cb310a6077a1f",
61
- "sourceKind": "namespace-registration"
62
- },
63
- {
64
- "api": "C_Commentator.HasTrackedAuras",
65
- "rva": "0xf61bb0",
66
- "va": "0x140f61bb0",
67
- "entryHash": "094a280198b55e2eae5f42041af6c2365155cc85bea846c37a70ca5621b8c959",
68
- "sourceKind": "namespace-registration"
69
- },
70
- {
71
- "api": "C_Commentator.IsTrackedDefensiveAura",
72
- "rva": "0xf63160",
73
- "va": "0x140f63160",
74
- "entryHash": "cb926088de3bddf33d42b00668c1976ef2c84baffab5cf15729e07df6a4040d5",
75
- "sourceKind": "namespace-registration"
76
- },
77
- {
78
- "api": "C_Commentator.IsTrackedOffensiveAura",
79
- "rva": "0xf63850",
80
- "va": "0x140f63850",
81
- "entryHash": "f6fe6b0ef04c4f53b6e634e3f19c9bc5f9c2f188799f7b857717851cac7abe2f",
82
- "sourceKind": "namespace-registration"
83
- },
84
- {
85
- "api": "C_Commentator.ResetTrackedAuras",
86
- "rva": "0xf69f70",
87
- "va": "0x140f69f70",
88
- "entryHash": "4464e9c84e659ca59f8fea31c55769c7c99302c1a244828dbff8e847fa9d7f72",
89
- "sourceKind": "namespace-registration"
90
- },
91
- {
92
- "api": "C_Commentator.SetBlocklistedAuras",
93
- "rva": "0xf6dca0",
94
- "va": "0x140f6dca0",
95
- "entryHash": "59393ce23840b0f1165c84245c07ecb4fb6e2fb3ea03adf6a226c946b4f428ae",
96
- "sourceKind": "namespace-registration"
97
- },
98
- {
99
- "api": "C_Secrets.GetSpellAuraSecrecy",
100
- "rva": "0x197df70",
101
- "va": "0x14197df70",
102
- "entryHash": "daa08168084fb47c8a43a7c88baa73c7465b06995da606c291978d55af1c18a9",
103
- "sourceKind": "namespace-registration"
104
- },
105
- {
106
- "api": "C_Secrets.ShouldAurasBeSecret",
107
- "rva": "0x1980180",
108
- "va": "0x141980180",
109
- "entryHash": "35e2035ff2a806e350a148955df54502bad0af95bc87e54a67337514b6e09a6a",
110
- "sourceKind": "namespace-registration"
111
- },
112
- {
113
- "api": "C_Secrets.ShouldSpellAuraBeSecret",
114
- "rva": "0x1980f50",
115
- "va": "0x141980f50",
116
- "entryHash": "ec09fe60982f304cec269abbf6740a70aaef2a58eebb068e46821b8648cfc385",
117
- "sourceKind": "namespace-registration"
118
- },
119
- {
120
- "api": "C_Secrets.ShouldUnitAuraIndexBeSecret",
121
- "rva": "0x1983260",
122
- "va": "0x141983260",
123
- "entryHash": "4ad02336a22420c7335361d2e5d4803a97e19728b8fec7dd87c2b51437d6ea1a",
124
- "sourceKind": "namespace-registration"
125
- },
126
- {
127
- "api": "C_Secrets.ShouldUnitAuraInstanceBeSecret",
128
- "rva": "0x19839b0",
129
- "va": "0x1419839b0",
130
- "entryHash": "1afbe98205c2324e75edd4f832114058c2bccf63e4aea4a1de89bc1a21ee2cce",
131
- "sourceKind": "namespace-registration"
132
- },
133
- {
134
- "api": "C_Secrets.ShouldUnitAuraSlotBeSecret",
135
- "rva": "0x19840a0",
136
- "va": "0x1419840a0",
137
- "entryHash": "b06c7edf0a16fba416df3b1949da3b5d705a2ad2266e474f74428525eb988ce0",
138
- "sourceKind": "namespace-registration"
139
- },
140
- {
141
- "api": "C_Spell.GetAuraStatChanges",
142
- "rva": "0x1a185d0",
143
- "va": "0x141a185d0",
144
- "entryHash": "e692fc845a985e08b407d06f59e5a9b0e40ae562c90164f5b0fc8f80cf0749b2",
145
- "sourceKind": "namespace-registration"
146
- },
147
- {
148
- "api": "C_Spell.GetSpellMaxCumulativeAuraApplications",
149
- "rva": "0x1a31e90",
150
- "va": "0x141a31e90",
151
- "entryHash": "f3a25aeaaa40483622ecb0244a50f459afb1162000e1e5c90abf07951ea99222",
152
- "sourceKind": "namespace-registration"
153
- },
154
- {
155
- "api": "C_Spell.IsPriorityAura",
156
- "rva": "0x1a3f140",
157
- "va": "0x141a3f140",
158
- "entryHash": "b7ab80e8e69fc2dc065dd79deb7604ca71f3ab680c2efbe3e85639c20702ce25",
159
- "sourceKind": "namespace-registration"
160
- },
161
- {
162
- "api": "C_TooltipInfo.GetUnitAura",
163
- "rva": "0x1ba1d10",
164
- "va": "0x141ba1d10",
165
- "entryHash": "53309e822ba1c181ecb0945b16f3a8ce95157d07aa6d9a72d2d1ad1a3a1cb920",
166
- "sourceKind": "namespace-registration"
167
- },
168
- {
169
- "api": "C_TooltipInfo.GetUnitAuraByAuraInstanceID",
170
- "rva": "0x1ba3960",
171
- "va": "0x141ba3960",
172
- "entryHash": "53309e822ba1c181ecb0945b16f3a8ce95157d07aa6d9a72d2d1ad1a3a1cb920",
173
- "sourceKind": "namespace-registration"
174
- }
175
- ],
176
- "sourceApiCount": 68,
177
- "staticEvidence": [],
178
- "readerStatus": "unresolved",
179
- "unresolvedReason": "Aura/DataProvider APIs are indexed, but provider instance, container layout, and update path are not resolved.",
180
- "nextAction": "Cluster C_UnitAuras wrappers and trace ResetAuraDataProvider/SwitchAuraDataProvider to the provider owner."
181
- },
182
- {
183
- "dataSourceId": "ds-client-cache-anchor",
184
- "buildKey": "retail@12.0.7.68974",
185
- "module": "Wow.exe",
186
- "systemIds": [
187
- "client-cache"
188
- ],
189
- "classification": "api-anchor-without-cache-container",
190
- "status": "unresolved",
191
- "getterRva": null,
192
- "getterVa": null,
193
- "globalPointerRva": null,
194
- "pointerChain": [],
195
- "structureSize": null,
196
- "fields": [],
197
- "containerDefinition": null,
198
- "invariants": [],
199
- "updateEntry": {
200
- "rva": null,
201
- "status": "unresolved"
202
- },
203
- "sourceApis": [
204
- {
205
- "api": "C_ClubFinder.ClearAllFinderCache",
206
- "rva": "0xed4cd0",
207
- "va": "0x140ed4cd0",
208
- "entryHash": "5f7baf7a348d496786875c132b795b0ff00464c657aa46231915ab627731af05",
209
- "sourceKind": "namespace-registration"
210
- },
211
- {
212
- "api": "C_ClubFinder.ClearClubApplicantsCache",
213
- "rva": "0xed5380",
214
- "va": "0x140ed5380",
215
- "entryHash": "c695888a8182cd1d353be1aa5d1d82f29062b9db8f35accf372a553aa8ebf0ea",
216
- "sourceKind": "namespace-registration"
217
- },
218
- {
219
- "api": "C_ClubFinder.ClearClubFinderPostingsCache",
220
- "rva": "0xed5a20",
221
- "va": "0x140ed5a20",
222
- "entryHash": "7422a296195ce560c40bb6e945f8660ca402937253e1a7aac8ac6614ddde2ede",
223
- "sourceKind": "namespace-registration"
224
- },
225
- {
226
- "api": "C_ClubFinder.ResetClubPostingMapCache",
227
- "rva": "0xeee820",
228
- "va": "0x140eee820",
229
- "entryHash": "8bd49a767274a0e495ab392ca0f5deb342debe48fc9c6323ae8d0628e82b2dc6",
230
- "sourceKind": "namespace-registration"
231
- },
232
- {
233
- "api": "C_Item.IsItemDataCached",
234
- "rva": "0x14dec70",
235
- "va": "0x1414dec70",
236
- "entryHash": "b0bb17276b16e6c66d4bb689d6584b4c91f7cd7ae52679902770bebdf0f858ec",
237
- "sourceKind": "namespace-registration"
238
- },
239
- {
240
- "api": "C_Item.IsItemDataCachedByID",
241
- "rva": "0x14df350",
242
- "va": "0x1414df350",
243
- "entryHash": "4f85ed783a13468b2fa13b98b388982028cc7c692bc96e51eb43226d6d84fdf0",
244
- "sourceKind": "namespace-registration"
245
- },
246
- {
247
- "api": "C_Spell.IsSpellDataCached",
248
- "rva": "0x1a414a0",
249
- "va": "0x141a414a0",
250
- "entryHash": "327058c16fb2fde84446c8709fea87e46266e9e1e8c2967bd9371be83d8d2afb",
251
- "sourceKind": "namespace-registration"
252
- }
253
- ],
254
- "sourceApiCount": 7,
255
- "staticEvidence": [],
256
- "readerStatus": "unresolved",
257
- "unresolvedReason": "Cache invalidation APIs are present, but cache key/value types, owner, and storage root are unresolved.",
258
- "nextAction": "Trace a naturally occurring cache clear/update transition and identify the modified container."
259
- },
260
- {
261
- "dataSourceId": "ds-cvar-registry",
262
- "buildKey": "retail@12.0.7.68974",
263
- "module": "Wow.exe",
264
- "systemIds": [
265
- "cvar-config",
266
- "container-index"
267
- ],
268
- "classification": "statically-resolved-global-open-addressing-hash-table",
269
- "status": "partial",
270
- "getterRva": "0x3cc2930",
271
- "getterVa": "0x143cc2930",
272
- "globalPointerRva": "0x5898dd8",
273
- "pointerChain": [
274
- {
275
- "step": 0,
276
- "operation": "moduleBase + 0x5898dd8",
277
- "result": "address of slot-array pointer"
278
- },
279
- {
280
- "step": 1,
281
- "operation": "readPointer",
282
- "result": "slot-array base",
283
- "validation": "readable memory"
284
- },
285
- {
286
- "step": 2,
287
- "operation": "slotBase + index * 0x10",
288
- "result": "[hash, CVar*] slot"
289
- }
290
- ],
291
- "structureSize": {
292
- "slotBytes": 16,
293
- "cvarMinimumObservedBytes": 16,
294
- "fullCVarSize": null,
295
- "status": "partial"
296
- },
297
- "fields": [
298
- {
299
- "name": "capacity",
300
- "rva": "0x5898dd0",
301
- "type": "uint64",
302
- "status": "statically_confirmed"
303
- },
304
- {
305
- "name": "slots",
306
- "rva": "0x5898dd8",
307
- "type": "CVarSlot*",
308
- "status": "statically_confirmed"
309
- },
310
- {
311
- "name": "tombstoneGate",
312
- "rva": "0x5898de8",
313
- "type": "uint64",
314
- "status": "statically_confirmed",
315
- "semantics": "partial"
316
- },
317
- {
318
- "name": "slot.hash",
319
- "offset": "0x0",
320
- "type": "uint64",
321
- "status": "statically_confirmed"
322
- },
323
- {
324
- "name": "slot.cvar",
325
- "offset": "0x8",
326
- "type": "CVar*",
327
- "status": "statically_confirmed"
328
- },
329
- {
330
- "name": "cvar.flags",
331
- "offset": "0x4",
332
- "type": "uint32",
333
- "status": "statically_confirmed",
334
- "semantics": "partial"
335
- },
336
- {
337
- "name": "cvar.value",
338
- "offset": "0x8",
339
- "type": "char*",
340
- "status": "statically_confirmed"
341
- }
342
- ],
343
- "containerDefinition": {
344
- "kind": "open-addressing-hash-table",
345
- "slotStride": 16,
346
- "key": "case-insensitive FNV-1a 64-bit hash",
347
- "value": "CVar*",
348
- "emptyHash": "0x0",
349
- "conditionalTombstoneHash": "0x1",
350
- "probe": "triangular/quadratic progression under capacity-1 mask"
351
- },
352
- "invariants": [
353
- "capacity is non-zero, power-of-two, and bounded by reader maxSlots",
354
- "slots pointer is readable for capacity * 0x10 bytes",
355
- "lookup index is hash & (capacity - 1)",
356
- "non-empty CVar pointer is null or points to readable memory",
357
- "value pointer is null or a bounded NUL-terminated string"
358
- ],
359
- "updateEntry": {
360
- "rva": null,
361
- "status": "unresolved"
362
- },
363
- "sourceApis": [
364
- {
365
- "api": "C_CVar.GetCVar",
366
- "rva": "0xd1c040",
367
- "va": "0x140d1c040",
368
- "entryHash": "27897074f2e1c64c1f8f9f835cb5f83b7288698879275289929dd356633b6687",
369
- "sourceKind": "namespace-registration"
370
- },
371
- {
372
- "api": "C_CVar.GetCVarBitfield",
373
- "rva": "0xd1d3c0",
374
- "va": "0x140d1d3c0",
375
- "entryHash": "8e8efe64a17ce56f915261b6e489f98bc40d01a2f3f97fe0b090cf85b0f69906",
376
- "sourceKind": "namespace-registration"
377
- },
378
- {
379
- "api": "C_CVar.GetCVarBool",
380
- "rva": "0xd1db60",
381
- "va": "0x140d1db60",
382
- "entryHash": "16620c8355c31455112700ac7fcbf6d6a7acc7df02312a545b157a8e3c821308",
383
- "sourceKind": "namespace-registration"
384
- },
385
- {
386
- "api": "C_CVar.GetCVarDefault",
387
- "rva": "0xd1e280",
388
- "va": "0x140d1e280",
389
- "entryHash": "27897074f2e1c64c1f8f9f835cb5f83b7288698879275289929dd356633b6687",
390
- "sourceKind": "namespace-registration"
391
- },
392
- {
393
- "api": "C_CVar.GetCVarInfo",
394
- "rva": "0xd1f810",
395
- "va": "0x140d1f810",
396
- "entryHash": "44dab8242452b0c45a212dc1eb137d1e805c3c090d54f08cf876c6bf52491116",
397
- "sourceKind": "namespace-registration"
398
- },
399
- {
400
- "api": "C_CVar.RegisterCVar",
401
- "rva": "0xd20010",
402
- "va": "0x140d20010",
403
- "entryHash": "2b4d9da65cfd079cf2ce4180dd835a457a075b99be1fe9f0934bba275c90009c",
404
- "sourceKind": "namespace-registration"
405
- },
406
- {
407
- "api": "C_CVar.ResetTestCVars",
408
- "rva": "0xd206e0",
409
- "va": "0x140d206e0",
410
- "entryHash": "23f86485ee18d077de0d05e8bccb397916056b77213413aa3947a16375025bca",
411
- "sourceKind": "namespace-registration"
412
- },
413
- {
414
- "api": "C_CVar.SetCVar",
415
- "rva": "0xd20d70",
416
- "va": "0x140d20d70",
417
- "entryHash": "479fcd2db4cf682bdcee98376d605d72d19b9c1829f9a2204433b3c2ab59f546",
418
- "sourceKind": "namespace-registration"
419
- },
420
- {
421
- "api": "C_CVar.SetCVarBitfield",
422
- "rva": "0xd215f0",
423
- "va": "0x140d215f0",
424
- "entryHash": "c144f0715d29e8b42b96d97c1d91026ea04120196112f06e98e4f2bbb09c99b8",
425
- "sourceKind": "namespace-registration"
426
- }
427
- ],
428
- "staticEvidence": [
429
- {
430
- "kind": "ida-decompilation",
431
- "va": "0x143cc2930",
432
- "rva": "0x3cc2930",
433
- "excerpt": "index = hash & (capacity - 1); slot = slots + 16 * index; return slot[1]",
434
- "query": "mcp__idalib__decompile(0x143cc2930)"
435
- },
436
- {
437
- "kind": "ida-decompilation",
438
- "va": "0x142a49720",
439
- "rva": "0x2a49720",
440
- "excerpt": "case-insensitive FNV-1a -> sub_143CC29E0; flags at +4; value pointer at +8",
441
- "query": "mcp__idalib__decompile(0x142a49720)"
442
- },
443
- {
444
- "context": "CVar \"%s\" is \"%s\"",
445
- "rva": "0x3ebd258",
446
- "va": "0x143ebd258",
447
- "section": ".rdata"
448
- },
449
- {
450
- "context": "Set the value of a CVar",
451
- "rva": "0x3ebd38b",
452
- "va": "0x143ebd38b",
453
- "section": ".rdata"
454
- },
455
- {
456
- "context": "Set the value of a CVar to its startup value",
457
- "rva": "0x3ebd3a3",
458
- "va": "0x143ebd3a3",
459
- "section": ".rdata"
460
- },
461
- {
462
- "context": "Set the value of a CVar to its coded default value",
463
- "rva": "0x3ebd3e3",
464
- "va": "0x143ebd3e3",
465
- "section": ".rdata"
466
- },
467
- {
468
- "context": "List CVars (filtered by substring if provided)",
469
- "rva": "0x3ebd41d",
470
- "va": "0x143ebd41d",
471
- "section": ".rdata"
472
- },
473
- {
474
- "context": "<CVar.%s> %s",
475
- "rva": "0x3ebd501",
476
- "va": "0x143ebd501",
477
- "section": ".rdata"
478
- },
479
- {
480
- "context": "<CVar.%s> Bad Character %u",
481
- "rva": "0x3ebd511",
482
- "va": "0x143ebd511",
483
- "section": ".rdata"
484
- },
485
- {
486
- "context": "CVar '%s' failed validation for its initial value.",
487
- "rva": "0x3ebd560",
488
- "va": "0x143ebd560",
489
- "section": ".rdata"
490
- }
491
- ],
492
- "readerStatus": "partial",
493
- "unresolvedReason": "No live memory traversal and no Lua/UI value cross-check has been recorded for this root.",
494
- "nextAction": "Dynamically discover Wow.exe, validate the getter signature and globals, then compare a bounded CVar lookup with C_CVar.GetCVar through the real Lua VM."
495
- },
496
- {
497
- "dataSourceId": "ds-db2-runtime-anchor",
498
- "buildKey": "retail@12.0.7.68974",
499
- "module": "Wow.exe",
500
- "systemIds": [
501
- "db2-casc-runtime"
502
- ],
503
- "classification": "static-type-anchor-without-runtime-object-root",
504
- "status": "unresolved",
505
- "getterRva": null,
506
- "getterVa": null,
507
- "globalPointerRva": null,
508
- "pointerChain": [],
509
- "structureSize": null,
510
- "fields": [],
511
- "containerDefinition": null,
512
- "invariants": [],
513
- "updateEntry": {
514
- "rva": null,
515
- "status": "unresolved"
516
- },
517
- "sourceApis": [
518
- {
519
- "api": "C_AccountStore.GetCategoryItems",
520
- "rva": "0xbb2700",
521
- "va": "0x140bb2700",
522
- "entryHash": "59393ce23840b0f1165c84245c07ecb4fb6e2fb3ea03adf6a226c946b4f428ae",
523
- "sourceKind": "namespace-registration"
524
- },
525
- {
526
- "api": "C_AccountStore.GetItemInfo",
527
- "rva": "0xbb5dd0",
528
- "va": "0x140bb5dd0",
529
- "entryHash": "ed71894e651900f425316fbae87f3498731948032fcc996606776a4927eee83a",
530
- "sourceKind": "namespace-registration"
531
- },
532
- {
533
- "api": "C_AccountStore.RefundItem",
534
- "rva": "0xbb7a60",
535
- "va": "0x140bb7a60",
536
- "entryHash": "2c4d1de9d6d83ec0a20c854c162361b5ac18dbf77342a5a5f98a9aa1cb513325",
537
- "sourceKind": "namespace-registration"
538
- },
539
- {
540
- "api": "C_AchievementInfo.GetRewardItemID",
541
- "rva": "0xbc5b10",
542
- "va": "0x140bc5b10",
543
- "entryHash": "0263d1b1d5ea68e7dff279321b1a28b1742c3a03cea2b6cd6985500212955353",
544
- "sourceKind": "namespace-registration-pagination"
545
- },
546
- {
547
- "api": "C_ActionBar.FindSpellActionButtons",
548
- "rva": "0xbcf5e0",
549
- "va": "0x140bcf5e0",
550
- "entryHash": "59393ce23840b0f1165c84245c07ecb4fb6e2fb3ea03adf6a226c946b4f428ae",
551
- "sourceKind": "namespace-registration"
552
- },
553
- {
554
- "api": "C_ActionBar.GetItemActionOnEquipSpellID",
555
- "rva": "0xbdf4b0",
556
- "va": "0x140bdf4b0",
557
- "entryHash": "a2f3f59eac0941625c9a8c87b126ecd99a2454b5e9033e3beb4e87d1aa588c8b",
558
- "sourceKind": "namespace-registration"
559
- },
560
- {
561
- "api": "C_ActionBar.GetSpell",
562
- "rva": "0xbe3a10",
563
- "va": "0x140be3a10",
564
- "entryHash": "083d6894d8359c556558381e58a8da67dd9413cd3e4a78e518e6785d29a2e0d4",
565
- "sourceKind": "namespace-registration"
566
- },
567
- {
568
- "api": "C_ActionBar.HasSpellActionButtons",
569
- "rva": "0xbe8d80",
570
- "va": "0x140be8d80",
571
- "entryHash": "268264104189879d6647b4d8ddf58203031dee7e48d7364b5d471c1017847cfc",
572
- "sourceKind": "namespace-registration"
573
- },
574
- {
575
- "api": "C_ActionBar.IsItemAction",
576
- "rva": "0xbeff90",
577
- "va": "0x140beff90",
578
- "entryHash": "be0a5f75e3137b863fd218b2c7ec5bd124ac3636c1893eae7161784a1d67a84f",
579
- "sourceKind": "namespace-registration"
580
- },
581
- {
582
- "api": "C_ArtifactUI.CanApplyRelicItemIDToEquippedArtifactSlot",
583
- "rva": "0xc31320",
584
- "va": "0x140c31320",
585
- "entryHash": "7d881d1cc8f79647f6e50214e41fb5ff78d9d4b1b6f1f3922730fd71e3e189f5",
586
- "sourceKind": "namespace-registration"
587
- },
588
- {
589
- "api": "C_ArtifactUI.CanApplyRelicItemIDToSlot",
590
- "rva": "0xc31a40",
591
- "va": "0x140c31a40",
592
- "entryHash": "e9057928da692e58e71049c8b4d3995cbd0815f2c14602caf9b1adcd84f4c375",
593
- "sourceKind": "namespace-registration"
594
- },
595
- {
596
- "api": "C_ArtifactUI.GetArtifactItemID",
597
- "rva": "0xc3cd50",
598
- "va": "0x140c3cd50",
599
- "entryHash": "d10ddb032c5fe7f290c1d90e142096aaa85446724e93e1feac0920dfef5c0ec7",
600
- "sourceKind": "namespace-registration"
601
- },
602
- {
603
- "api": "C_ArtifactUI.GetEquippedArtifactItemID",
604
- "rva": "0xc43800",
605
- "va": "0x140c43800",
606
- "entryHash": "67df07cbc32740ec3a53b3f9eb5acef006b342f12834d56d39700f57d12b7cc6",
607
- "sourceKind": "namespace-registration"
608
- },
609
- {
610
- "api": "C_ArtifactUI.GetItemLevelIncreaseProvidedByRelic",
611
- "rva": "0xc481a0",
612
- "va": "0x140c481a0",
613
- "entryHash": "65edd2269d402904d91395e536eca2ca548473be6d8e965a7c9cd5c27660ebbb",
614
- "sourceKind": "namespace-registration"
615
- },
616
- {
617
- "api": "C_ArtifactUI.GetPowersAffectedByRelicItemLink",
618
- "rva": "0xc53100",
619
- "va": "0x140c53100",
620
- "entryHash": "87936fdaff380ed09995caea63549534068e302367c91c8e291306bf897d3326",
621
- "sourceKind": "namespace-registration"
622
- },
623
- {
624
- "api": "C_ArtifactUI.GetRelicInfoByItemID",
625
- "rva": "0xc56830",
626
- "va": "0x140c56830",
627
- "entryHash": "6a3063a9217a9befa9a6863ce1c4de1a3e742a0e368104472814a93a1009c80d",
628
- "sourceKind": "namespace-registration"
629
- },
630
- {
631
- "api": "C_ArtifactUI.IsArtifactItem",
632
- "rva": "0xc5f620",
633
- "va": "0x140c5f620",
634
- "entryHash": "66bdbf7d665632914b3222b520628f5bb6cc103fd7e97edc0eecb5d5d8743e7c",
635
- "sourceKind": "namespace-registration"
636
- },
637
- {
638
- "api": "C_AssistedCombat.GetActionSpell",
639
- "rva": "0xc653d0",
640
- "va": "0x140c653d0",
641
- "entryHash": "6cf5f58a72f2f701888c79d5035f5b219e3d6e66db3660a4aaee58587048395d",
642
- "sourceKind": "namespace-registration-pagination"
643
- },
644
- {
645
- "api": "C_AssistedCombat.GetNextCastSpell",
646
- "rva": "0xc65a80",
647
- "va": "0x140c65a80",
648
- "entryHash": "76118e8d115ced837233480d572553ad2309598e03dbf1f4537635feeee8791d",
649
- "sourceKind": "namespace-registration-pagination"
650
- },
651
- {
652
- "api": "C_AssistedCombat.GetRotationSpells",
653
- "rva": "0xc66220",
654
- "va": "0x140c66220",
655
- "entryHash": "71bddbdbf34e3a758545e46e4dc71ee527162b2bb0ad59f3d045272e9e7b49de",
656
- "sourceKind": "namespace-registration-pagination"
657
- }
658
- ],
659
- "sourceApiCount": 600,
660
- "staticEvidence": [
661
- {
662
- "context": "const char *__cdecl WowGetRawTypeName<class blz::function<void __cdecl(int,class UIScriptedAnimationEffectRec_C const *,enum DB2CallbackEvent)>>(void)",
663
- "rva": "0x4f41e53",
664
- "va": "0x144f41e53",
665
- "section": ".rdata"
666
- },
667
- {
668
- "context": "wTypeName<struct blz::chained_hash_node<struct blz::pair<int const ,struct WowClientDB2<class UIScriptedAnimationEffectRec_C>::DBCALLBACK> >*>(void)",
669
- "rva": "0x4f421dc",
670
- "va": "0x144f421dc",
671
- "section": ".rdata"
672
- },
673
- {
674
- "context": "peName<struct blz::chained_hash_node<struct blz::pair<int const ,struct WowClientDB2<class SpellScriptTextRec_C>::DBCALLBACK> >*>(void)",
675
- "rva": "0x4f67def",
676
- "va": "0x144f67def",
677
- "section": ".rdata"
678
- },
679
- {
680
- "context": "peName<struct blz::chained_hash_node<struct blz::pair<int const ,struct WowClientDB2<class SpellScriptRec_C>::DBCALLBACK> >*>(void)",
681
- "rva": "0x4f67e9f",
682
- "va": "0x144f67e9f",
683
- "section": ".rdata"
684
- },
685
- {
686
- "context": "const char *__cdecl WowGetRawTypeName<class blz::function<void __cdecl(int,class SpellScriptRec_C const *,enum DB2CallbackEvent)>>(void)",
687
- "rva": "0x4f68646",
688
- "va": "0x144f68646",
689
- "section": ".rdata"
690
- },
691
- {
692
- "context": "const char *__cdecl WowGetRawTypeName<class blz::function<void __cdecl(int,class SpellScriptTextRec_C const *,enum DB2CallbackEvent)>>(void)",
693
- "rva": "0x4f686d6",
694
- "va": "0x144f686d6",
695
- "section": ".rdata"
696
- },
697
- {
698
- "context": "char *__cdecl WowGetRawTypeName<class blz::function<void __cdecl(int,class RecordPtr<class SceneScriptTextRec_C>,enum DB2CallbackEvent)>>(void)",
699
- "rva": "0x4f6e906",
700
- "va": "0x144f6e906",
701
- "section": ".rdata"
702
- },
703
- {
704
- "context": "<struct blz::chained_hash_node<struct blz::pair<int const ,struct WowClientSparseDB2<class SceneScriptTextRec_C>::DBSPARSECALLBACK> >*>(void)",
705
- "rva": "0x4f6eb05",
706
- "va": "0x144f6eb05",
707
- "section": ".rdata"
708
- }
709
- ],
710
- "readerStatus": "unresolved",
711
- "unresolvedReason": "DB2 runtime types and API consumers exist, but no DB2 instance/global or CASC-to-runtime object edge is resolved.",
712
- "nextAction": "Use DB2 type strings and callback xrefs to identify one table instance, then validate an ID against static DB2/CASC data."
713
- },
714
- {
715
- "dataSourceId": "ds-framescript-event-registry",
716
- "buildKey": "retail@12.0.7.68974",
717
- "module": "Wow.exe",
718
- "systemIds": [
719
- "lua-events-payload",
720
- "script-object",
721
- "singleton",
722
- "container-index"
723
- ],
724
- "classification": "statically-resolved-process-lifetime-global-chained-hash-table",
725
- "status": "partial",
726
- "getterRva": "0x66e7d0",
727
- "getterVa": "0x14066e7d0",
728
- "globalPointerRva": "0x7f93418",
729
- "globalStorageKind": "inline-container-object",
730
- "pointerChain": [
731
- {
732
- "step": 0,
733
- "operation": "moduleBase + 0x7f93418",
734
- "result": "inline container header"
735
- },
736
- {
737
- "step": 1,
738
- "operation": "read header +0/+8/+0x10/+0x18",
739
- "result": "bucketCount/buckets/size/maxLoadFactor"
740
- },
741
- {
742
- "step": 2,
743
- "operation": "follow bounded outer chains",
744
- "result": "FrameScript_Object* -> EventID map"
745
- }
746
- ],
747
- "structureSize": {
748
- "registryHeaderBytes": 32,
749
- "outerNodeBytes": null,
750
- "nestedEventMapNodeBytes": null,
751
- "status": "partial"
752
- },
753
- "fields": [
754
- {
755
- "name": "bucketCount",
756
- "offset": "0x0",
757
- "type": "uint64",
758
- "initialValue": 8,
759
- "status": "statically_confirmed"
760
- },
761
- {
762
- "name": "buckets",
763
- "offset": "0x8",
764
- "type": "Node**",
765
- "initialValue": 0,
766
- "status": "statically_confirmed"
767
- },
768
- {
769
- "name": "size",
770
- "offset": "0x10",
771
- "type": "uint64",
772
- "initialValue": 0,
773
- "status": "statically_confirmed"
774
- },
775
- {
776
- "name": "maxLoadFactor",
777
- "offset": "0x18",
778
- "type": "float",
779
- "initialValue": 1,
780
- "status": "statically_confirmed"
781
- },
782
- {
783
- "name": "tlsInitGuard",
784
- "rva": "0x7f93438",
785
- "type": "int32",
786
- "status": "statically_confirmed"
787
- }
788
- ],
789
- "containerDefinition": {
790
- "kind": "chained-hash-table-with-nested-unordered-map",
791
- "key": "FrameScript_Object*",
792
- "value": "unordered_map<LanguageBinding::EventID, vector<function<void()>>>",
793
- "removalRva": "0x66e860",
794
- "postRemovalCleanupRva": "0x68c730"
795
- },
796
- "invariants": [
797
- "getter returns moduleBase + 0x7f93418 after thread-safe initialization",
798
- "bucketCount is non-zero, power-of-two, and bounded by reader maxBuckets",
799
- "size is bounded by reader maxItems",
800
- "outer and nested chains are cycle-detected",
801
- "FrameScript_Object pointers are null or readable before identity inspection"
802
- ],
803
- "updateEntry": {
804
- "rva": "0x66e860",
805
- "role": "remove all event bindings for object key",
806
- "status": "statically_confirmed"
807
- },
808
- "sourceApis": [
809
- {
810
- "api": "C_EventScheduler.CanShowEvents",
811
- "rva": "0x113e430",
812
- "va": "0x14113e430",
813
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
814
- "sourceKind": "namespace-registration-pagination"
815
- },
816
- {
817
- "api": "C_EventScheduler.ClearReminder",
818
- "rva": "0x113eae0",
819
- "va": "0x14113eae0",
820
- "entryHash": "38cb430e2d9b82aa1425cbc097168a483e3250d039e25d9b94f45495daa6a2f2",
821
- "sourceKind": "namespace-registration-pagination"
822
- },
823
- {
824
- "api": "C_EventScheduler.GetActiveContinentName",
825
- "rva": "0x113ff20",
826
- "va": "0x14113ff20",
827
- "entryHash": "4e34ef8b8da2022126ecb68fcfae4437929d9bd1d60053835421029122481505",
828
- "sourceKind": "namespace-registration-pagination"
829
- },
830
- {
831
- "api": "C_EventScheduler.GetEventUiMapID",
832
- "rva": "0x1141a60",
833
- "va": "0x141141a60",
834
- "entryHash": "4bc9fed7a364308da0b83a24f51d1f45fc3a44925b4f0ad7446880beee269c4d",
835
- "sourceKind": "namespace-registration-pagination"
836
- },
837
- {
838
- "api": "C_EventScheduler.GetEventZoneName",
839
- "rva": "0x11420f0",
840
- "va": "0x1411420f0",
841
- "entryHash": "0c58c5535174828da016bc2374923565fe47db8faa1042c150b9e36c6138a73b",
842
- "sourceKind": "namespace-registration-pagination"
843
- },
844
- {
845
- "api": "C_EventScheduler.GetOngoingEvents",
846
- "rva": "0x1143750",
847
- "va": "0x141143750",
848
- "entryHash": "59393ce23840b0f1165c84245c07ecb4fb6e2fb3ea03adf6a226c946b4f428ae",
849
- "sourceKind": "namespace-registration-pagination"
850
- },
851
- {
852
- "api": "C_EventScheduler.GetScheduledEvents",
853
- "rva": "0x1145150",
854
- "va": "0x141145150",
855
- "entryHash": "59393ce23840b0f1165c84245c07ecb4fb6e2fb3ea03adf6a226c946b4f428ae",
856
- "sourceKind": "namespace-registration-pagination"
857
- },
858
- {
859
- "api": "C_EventScheduler.HasData",
860
- "rva": "0x1146a40",
861
- "va": "0x141146a40",
862
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
863
- "sourceKind": "namespace-registration-pagination"
864
- },
865
- {
866
- "api": "C_EventScheduler.HasSavedReminders",
867
- "rva": "0x11470f0",
868
- "va": "0x1411470f0",
869
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
870
- "sourceKind": "namespace-registration-pagination"
871
- },
872
- {
873
- "api": "C_EventScheduler.RequestEvents",
874
- "rva": "0x11477c0",
875
- "va": "0x1411477c0",
876
- "entryHash": "efcbe0088f7a2e4c8480eb4096e3d4a9976da83cb59d582dd4f0c13180e8e388",
877
- "sourceKind": "namespace-registration-pagination"
878
- },
879
- {
880
- "api": "C_EventScheduler.SetReminder",
881
- "rva": "0x1147e90",
882
- "va": "0x141147e90",
883
- "entryHash": "38cb430e2d9b82aa1425cbc097168a483e3250d039e25d9b94f45495daa6a2f2",
884
- "sourceKind": "namespace-registration-pagination"
885
- },
886
- {
887
- "api": "C_EventUtils.IsCallbackEvent",
888
- "rva": "0x114e7b0",
889
- "va": "0x14114e7b0",
890
- "entryHash": "c62c8b963c97cb6fcf09a7051ec31cb005e11a78a88162a6f1b369a7ae718694",
891
- "sourceKind": "namespace-registration"
892
- },
893
- {
894
- "api": "C_EventUtils.IsEventValid",
895
- "rva": "0x114eea0",
896
- "va": "0x14114eea0",
897
- "entryHash": "745dbb4b6943c0f314e848824ee7178307336ff78960699854f5735a89f1d4d0",
898
- "sourceKind": "namespace-registration"
899
- }
900
- ],
901
- "sourceApiRelationship": "event-system semantic anchors; direct native wrapper edge remains unresolved",
902
- "staticEvidence": [
903
- {
904
- "kind": "ida-decompilation",
905
- "va": "0x14066e7d0",
906
- "rva": "0x66e7d0",
907
- "excerpt": "thread-safe global initialization: {8, null, 0, 1.0f}; returns &qword_147F93418",
908
- "query": "mcp__idalib__decompile(0x14066e7d0)"
909
- },
910
- {
911
- "kind": "ida-decompilation",
912
- "va": "0x14066e860",
913
- "rva": "0x66e860",
914
- "excerpt": "bounded hash-chain lookup by FrameScript_Object* and nested EventID callback-vector destruction",
915
- "query": "mcp__idalib__analyze_batch(0x14066e860)"
916
- },
917
- {
918
- "context": "FrameScript_Object",
919
- "rva": "0x4f95fbd",
920
- "va": "0x144f95fbd",
921
- "section": ".rdata"
922
- },
923
- {
924
- "context": "d:\\BuildServer2\\Builder\\checkouts\\0\\Engine\\Source\\FrameScript\\FrameScript_Object.cpp",
925
- "rva": "0x4f9bf57",
926
- "va": "0x144f9bf57",
927
- "section": ".rdata"
928
- },
929
- {
930
- "context": "FrameScript_Object",
931
- "rva": "0x4f95fb8",
932
- "va": "0x144f95fb8",
933
- "section": ".rdata"
934
- },
935
- {
936
- "context": "d:\\BuildServer2\\Builder\\checkouts\\0\\Engine\\Source\\FrameScript\\FrameScript_Object.cpp",
937
- "rva": "0x4f9bf52",
938
- "va": "0x144f9bf52",
939
- "section": ".rdata"
940
- },
941
- {
942
- "context": "d:\\BuildServer2\\Builder\\checkouts\\0\\Engine\\Source\\FrameScript\\FrameScript_Object.cpp",
943
- "rva": "0x4f9bf5e",
944
- "va": "0x144f9bf5e",
945
- "section": ".rdata"
946
- },
947
- {
948
- "context": "const char *__cdecl WowGetRawTypeName<struct blz::chained_hash_node<struct blz::pair<class FrameScript_Object * const,class blz::unordered_map<enum LanguageBinding::EventID,class blz::vector<class blz::function<void __cdecl(void)>,class blz::allocator",
949
- "rva": "0x4f9c9db",
950
- "va": "0x144f9c9db",
951
- "section": ".rdata"
952
- },
953
- {
954
- "context": "const char *__cdecl WowGetRawTypeName<struct blz::chained_hash_node<struct blz::pair<class FrameScript_Object * const,class blz::unordered_map<enum LanguageBinding::EventID,class blz::vector<class blz::function<void __cdecl(void)>,class blz::allocator",
955
- "rva": "0x4f9cd4b",
956
- "va": "0x144f9cd4b",
957
- "section": ".rdata"
958
- },
959
- {
960
- "context": "const char *__cdecl WowGetRawTypeName<class FrameScript_Object*>(void)",
961
- "rva": "0x4f9db9c",
962
- "va": "0x144f9db9c",
963
- "section": ".rdata"
964
- },
965
- {
966
- "context": "eName<struct blz::chained_hash_node<struct blz::pair<enum LanguageBinding::EventID const ,class FrameScriptEvents::EventListenerList> >>(void)",
967
- "rva": "0x4f9dc40",
968
- "va": "0x144f9dc40",
969
- "section": ".rdata"
970
- },
971
- {
972
- "context": "eName<struct blz::chained_hash_node<struct blz::pair<enum LanguageBinding::EventID const ,class FrameScriptEvents::EventListenerList> >*>(void)",
973
- "rva": "0x4f9dd50",
974
- "va": "0x144f9dd50",
975
- "section": ".rdata"
976
- },
977
- {
978
- "context": "const char *__cdecl WowGetRawTypeName<struct FrameScript_Object::Script>(void)",
979
- "rva": "0x4f9de0d",
980
- "va": "0x144f9de0d",
981
- "section": ".rdata"
982
- },
983
- {
984
- "context": "const char *__cdecl WowGetRawTypeName<struct blz::pair<class FrameScript_Object const * const,class blz::vector<struct FrameScript_Object::Script,class blz::allocator<struct FrameScript_Object::Script> > >>(void)",
985
- "rva": "0x4f9de6d",
986
- "va": "0x144f9de6d",
987
- "section": ".rdata"
988
- }
989
- ],
990
- "readerStatus": "partial",
991
- "unresolvedReason": "Nested node offsets, vtable identity, and live event payload contents are not yet verified.",
992
- "nextAction": "Observe natural event registration/unregistration, validate the getter live, then enumerate only a bounded object sample."
993
- },
994
- {
995
- "dataSourceId": "ds-framescript-name-registry",
996
- "buildKey": "retail@12.0.7.68974",
997
- "module": "Wow.exe",
998
- "systemIds": [
999
- "frame",
1000
- "script-object",
1001
- "container-index"
1002
- ],
1003
- "classification": "statically-resolved-global-chained-hash-table",
1004
- "status": "partial",
1005
- "getterRva": "0x697930",
1006
- "getterVa": "0x140697930",
1007
- "getterRole": "insert-or-find; not a pure getter",
1008
- "globalPointerRva": "0x5923320",
1009
- "pointerChain": [
1010
- {
1011
- "step": 0,
1012
- "operation": "moduleBase + 0x5923320",
1013
- "result": "address of bucket-array pointer"
1014
- },
1015
- {
1016
- "step": 1,
1017
- "operation": "readPointer",
1018
- "result": "bucket-array base",
1019
- "validation": "readable memory"
1020
- },
1021
- {
1022
- "step": 2,
1023
- "operation": "follow bounded next links",
1024
- "result": "name -> FrameScript_Object* nodes"
1025
- }
1026
- ],
1027
- "structureSize": {
1028
- "nodeBytes": 56,
1029
- "registryHeaderBytes": 32,
1030
- "fullFrameScriptObjectSize": null,
1031
- "status": "partial"
1032
- },
1033
- "fields": [
1034
- {
1035
- "name": "bucketCount",
1036
- "rva": "0x5923318",
1037
- "type": "uint64",
1038
- "status": "statically_confirmed"
1039
- },
1040
- {
1041
- "name": "buckets",
1042
- "rva": "0x5923320",
1043
- "type": "Node**",
1044
- "status": "statically_confirmed"
1045
- },
1046
- {
1047
- "name": "size",
1048
- "rva": "0x5923328",
1049
- "type": "uint64",
1050
- "status": "statically_confirmed"
1051
- },
1052
- {
1053
- "name": "maxLoadFactor",
1054
- "rva": "0x5923330",
1055
- "type": "float",
1056
- "status": "statically_confirmed"
1057
- },
1058
- {
1059
- "name": "node.next",
1060
- "offset": "0x0",
1061
- "type": "Node*",
1062
- "status": "statically_confirmed"
1063
- },
1064
- {
1065
- "name": "node.nameData",
1066
- "offset": "0x8",
1067
- "type": "char*",
1068
- "status": "statically_confirmed"
1069
- },
1070
- {
1071
- "name": "node.nameLength",
1072
- "offset": "0x10",
1073
- "type": "uint64",
1074
- "status": "statically_confirmed"
1075
- },
1076
- {
1077
- "name": "node.object",
1078
- "offset": "0x30",
1079
- "type": "FrameScript_Object*",
1080
- "status": "statically_confirmed"
1081
- },
1082
- {
1083
- "name": "node.stringMetadata",
1084
- "offset": "0x18",
1085
- "type": "unknown",
1086
- "status": "unresolved"
1087
- }
1088
- ],
1089
- "containerDefinition": {
1090
- "kind": "chained-hash-table",
1091
- "key": "blz::basic_string<char>",
1092
- "value": "FrameScript_Object*",
1093
- "nodeBytes": 56,
1094
- "hashFunctionRva": "0x388c80",
1095
- "rehashRva": "0x697bb0"
1096
- },
1097
- "invariants": [
1098
- "bucketCount is non-zero, power-of-two, and bounded by reader maxBuckets",
1099
- "size is bounded by reader maxItems",
1100
- "buckets pointer is readable for bucketCount pointers",
1101
- "each next pointer is null or readable and cycle-detected",
1102
- "nameLength is bounded and nameData is readable for nameLength bytes",
1103
- "object pointer is null or points to readable committed memory"
1104
- ],
1105
- "updateEntry": {
1106
- "rva": "0x697930",
1107
- "role": "insert-or-find",
1108
- "status": "statically_confirmed"
1109
- },
1110
- "sourceApis": [
1111
- {
1112
- "api": "C_FrameManager.GetFrameVisibilityState",
1113
- "rva": "0x1c804a0",
1114
- "va": "0x141c804a0",
1115
- "entryHash": "442c90aa2c1528d9dcc3aa8da8e31c37057d590f25cc7cf6b8a0519069215b4a",
1116
- "sourceKind": "namespace-registration"
1117
- },
1118
- {
1119
- "api": "C_UIWidgetManager.GetAllWidgetsBySetID",
1120
- "rva": "0x1c8dba0",
1121
- "va": "0x141c8dba0",
1122
- "entryHash": "59393ce23840b0f1165c84245c07ecb4fb6e2fb3ea03adf6a226c946b4f428ae",
1123
- "sourceKind": "namespace-registration-pagination"
1124
- },
1125
- {
1126
- "api": "C_UIWidgetManager.GetBelowMinimapWidgetSetID",
1127
- "rva": "0x1c8ef40",
1128
- "va": "0x141c8ef40",
1129
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
1130
- "sourceKind": "namespace-registration-pagination"
1131
- },
1132
- {
1133
- "api": "C_UIWidgetManager.GetBulletTextListWidgetVisualizationInfo",
1134
- "rva": "0x1c8f630",
1135
- "va": "0x141c8f630",
1136
- "entryHash": "be0cf6b48b42e1d92f94212de167c65b4bf2f21e3e640ef140df6350d9f530d3",
1137
- "sourceKind": "namespace-registration-pagination"
1138
- },
1139
- {
1140
- "api": "C_UIWidgetManager.GetButtonHeaderWidgetVisualizationInfo",
1141
- "rva": "0x1c90d00",
1142
- "va": "0x141c90d00",
1143
- "entryHash": "d79f72d52dbfd83af4f507df4532117717520684f4cbe08f38f8770e796e01d5",
1144
- "sourceKind": "namespace-registration-pagination"
1145
- },
1146
- {
1147
- "api": "C_UIWidgetManager.GetCaptureBarWidgetVisualizationInfo",
1148
- "rva": "0x1c923a0",
1149
- "va": "0x141c923a0",
1150
- "entryHash": "ddf821e2c0b3c41300fc768ae75643024d6f2fb070352e4561ccdfdba49b4ac0",
1151
- "sourceKind": "namespace-registration-pagination"
1152
- },
1153
- {
1154
- "api": "C_UIWidgetManager.GetCaptureZoneVisualizationInfo",
1155
- "rva": "0x1c93a10",
1156
- "va": "0x141c93a10",
1157
- "entryHash": "ddf821e2c0b3c41300fc768ae75643024d6f2fb070352e4561ccdfdba49b4ac0",
1158
- "sourceKind": "namespace-registration-pagination"
1159
- },
1160
- {
1161
- "api": "C_UIWidgetManager.GetDiscreteProgressStepsVisualizationInfo",
1162
- "rva": "0x1c950a0",
1163
- "va": "0x141c950a0",
1164
- "entryHash": "b86aeabdd0f1ed5b829f6bbc0ed59c6070e53b9b0ac160d0e8a4aca431e7b126",
1165
- "sourceKind": "namespace-registration-pagination"
1166
- },
1167
- {
1168
- "api": "C_UIWidgetManager.GetDoubleIconAndTextWidgetVisualizationInfo",
1169
- "rva": "0x1c966d0",
1170
- "va": "0x141c966d0",
1171
- "entryHash": "f441ecbbba6447f50a59bf8e6e8542ffa22ed6448470d94890556be6e3b0b059",
1172
- "sourceKind": "namespace-registration-pagination"
1173
- },
1174
- {
1175
- "api": "C_UIWidgetManager.GetDoubleStateIconRowVisualizationInfo",
1176
- "rva": "0x1c97e60",
1177
- "va": "0x141c97e60",
1178
- "entryHash": "b86aeabdd0f1ed5b829f6bbc0ed59c6070e53b9b0ac160d0e8a4aca431e7b126",
1179
- "sourceKind": "namespace-registration-pagination"
1180
- },
1181
- {
1182
- "api": "C_UIWidgetManager.GetDoubleStatusBarWidgetVisualizationInfo",
1183
- "rva": "0x1c994b0",
1184
- "va": "0x141c994b0",
1185
- "entryHash": "5cc344f4911f51d6bc0795745f3b945834a7cf6bf9435fa3a9fefc9b6e5c52f3",
1186
- "sourceKind": "namespace-registration-pagination"
1187
- },
1188
- {
1189
- "api": "C_UIWidgetManager.GetFillUpFramesWidgetVisualizationInfo",
1190
- "rva": "0x1c9ab60",
1191
- "va": "0x141c9ab60",
1192
- "entryHash": "ddf821e2c0b3c41300fc768ae75643024d6f2fb070352e4561ccdfdba49b4ac0",
1193
- "sourceKind": "namespace-registration-pagination"
1194
- },
1195
- {
1196
- "api": "C_UIWidgetManager.GetHorizontalCurrenciesWidgetVisualizationInfo",
1197
- "rva": "0x1c9c1b0",
1198
- "va": "0x141c9c1b0",
1199
- "entryHash": "be0cf6b48b42e1d92f94212de167c65b4bf2f21e3e640ef140df6350d9f530d3",
1200
- "sourceKind": "namespace-registration-pagination"
1201
- },
1202
- {
1203
- "api": "C_UIWidgetManager.GetIconAndTextWidgetVisualizationInfo",
1204
- "rva": "0x1c9d810",
1205
- "va": "0x141c9d810",
1206
- "entryHash": "acbe0be8c4aa52818aae98cce786d093bcca6344de946f434c3c24d4edb5bc4c",
1207
- "sourceKind": "namespace-registration-pagination"
1208
- },
1209
- {
1210
- "api": "C_UIWidgetManager.GetIconTextAndBackgroundWidgetVisualizationInfo",
1211
- "rva": "0x1c9ee90",
1212
- "va": "0x141c9ee90",
1213
- "entryHash": "c2276d2d57122e1b4a4b46aadd73a052c08b9b23c9cf5aea3ed16126db10c896",
1214
- "sourceKind": "namespace-registration-pagination"
1215
- },
1216
- {
1217
- "api": "C_UIWidgetManager.GetIconTextAndCurrenciesWidgetVisualizationInfo",
1218
- "rva": "0x1ca04f0",
1219
- "va": "0x141ca04f0",
1220
- "entryHash": "b2a5c93327436b714e678cecda435010a315e5629d0f691b3d1a1b94eeca7b57",
1221
- "sourceKind": "namespace-registration-pagination"
1222
- },
1223
- {
1224
- "api": "C_UIWidgetManager.GetItemDisplayVisualizationInfo",
1225
- "rva": "0x1ca1bc0",
1226
- "va": "0x141ca1bc0",
1227
- "entryHash": "295e6be80290da266fb8f81ba77894ca61ccfe7ac8691f339f33a26f8eb6f762",
1228
- "sourceKind": "namespace-registration-pagination"
1229
- },
1230
- {
1231
- "api": "C_UIWidgetManager.GetMapPinAnimationWidgetVisualizationInfo",
1232
- "rva": "0x1ca3400",
1233
- "va": "0x141ca3400",
1234
- "entryHash": "abf2a7c875cbc55aaba5bd7eae08343bafd4fabc9512ee45ec0b1fb49bb7700a",
1235
- "sourceKind": "namespace-registration-pagination"
1236
- },
1237
- {
1238
- "api": "C_UIWidgetManager.GetObjectiveTrackerWidgetSetID",
1239
- "rva": "0x1ca4890",
1240
- "va": "0x141ca4890",
1241
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
1242
- "sourceKind": "namespace-registration-pagination"
1243
- },
1244
- {
1245
- "api": "C_UIWidgetManager.GetPowerBarWidgetSetID",
1246
- "rva": "0x1ca4f60",
1247
- "va": "0x141ca4f60",
1248
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
1249
- "sourceKind": "namespace-registration-pagination"
1250
- }
1251
- ],
1252
- "sourceApiRelationship": "semantic anchors only; direct wrapper-to-root relationship remains unresolved",
1253
- "staticEvidence": [
1254
- {
1255
- "kind": "ida-decompilation",
1256
- "va": "0x140697930",
1257
- "rva": "0x697930",
1258
- "excerpt": "global bucket pointer/count/size/load-factor; allocates 0x38-byte name -> FrameScript_Object node",
1259
- "query": "mcp__idalib__analyze_batch(0x140697930)"
1260
- },
1261
- {
1262
- "context": "<struct blz::rb_node<struct blz::pair<enum MOUSEBUTTON const ,class blz::embedded_vector<class CScriptRegion *,2,class blz::allocator<class CScriptRegion *> > > >>(void)",
1263
- "rva": "0x4f941a5",
1264
- "va": "0x144f941a5",
1265
- "section": ".rdata"
1266
- },
1267
- {
1268
- "context": "USEBUTTON const ,class blz::embedded_vector<class CScriptRegion *,2,class blz::allocator<class CScriptRegion *> > > >>(void)",
1269
- "rva": "0x4f941d2",
1270
- "va": "0x144f941d2",
1271
- "section": ".rdata"
1272
- },
1273
- {
1274
- "context": "const char *__cdecl WowGetRawTypeName<struct blz::chained_hash_node<struct blz::pair<class CScriptRegion const * const,int> >>(void)",
1275
- "rva": "0x4f9438c",
1276
- "va": "0x144f9438c",
1277
- "section": ".rdata"
1278
- },
1279
- {
1280
- "context": "const char *__cdecl WowGetRawTypeName<class CScriptRegion*>(void)",
1281
- "rva": "0x4f9463d",
1282
- "va": "0x144f9463d",
1283
- "section": ".rdata"
1284
- },
1285
- {
1286
- "context": "const char *__cdecl WowGetRawTypeName<struct blz::chained_hash_node<struct blz::pair<class CScriptRegion const * const,int> >*>(void)",
1287
- "rva": "0x4f9479c",
1288
- "va": "0x144f9479c",
1289
- "section": ".rdata"
1290
- },
1291
- {
1292
- "context": "const char *__cdecl WowGetRawTypeName<struct blz::pair<class CScriptRegion *,enum MOUSEBUTTON>>(void)",
1293
- "rva": "0x4f949ee",
1294
- "va": "0x144f949ee",
1295
- "section": ".rdata"
1296
- },
1297
- {
1298
- "context": "FrameScript_Object",
1299
- "rva": "0x4f95fbd",
1300
- "va": "0x144f95fbd",
1301
- "section": ".rdata"
1302
- },
1303
- {
1304
- "context": "d:\\BuildServer2\\Builder\\checkouts\\0\\Engine\\Source\\FrameScript\\FrameScript_Object.cpp",
1305
- "rva": "0x4f9bf57",
1306
- "va": "0x144f9bf57",
1307
- "section": ".rdata"
1308
- },
1309
- {
1310
- "context": "FrameScript_Object",
1311
- "rva": "0x4f95fb8",
1312
- "va": "0x144f95fb8",
1313
- "section": ".rdata"
1314
- },
1315
- {
1316
- "context": "d:\\BuildServer2\\Builder\\checkouts\\0\\Engine\\Source\\FrameScript\\FrameScript_Object.cpp",
1317
- "rva": "0x4f9bf52",
1318
- "va": "0x144f9bf52",
1319
- "section": ".rdata"
1320
- }
1321
- ],
1322
- "readerStatus": "partial",
1323
- "unresolvedReason": "The root and node fields are static-only; object vtable/type identity and live container invariants have not been checked.",
1324
- "nextAction": "Validate globals live, enumerate a bounded sample, and cross-check names against visible frames or an independent FrameScript native path."
1325
- },
1326
- {
1327
- "dataSourceId": "ds-model-scene-anchor",
1328
- "buildKey": "retail@12.0.7.68974",
1329
- "module": "Wow.exe",
1330
- "systemIds": [
1331
- "model-scene"
1332
- ],
1333
- "classification": "live-entry-validated-api-anchor-without-data-root",
1334
- "status": "unresolved",
1335
- "getterRva": null,
1336
- "getterVa": null,
1337
- "globalPointerRva": null,
1338
- "pointerChain": [],
1339
- "structureSize": null,
1340
- "fields": [],
1341
- "containerDefinition": null,
1342
- "invariants": [],
1343
- "updateEntry": {
1344
- "rva": null,
1345
- "status": "unresolved"
1346
- },
1347
- "sourceApis": [
1348
- {
1349
- "api": "C_ModelInfo.AddActiveModelScene",
1350
- "rva": "0xb421d0",
1351
- "va": "0x140b421d0",
1352
- "entryHash": "0dffd6a9f326306d8a69d1490bdc22513853fb843e7289d459ea2bfadcb0ee3b",
1353
- "sourceKind": "namespace-registration-pagination"
1354
- },
1355
- {
1356
- "api": "C_ModelInfo.AddActiveModelSceneActor",
1357
- "rva": "0xb42860",
1358
- "va": "0x140b42860",
1359
- "entryHash": "33c3c1399bb8f9988ee96b0901ab2452f1d17037738276f103c946a520e2ecd9",
1360
- "sourceKind": "namespace-registration-pagination"
1361
- },
1362
- {
1363
- "api": "C_ModelInfo.ClearActiveModelScene",
1364
- "rva": "0xb42f50",
1365
- "va": "0x140b42f50",
1366
- "entryHash": "506f4dfbd96df5784b35f487bd4e9263062ff63914613e0723e567f69bc46205",
1367
- "sourceKind": "namespace-registration-pagination"
1368
- },
1369
- {
1370
- "api": "C_ModelInfo.ClearActiveModelSceneActor",
1371
- "rva": "0xb435b0",
1372
- "va": "0x140b435b0",
1373
- "entryHash": "43db5d20b08153c4fab3f686a94eaea69ae1185c2db60c06df21743bb4f9591a",
1374
- "sourceKind": "namespace-registration-pagination"
1375
- },
1376
- {
1377
- "api": "C_ModelInfo.GetModelSceneActorDisplayInfoByID",
1378
- "rva": "0xb43c10",
1379
- "va": "0x140b43c10",
1380
- "entryHash": "85c79f31dd8d59bcc24735ac85419721f424e6c35ccfe6d2a0072f6a1866ee1c",
1381
- "sourceKind": "namespace-registration-pagination"
1382
- },
1383
- {
1384
- "api": "C_ModelInfo.GetModelSceneActorInfoByID",
1385
- "rva": "0xb45780",
1386
- "va": "0x140b45780",
1387
- "entryHash": "e9c2587be3882d955ce427962c740ca06bda457265944f41e286bfff6555a6a1",
1388
- "sourceKind": "namespace-registration-pagination"
1389
- },
1390
- {
1391
- "api": "C_ModelInfo.GetModelSceneCameraInfoByID",
1392
- "rva": "0xb47110",
1393
- "va": "0x140b47110",
1394
- "entryHash": "868a8dae09d06b18e1d524520fa718266a734e202fc07cfaf2ad1e755127bacb",
1395
- "sourceKind": "namespace-registration-pagination"
1396
- },
1397
- {
1398
- "api": "C_ModelInfo.GetModelSceneInfoByID",
1399
- "rva": "0xb48010",
1400
- "va": "0x140b48010",
1401
- "entryHash": "3dac48b4e31117c3694a44f71fe03b8512c41e3292eebe3a24e439617c8debcb",
1402
- "sourceKind": "namespace-registration-pagination"
1403
- }
1404
- ],
1405
- "sourceApiCount": 8,
1406
- "staticEvidence": [],
1407
- "readerStatus": "unresolved",
1408
- "unresolvedReason": "Five ModelInfo wrapper entries were live byte-validated, but the active-scene manager/root was not traced.",
1409
- "nextAction": "Observe active scene operations and trace one selected wrapper to its manager and actor container."
1410
- },
1411
- {
1412
- "dataSourceId": "ds-network-update-anchor",
1413
- "buildKey": "retail@12.0.7.68974",
1414
- "module": "Wow.exe",
1415
- "systemIds": [
1416
- "network-update-landing"
1417
- ],
1418
- "classification": "runtime-module-and-export-anchor-without-landing-path",
1419
- "status": "unresolved",
1420
- "getterRva": null,
1421
- "getterVa": null,
1422
- "globalPointerRva": null,
1423
- "pointerChain": [],
1424
- "structureSize": null,
1425
- "fields": [],
1426
- "containerDefinition": null,
1427
- "invariants": [],
1428
- "updateEntry": {
1429
- "rva": null,
1430
- "status": "unresolved"
1431
- },
1432
- "sourceApis": [],
1433
- "sourceApiCount": 0,
1434
- "staticEvidence": [
1435
- {
1436
- "kind": "PE-export-anchor",
1437
- "name": "GetIpNetEntry2",
1438
- "rva": "0x2cf130",
1439
- "va": "0x1402cf130",
1440
- "scope": "network capability anchor only; not a WoW update landing path"
1441
- },
1442
- {
1443
- "kind": "PE-export-anchor",
1444
- "name": "ResolveIpNetEntry2",
1445
- "rva": "0x2cf300",
1446
- "va": "0x1402cf300",
1447
- "scope": "network capability anchor only; not a WoW update landing path"
1448
- }
1449
- ],
1450
- "readerStatus": "unresolved",
1451
- "unresolvedReason": "Networking modules/exports are observed, but no packet/update path to a manager or cache is established.",
1452
- "nextAction": "Start from a semantic manager update entry, trace backward to a bounded dispatch path, and avoid process-wide Stalker."
1453
- },
1454
- {
1455
- "dataSourceId": "ds-player-info-anchor",
1456
- "buildKey": "retail@12.0.7.68974",
1457
- "module": "Wow.exe",
1458
- "systemIds": [
1459
- "player",
1460
- "unit",
1461
- "guid"
1462
- ],
1463
- "classification": "live-entry-validated-api-anchor-without-data-root",
1464
- "status": "unresolved",
1465
- "getterRva": null,
1466
- "getterVa": null,
1467
- "globalPointerRva": null,
1468
- "pointerChain": [],
1469
- "structureSize": null,
1470
- "fields": [],
1471
- "containerDefinition": null,
1472
- "invariants": [],
1473
- "updateEntry": {
1474
- "rva": null,
1475
- "status": "unresolved"
1476
- },
1477
- "sourceApis": [
1478
- {
1479
- "api": "C_PlayerInfo.CanPlayerEnterChromieTime",
1480
- "rva": "0x17beae0",
1481
- "va": "0x1417beae0",
1482
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
1483
- "sourceKind": "namespace-registration"
1484
- },
1485
- {
1486
- "api": "C_PlayerInfo.CanPlayerUseAreaLoot",
1487
- "rva": "0x17bf1d0",
1488
- "va": "0x1417bf1d0",
1489
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
1490
- "sourceKind": "namespace-registration"
1491
- },
1492
- {
1493
- "api": "C_PlayerInfo.CanPlayerUseMountEquipment",
1494
- "rva": "0x17bf8d0",
1495
- "va": "0x1417bf8d0",
1496
- "entryHash": "ea65f2bbddc1b26162c412d5221ccc412508d9a81f33073b3c0b791e446db9e6",
1497
- "sourceKind": "namespace-registration"
1498
- },
1499
- {
1500
- "api": "C_PlayerInfo.CanUseItem",
1501
- "rva": "0x17c0c60",
1502
- "va": "0x1417c0c60",
1503
- "entryHash": "bb4f8502496205cf25998ee0f3097b5f498c80b8819d12b379f53e139f195c93",
1504
- "sourceKind": "namespace-registration"
1505
- },
1506
- {
1507
- "api": "C_PlayerInfo.GetAlternateFormInfo",
1508
- "rva": "0x17c1380",
1509
- "va": "0x1417c1380",
1510
- "entryHash": "041fd06bb926a77489b48cc475cd8d6cfb078693f25341c4bec6a31390570efd",
1511
- "sourceKind": "namespace-registration"
1512
- },
1513
- {
1514
- "api": "C_PlayerInfo.GetClass",
1515
- "rva": "0x17d7fd0",
1516
- "va": "0x1417d7fd0",
1517
- "entryHash": "05ae018408f0bb6820e38bcf5eabd4d9e79df05fe34a9642b8dbbd5c79ed642a",
1518
- "sourceKind": "namespace-registration-pagination"
1519
- },
1520
- {
1521
- "api": "C_PlayerInfo.GetContentDifficultyCreatureForPlayer",
1522
- "rva": "0x17c1a60",
1523
- "va": "0x1417c1a60",
1524
- "entryHash": "bc54a92181db78a30c1a5eb83aa9652f8cd19a7a59bdf50b12c1d584c2b20675",
1525
- "sourceKind": "namespace-registration"
1526
- },
1527
- {
1528
- "api": "C_PlayerInfo.GetContentDifficultyQuestForPlayer",
1529
- "rva": "0x17c21d0",
1530
- "va": "0x1417c21d0",
1531
- "entryHash": "c1b77bd826fada62479266168304b2b35b03c8bdabfcc5fa0b1ed63a009a59e0",
1532
- "sourceKind": "namespace-registration"
1533
- },
1534
- {
1535
- "api": "C_PlayerInfo.GetDisplayID",
1536
- "rva": "0x17c28b0",
1537
- "va": "0x1417c28b0",
1538
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
1539
- "sourceKind": "namespace-registration"
1540
- },
1541
- {
1542
- "api": "C_PlayerInfo.GetGlidingInfo",
1543
- "rva": "0x17c2fb0",
1544
- "va": "0x1417c2fb0",
1545
- "entryHash": "3eab53b223be96bae4d2a51903857c38478d786aa21992e4bf195771c03d0bbe",
1546
- "sourceKind": "namespace-registration"
1547
- },
1548
- {
1549
- "api": "C_PlayerInfo.GetInstancesUnlockedAtLevel",
1550
- "rva": "0x17c36c0",
1551
- "va": "0x1417c36c0",
1552
- "entryHash": "59393ce23840b0f1165c84245c07ecb4fb6e2fb3ea03adf6a226c946b4f428ae",
1553
- "sourceKind": "namespace-registration"
1554
- },
1555
- {
1556
- "api": "C_PlayerInfo.GetName",
1557
- "rva": "0x17d8830",
1558
- "va": "0x1417d8830",
1559
- "entryHash": "6357ba30d34ac74483c33ed91fa71ef6643cb79187dfeb604513de23394b5f72",
1560
- "sourceKind": "namespace-registration-wrapper"
1561
- },
1562
- {
1563
- "api": "C_PlayerInfo.GetNativeDisplayID",
1564
- "rva": "0x17c5070",
1565
- "va": "0x1417c5070",
1566
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
1567
- "sourceKind": "namespace-registration"
1568
- },
1569
- {
1570
- "api": "C_PlayerInfo.GetPetStableCreatureDisplayInfoID",
1571
- "rva": "0x17c5740",
1572
- "va": "0x1417c5740",
1573
- "entryHash": "f84016c0104d6cfa07ad0534a1ccff1975e3b1120ec16e36af3a2648b1aa5165",
1574
- "sourceKind": "namespace-registration"
1575
- },
1576
- {
1577
- "api": "C_PlayerInfo.GetPlayerCharacterData",
1578
- "rva": "0x17c5ea0",
1579
- "va": "0x1417c5ea0",
1580
- "entryHash": "9df5a9b6670a65bbf42950a44a8ae016e2e0fc7627632cd554cb28802f5baf81",
1581
- "sourceKind": "namespace-registration"
1582
- },
1583
- {
1584
- "api": "C_PlayerInfo.GetPlayerMythicPlusRatingSummary",
1585
- "rva": "0x17c7790",
1586
- "va": "0x1417c7790",
1587
- "entryHash": "908cdd7ad33412c8c5cadbeb02c3f79c5be0aa249b0da2d57c535ae31474bec3",
1588
- "sourceKind": "namespace-registration"
1589
- },
1590
- {
1591
- "api": "C_PlayerInfo.GetRace",
1592
- "rva": "0x17d9e40",
1593
- "va": "0x1417d9e40",
1594
- "entryHash": "0f3c675a64129cb1a16cd835637621d9ca722a50c86fe11f6052fea54c29715f",
1595
- "sourceKind": "namespace-registration-wrapper"
1596
- },
1597
- {
1598
- "api": "C_PlayerInfo.GetSex",
1599
- "rva": "0x17da500",
1600
- "va": "0x1417da500",
1601
- "entryHash": "f48b7af0d039da4856df57ae7b66aa8d5988baec89b65981b538757173741a57",
1602
- "sourceKind": "namespace-registration-wrapper"
1603
- },
1604
- {
1605
- "api": "C_PlayerInfo.GUIDIsPlayer",
1606
- "rva": "0x17d78f0",
1607
- "va": "0x1417d78f0",
1608
- "entryHash": "83f375f5bc1d44be5ac5d08e3a4dcd44ffb493846cc21fc9df4f4435aea37330",
1609
- "sourceKind": "namespace-registration-pagination"
1610
- },
1611
- {
1612
- "api": "C_PlayerInfo.HasAccountInventoryLock",
1613
- "rva": "0x17c91f0",
1614
- "va": "0x1417c91f0",
1615
- "entryHash": "101463966b516c006a82334498b230a778572654d42397702c637273614d1ec4",
1616
- "sourceKind": "namespace-registration"
1617
- }
1618
- ],
1619
- "sourceApiCount": 39,
1620
- "staticEvidence": [
1621
- {
1622
- "context": "PlayerConditionEvaluation",
1623
- "rva": "0x4f2f89a",
1624
- "va": "0x144f2f89a",
1625
- "section": ".rdata"
1626
- }
1627
- ],
1628
- "readerStatus": "unresolved",
1629
- "unresolvedReason": "Five wrappers have ABI/static and live entry-byte evidence, but no manager/global/container root is established.",
1630
- "nextAction": "Trace the five natural callbacks and follow the confirmed business helper chain to a validated object identity/root."
1631
- }
1632
- ]
1633
- }