HUD Menu Opener Frontier Review
x86 함수 단위 교집합에서도 normal-field ESC/X opener는 아직 증명되지 않았다. 입력 mask와 descriptor stack이 만나는 확정 함수는 cancel/back, display VM base binder, field movement/collision 계층으로 배제됐으며, top-menu object sequence 0x004ddc6c의 직접 ref는 여전히 data-context 1건뿐이다.
statusnormal-field-opener-still-unproven
touched funcs193
intersections3
open candidates0
top seq refstext 0 / all 1
Input / Descriptor Intersections
| function | refs | calls | promotion |
|---|---|---|---|
0x0040c6ccknown-cancel/back-handler | {"input.edgeActionMask": ["0x0040c746", "0x0040c757", "0x0040c762"], "descriptor.activeCount": ["0x0040c86c", "0x0040c8b8"], "descriptor.slotPointers": ["0x0040c6f2", "0x0040c7a8", "0x0040c7ce", "0x0040c7eb", "0x0040c823", "0x0040c840", "0x0040c8ce", "0x0040c8eb"]} | {} | negative-static-proof ESC/X edge bit consumer, but it unwinds active descriptor state; this is cancel/back, not normal open. |
0x0041d89ddisplay-vm-base-pointer-binder | {"input.currentActionMask": ["0x0041d8c5"], "descriptor.slotTable": ["0x0041d8f8"], "descriptor.slotPointers": ["0x0041d918"]} | {} | negative-static-proof Command byte selects a base pointer for the display/object VM; it reads input context but does not add the menu descriptor. |
0x0043022dactive-descriptor-field-movement-controller | {"input.currentActionMask": ["0x0043038e", "0x0043039e", "0x004303ae", "0x004303b7", "0x004303bf", "0x004303c8", "0x004303d0", "0x004303e0", "0x004303f0", "0x004303f9", "0x00430401", "0x0043040a", "0x00430412", "0x00430429", "0x00430440", "0x00430457", "0x004304df", "0x004304fe", "0x00430660", "0x0043067f", "0x00430806", "0x00430825", "0x004309c8", "0x004309e7"], "descriptor.activeCount": ["0x00430239", "0x0043026a", "0x00431185", "0x0043146f", "0x004319bc"], "descriptor.objectPointers": ["0x00430287", "0x004302ac", "0x004311a2", "0x0043149f", "0x0043189a", "0x004319d9"], "map.collisionFlags": ["0x00430534", "0x00430541", "0x0043055e", "0x00430574", "0x004306b5", "0x004306c2", "0x004306df", "0x004306f5", "0x0043085b", "0x00430868", "0x00430885", "0x0043089b", "0x00430a1d", "0x00430a2a", "0x00430a47", "0x00430a5d"], "map.width": ["0x004304b1", "0x00430632", "0x004307b2", "0x004307ea", "0x00430958", "0x0043099e", "0x00430f5d", "0x00431595"]} | {} | negative-static-proof Consumes current input mask, active descriptors, and map collision data for field movement/collision; not an ESC/X menu opener. |
Next Frontier
- 입력 bit 자체가 아니라 mode/state byte가 바뀐 뒤 0x62 add-descriptor가 실행되는 selected/root command stream을 찾아야 한다.
- topMenu sequence direct pointer는 data-only라서, parent/intermediate record를 고르는 selector table이나 descriptor id producer를 추적해야 한다.
- 0x40/0x8a/0x87 계열 object VM selector producer가 +0x2f/+0x3d를 쓰는 위치는 이미 일부 확인됐으므로, 다음은 이 object가 어떤 descriptor id로 stack에 올라오는지 역추적한다.