6ddd5e9d47
Milestone: FIFA 17 Ultimate Team boots end-to-end on our offline backend
past every EA gate into the hub and a live Squads editor (correct 4-4-2,
5-star squad, no freezes).
Key findings this session:
- userMassInfo MUST stay {} (any content desyncs the massinfo parser
0x180174630 -> tokenizer busy-loop freeze). Deliver the squad via
GET /squad/0 (fetched on Squads-tab entry) instead.
- Player cards render generic because the card view-model (0x1800d7920)
reads identity/rating/face from a resolved record at item+0x10, filled
by a lookup (0x18011cca0) in the FUT item-definition std::map at
CardsDb+0x160c0 -- which is EMPTY offline -> default blank record.
- Version advertising (itemDbVersion/checkServerDbVersion) is proven inert
(JSON fields routed to the skip handler). Owned items don't auto-trigger
a definition fetch. In-place map overwrite is dead (map stays empty).
- Definition-serving endpoints (item/resource, defid, item?idList) built +
ready; the fetch trigger lives in the packed FIFA17.exe.
New: docs/CARD_SYSTEM.md (findings + ordered next-steps plan for real
player cards: patch-POC, dbdata extractor, drive FIFA17.exe fetch, or
live-memory store injection). Plus tools: fut_seed.py (squad ladder +
definition serving), fifadrive.sh, vgamepad.py, and the login-RE toolset.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PN5bmpDVQR1aXgefyWAt7o
16 lines
784 B
Bash
Executable File
16 lines
784 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# trace_login.sh -- attach the login-path tracer to the running FIFA17.exe.
|
|
# Prereqs: FIFA 17 running; kernel.yama.ptrace_scope=0; lsx_responder_v2 up with
|
|
# an UNBOUNDED heartbeat so pushes are still in flight while we trace, e.g.:
|
|
# OPENFUT_LSX_EVENT_COUNT=100000 python3 -u tools/lsx_responder_v2.py
|
|
set -euo pipefail
|
|
DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
PID="$(pgrep -x FIFA17.exe | head -1 || true)"
|
|
if [ -z "${PID}" ]; then echo "FIFA17.exe not running"; exit 1; fi
|
|
echo "attaching to FIFA17.exe pid=${PID}"
|
|
TMP="$(mktemp /tmp/trace_login.XXXX.gdb)"
|
|
sed "s/PIDHERE/${PID}/" "${DIR}/trace_login.gdb" > "${TMP}"
|
|
# gdb must run with ptrace rights; if not root, ptrace_scope=0 suffices.
|
|
gdb -batch -x "${TMP}" 2>&1 | tee /tmp/trace_login.log
|
|
rm -f "${TMP}"
|