funman300
704482be84
tools(re): watch resident club-item population for route correlation
...
Read-only watcher that waits for FIFA17.exe, re-resolves the club-item store
each tick (the manager is reallocated per login), and emits one timestamped line
per CHANGE. Pair it with
journalctl -u openfut-staging-host -o short-iso
to answer "after which response does a resident club item first appear?" by wall
clock, without having to reverse the constructor first.
Re-resolving per tick matters: the store is reached through
[CardsDLL+0x2e6398] -> vtable[0x4e8], and that getter is a `lea`, so the manager
is an embedded subobject whose address moves with the owner. The tool also
re-checks the module base against a known immediate every time it attaches and
refuses to report from a wrong base.
Verified against the currently live client: club=0/5 players=18/23.
Staging can host the session: every bootstrap route probed answers 200
(userMassInfo, squad/active, squad/list, club/stats/*, hub, user, club arms,
item idList, clubUser, season/list, watchList, purchased/items, settings,
clientdata) with the single exception of /statistics/tournament, which 502s
because staging's Python upstream is deliberately dead and which is not on the
club bootstrap path.
2026-08-24 16:13:36 +00:00
..
2026-08-10 17:08:06 -07:00
2026-08-24 16:13:36 +00:00
2026-08-01 20:24:30 -07:00
2026-08-05 12:11:20 -07:00
2026-08-01 20:24:30 -07:00
2026-08-01 20:24:30 -07:00
2026-08-23 22:44:14 +00:00
2026-08-02 17:13:11 -07:00
2026-08-23 19:34:06 +00:00
2026-08-01 20:24:30 -07:00
2026-08-01 20:24:30 -07:00
2026-08-01 20:24:30 -07:00
2026-08-01 20:24:30 -07:00
2026-08-13 04:03:37 +00:00
2026-08-04 09:42:59 -07:00
2026-08-04 09:42:59 -07:00
2026-08-04 09:42:59 -07:00
2026-08-21 02:35:27 +00:00
2026-08-04 09:42:59 -07:00
2026-08-05 10:04:21 -07:00
2026-08-05 09:08:29 -07:00
2026-08-01 20:24:30 -07:00
2026-08-04 20:29:27 -07:00
2026-08-04 20:44:02 -07:00
2026-08-04 20:44:02 -07:00
2026-08-23 20:08:08 +00:00
2026-08-21 23:10:44 +00:00
2026-08-05 11:13:54 -07:00
2026-08-05 19:24:02 -07:00
2026-08-23 18:51:34 +00:00
2026-08-05 10:04:44 -07:00
2026-08-05 10:04:44 -07:00
2026-08-04 22:40:24 -07:00
2026-08-05 09:08:29 -07:00
2026-08-04 20:44:02 -07:00
2026-08-04 20:44:02 -07:00
2026-08-04 22:40:24 -07:00
2026-08-01 20:24:30 -07:00
2026-08-21 22:51:16 +00:00
2026-08-03 20:47:16 -07:00
2026-08-03 20:47:16 -07:00
2026-08-01 20:24:30 -07:00
2026-08-04 20:44:02 -07:00
2026-08-04 20:44:02 -07:00
2026-08-04 20:44:02 -07:00
2026-08-04 20:44:02 -07:00
2026-08-04 20:44:02 -07:00
2026-08-04 20:44:02 -07:00
2026-08-04 20:44:02 -07:00
2026-08-04 21:08:52 -07:00
2026-08-05 11:13:54 -07:00
2026-08-05 09:08:29 -07:00
2026-08-19 18:31:27 +00:00
2026-08-01 20:24:30 -07:00
2026-08-23 21:52:36 +00:00
2026-08-01 20:24:30 -07:00
2026-08-01 20:24:30 -07:00
2026-08-04 20:44:02 -07:00
2026-08-10 17:12:27 -07:00
2026-08-10 17:08:06 -07:00
2026-08-04 09:42:59 -07:00
2026-08-05 09:08:29 -07:00
2026-08-05 11:13:54 -07:00
2026-08-06 12:47:02 -07:00
2026-08-05 10:04:44 -07:00
2026-08-05 11:51:49 -07:00
2026-08-01 20:24:30 -07:00
2026-08-04 09:42:59 -07:00
2026-08-05 10:05:05 -07:00
2026-08-21 21:31:59 +00:00
2026-08-04 11:28:42 -07:00
2026-08-05 19:24:02 -07:00
2026-08-04 13:48:14 -07:00
2026-08-03 20:47:16 -07:00
2026-08-16 21:29:52 +00:00
2026-08-05 19:35:27 -07:00
2026-08-21 21:10:35 +00:00
2026-08-01 20:24:30 -07:00
2026-08-10 17:12:27 -07:00
2026-08-04 09:42:59 -07:00
2026-08-21 18:53:20 +00:00
2026-08-01 20:24:30 -07:00
2026-08-18 15:57:19 +00:00
2026-08-01 20:24:30 -07:00
2026-08-01 20:24:30 -07:00
2026-08-01 20:24:30 -07:00
2026-08-04 20:44:02 -07:00
2026-08-10 17:08:06 -07:00
2026-08-01 20:24:30 -07:00
2026-08-01 20:24:30 -07:00
2026-08-04 20:44:02 -07:00
2026-08-21 18:55:59 +00:00
2026-08-05 10:16:13 -07:00
2026-08-04 09:42:59 -07:00
2026-08-10 17:12:27 -07:00
2026-08-17 20:10:26 +00:00
2026-08-07 11:44:05 -07:00
2026-08-07 12:03:22 -07:00
2026-08-07 12:03:22 -07:00
2026-08-21 20:54:29 +00:00
2026-08-04 20:44:02 -07:00
2026-08-04 21:15:55 -07:00
2026-08-04 21:08:52 -07:00
2026-08-10 17:08:06 -07:00
2026-08-13 04:03:37 +00:00
2026-08-10 17:08:06 -07:00
2026-08-13 05:18:13 +00:00
2026-08-05 10:05:32 -07:00
2026-08-13 01:08:37 +00:00
2026-08-10 17:12:27 -07:00
2026-08-10 17:08:06 -07:00
2026-08-02 20:21:10 -07:00
2026-08-10 17:08:06 -07:00
2026-08-10 17:12:27 -07:00
2026-08-21 02:35:27 +00:00
2026-08-10 17:08:06 -07:00
2026-08-10 17:08:06 -07:00
2026-08-10 17:08:06 -07:00
2026-08-01 20:24:30 -07:00
2026-08-01 20:24:30 -07:00
2026-08-17 19:09:03 +00:00
2026-08-03 20:47:16 -07:00
2026-08-21 23:28:29 +00:00
2026-08-13 04:39:53 +00:00
2026-08-01 20:24:30 -07:00
2026-08-01 20:24:30 -07:00
2026-08-17 20:25:46 +00:00
2026-08-04 20:44:02 -07:00
2026-08-01 20:24:30 -07:00
2026-08-01 20:24:30 -07:00
2026-08-04 20:44:02 -07:00