resource loader consumer trace
selector-root의 `.cns` resource refs와 EXE file/archive loader 후보를 분리한다. 직접 route binding은 아직 승격하지 않는다.
요약
resource-loader-consumer-static-boundary-route-blocked1081CNS strings
2216CNS pointer refs
2158selector-root refs
0direct code refs
0selector root text refs
0root row ptr text refs
74file API call sites
24loader candidates
11loader direct calls
section refs: {'.data': 2216}
kind refs: {'map': 340, 'other': 145, 'sprite': 868, 'tileset': 863}
판정
resource package와 loader boundary는 분리| id | status | decision | evidence |
|---|---|---|---|
| selector-root-resource-package | grounded | selector-root ranges contain `.cns` resource pointer refs. | 2158 refs under selector-root ranges |
| file-loader-boundary | grounded | file/archive loader function candidates exist in `.text`. | CreateFileA/ReadFile/SetFilePointer/GetFileSize/CloseHandle call clusters plus inline FLDF magic |
| resource-loader-consumer-binding | blocked | do not claim selector-root resource refs are consumed by the loader yet. | direct `.text` refs to individual `.cns` string pointers are 0; data-flow path remains unproven |
| package-to-loader-call-bridge | blocked | loader caller graph exists, but no caller path carries selector-root or CNS pointer refs in static text. | 11 direct loader call refs; selector root start/range/row pointer text refs are 0/0/0 |
File/Archive Loader Candidates
CreateFile/ReadFile/SetFilePointer clusters| function | class | calls | APIs | inline magic | sample call sites |
|---|---|---|---|---|---|
0x00415160..0x0041525f | file-open-read-loader-candidate | 7 | CloseHandle x2 CreateFileA x1 GetFileSize x1 HeapAlloc x1 ReadFile x2 | - | 0x0041517f CreateFileA0x004151dd GetFileSize0x004151a9 ReadFile0x00415220 ReadFile0x004151f6 HeapAlloc0x0041523b CloseHandle0x0041524d CloseHandle |
0x0042db50..0x0042e402 | seek-read-subresource-loader-candidate | 10 | CloseHandle x2 GetFileSize x1 ReadFile x5 SetFilePointer x2 | - | 0x0042dbf6 GetFileSize0x0042dc76 SetFilePointer0x0042dd42 SetFilePointer0x0042dc24 ReadFile0x0042dc9a ReadFile0x0042dcbd ReadFile0x0042dce5 ReadFile0x0042dd6b ReadFile0x0042e290 CloseHandle0x0042e342 CloseHandle |
0x00423dce..0x00423f15 | fld-archive-header-consumer-candidate | 4 | CloseHandle x1 HeapAlloc x1 ReadFile x2 | FLDF@0x00423e3d | 0x00423e1d ReadFile0x00423eb4 ReadFile0x00423e81 HeapAlloc0x00423f0a CloseHandle |
0x00423127..0x00423319 | file-open-read-loader-candidate | 11 | CloseHandle x3 CreateFileA x1 ReadFile x2 lstrcatA x3 lstrcpyA x2 | - | 0x0042321c CreateFileA0x0042314f lstrcpyA0x004231b5 lstrcpyA0x00423190 lstrcatA0x004231a0 lstrcatA0x004231c5 lstrcatA0x004232b1 ReadFile0x004232e8 ReadFile0x004232c3 CloseHandle0x004232fa CloseHandle0x0042330e CloseHandle |
0x0042a5bb..0x0042ad17 | seek-read-subresource-loader-candidate | 17 | CloseHandle x3 ReadFile x11 SetFilePointer x3 | - | 0x0042a731 SetFilePointer0x0042a8fc SetFilePointer0x0042ab38 SetFilePointer0x0042a64e ReadFile0x0042a763 ReadFile0x0042a7cc ReadFile0x0042a948 ReadFile0x0042a994 ReadFile0x0042a9bc ReadFile0x0042aa08 ReadFile0x0042aa54 ReadFile0x0042aac8 ReadFile |
0x0042c400..0x0042c784 | seek-read-subresource-loader-candidate | 12 | CloseHandle x7 ReadFile x3 SetFilePointer x2 | - | 0x0042c52f SetFilePointer0x0042c626 SetFilePointer0x0042c4a3 ReadFile0x0042c566 ReadFile0x0042c71c ReadFile0x0042c4ba CloseHandle0x0042c546 CloseHandle0x0042c588 CloseHandle0x0042c63d CloseHandle0x0042c6e7 CloseHandle0x0042c73e CloseHandle0x0042c76f CloseHandle |
0x00423041..0x00423127 | asset-path-discovery-candidate | 7 | FindClose x1 FindFirstFileA x1 lstrcatA x3 lstrcpyA x2 | - | 0x00423112 FindClose0x004230eb FindFirstFileA0x0042306f lstrcpyA0x004230c9 lstrcpyA0x004230a4 lstrcatA0x004230b4 lstrcatA0x004230d9 lstrcatA |
0x00425740..0x00425823 | path-string-builder-candidate | 2 | lstrcatA x1 lstrcpyA x1 | - | 0x0042575a lstrcpyA0x0042576b lstrcatA |
0x00425823..0x004258b5 | path-string-builder-candidate | 3 | lstrcatA x2 lstrcpyA x1 | - | 0x0042583d lstrcpyA0x0042584e lstrcatA0x0042585e lstrcatA |
0x004258b5..0x0042599a | path-string-builder-candidate | 3 | lstrcatA x2 lstrcpyA x1 | - | 0x004258cf lstrcpyA0x004258e0 lstrcatA0x004258f0 lstrcatA |
0x0042599a..0x00425a8a | path-string-builder-candidate | 2 | lstrcatA x1 lstrcpyA x1 | - | 0x004259b4 lstrcpyA0x004259c4 lstrcatA |
0x00425a8a..0x00425b6e | path-string-builder-candidate | 2 | lstrcatA x1 lstrcpyA x1 | - | 0x00425aa4 lstrcpyA0x00425ab4 lstrcatA |
0x00425b6e..0x00425d0d | path-string-builder-candidate | 3 | lstrcatA x2 lstrcpyA x1 | - | 0x00425c7a lstrcpyA0x00425c8a lstrcatA0x00425c9c lstrcatA |
0x00425d0d..0x00425dbf | path-string-builder-candidate | 2 | lstrcatA x1 lstrcpyA x1 | - | 0x00425d2e lstrcpyA0x00425d40 lstrcatA |
0x00425e1c..0x00425f8c | path-string-builder-candidate | 9 | lstrcatA x7 lstrcpyA x2 | - | 0x00425e36 lstrcpyA0x00425ec2 lstrcpyA0x00425e46 lstrcatA0x00425e55 lstrcatA0x00425ed3 lstrcatA0x00425ee3 lstrcatA0x00425ef5 lstrcatA0x00425f05 lstrcatA0x00425f14 lstrcatA |
0x00425f8c..0x0042607e | path-string-builder-candidate | 6 | lstrcatA x5 lstrcpyA x1 | - | 0x00425fad lstrcpyA0x00425fbe lstrcatA0x00425fce lstrcatA0x00425fe0 lstrcatA0x00425ff0 lstrcatA0x00425fff lstrcatA |
0x0042607e..0x004263d8 | path-string-builder-candidate | 13 | lstrcatA x8 lstrcpyA x5 | - | 0x00426098 lstrcpyA0x004260e3 lstrcpyA0x00426161 lstrcpyA0x00426202 lstrcpyA0x00426261 lstrcpyA0x004260f4 lstrcatA0x00426104 lstrcatA0x00426116 lstrcatA0x00426172 lstrcatA0x00426182 lstrcatA0x00426194 lstrcatA0x00426213 lstrcatA |
0x004263d8..0x004264ab | path-string-builder-candidate | 4 | lstrcatA x3 lstrcpyA x1 | - | 0x004263f9 lstrcpyA0x0042640a lstrcatA0x0042641a lstrcatA0x0042642c lstrcatA |
0x004264ab..0x00426565 | path-string-builder-candidate | 6 | lstrcatA x5 lstrcpyA x1 | - | 0x004264c5 lstrcpyA0x004264d6 lstrcatA0x004264e6 lstrcatA0x004264f8 lstrcatA0x00426508 lstrcatA0x00426517 lstrcatA |
0x00426565..0x00426643 | path-string-builder-candidate | 6 | lstrcatA x5 lstrcpyA x1 | - | 0x0042657f lstrcpyA0x00426590 lstrcatA0x004265a0 lstrcatA0x004265b2 lstrcatA0x004265c2 lstrcatA0x004265d1 lstrcatA |
0x00426643..0x00426735 | path-string-builder-candidate | 6 | lstrcatA x5 lstrcpyA x1 | - | 0x00426664 lstrcpyA0x00426675 lstrcatA0x00426685 lstrcatA0x00426697 lstrcatA0x004266a7 lstrcatA0x004266b6 lstrcatA |
0x00426735..0x004267ec | path-string-builder-candidate | 2 | lstrcatA x1 lstrcpyA x1 | - | 0x0042675d lstrcpyA0x0042676d lstrcatA |
0x004267ec..0x004268db | path-string-builder-candidate | 2 | lstrcatA x1 lstrcpyA x1 | - | 0x00426806 lstrcpyA0x00426817 lstrcatA |
0x004268db..0x0042695e | path-string-builder-candidate | 2 | lstrcatA x1 lstrcpyA x1 | - | 0x004268f5 lstrcpyA0x00426906 lstrcatA |
Loader Caller Graph / Bridge Check
package pointer -> loader 경로 미승격 이유loader 후보 함수로 들어오는 direct call은 보이지만, 그 caller path 안에서 selector-root start/range/row pointer 또는 개별 CNS string pointer를 같이 잡지는 못했다. 따라서 resource package consumption은 아직 route-bound proof가 아니다.
| loader | class | direct calls | sample callers | bridge proof |
|---|---|---|---|---|
0x00415160 | file-open-read-loader-candidate | 0 | - | False |
0x0042db50 | seek-read-subresource-loader-candidate | 1 | 0x0042ce79 in 0x0042cde2 | False |
0x00423dce | fld-archive-header-consumer-candidate | 1 | 0x00423dba in 0x00423da2 | False |
0x00423127 | file-open-read-loader-candidate | 1 | 0x0041db42 in 0x0041db3c | False |
0x0042a5bb | seek-read-subresource-loader-candidate | 2 | 0x00424431 in 0x004243dc0x0042ad45 in 0x0042ad17 | False |
0x0042c400 | seek-read-subresource-loader-candidate | 2 | 0x0042445b in 0x004243dc0x0042c7b4 in 0x0042c784 | False |
0x00423041 | asset-path-discovery-candidate | 1 | 0x0042054e in 0x00420548 | False |
0x00425740 | path-string-builder-candidate | 0 | - | False |
0x00425823 | path-string-builder-candidate | 0 | - | False |
0x004258b5 | path-string-builder-candidate | 0 | - | False |
0x0042599a | path-string-builder-candidate | 0 | - | False |
0x00425a8a | path-string-builder-candidate | 0 | - | False |
0x00425b6e | path-string-builder-candidate | 0 | - | False |
0x00425d0d | path-string-builder-candidate | 0 | - | False |
0x00425e1c | path-string-builder-candidate | 0 | - | False |
0x00425f8c | path-string-builder-candidate | 0 | - | False |
0x0042607e | path-string-builder-candidate | 0 | - | False |
0x004263d8 | path-string-builder-candidate | 0 | - | False |
0x004264ab | path-string-builder-candidate | 0 | - | False |
0x00426565 | path-string-builder-candidate | 0 | - | False |
0x00426643 | path-string-builder-candidate | 3 | 0x0042308a in 0x004230410x00423176 in 0x004231270x00423366 in 0x00423319 | False |
0x00426735 | path-string-builder-candidate | 0 | - | False |
0x004267ec | path-string-builder-candidate | 0 | - | False |
0x004268db | path-string-builder-candidate | 0 | - | False |
Top Selector Roots By Resource Refs
resource payload surface| root | refs | class | scene groups | linked CNS sample |
|---|---|---|---|---|
0x00503870 | 175 | sequence-root-with-resource-structure | scene-text-group-030 | zs_sl.cns |
0x004ac10c | 123 | sequence-root-with-resource-structure | scene-text-group-017 | map_l1.cns map_l2.cns face_01.cns cara_01.cns cara_lst.cns map2_04l.cns map_e1.cns map_e2.cns |
0x00478364 | 104 | sequence-root-with-resource-structure | scene-text-group-012 | map_d1.cns map_d2.cns map_d3.cns face_01.cns cara_01.cns cara_03.cns cara_10.cns map2_02d.cns |
0x0051bf28 | 104 | sequence-root-with-resource-structure | scene-text-group-032 | zy_gost.cns |
0x0048458c | 92 | sequence-root-with-resource-structure | scene-text-group-013 | map_i1.cns map_i2.cns face_01.cns cara_15.cns map5_14i.cns map5_37i.cns |
0x00494c34 | 90 | sequence-root-with-resource-structure | scene-text-group-015 | map_f1.cns map_f2.cns map_f3.cns face_01.cns cara_03.cns cara_08.cns cara_07.cns cara_etc.cns |
0x004c3e08 | 83 | sequence-root-with-resource-structure | scene-text-group-018 | map_f1.cns map_f2.cns map_f3.cns face_01.cns cara_03.cns cara_08.cns cara_07.cns cara_etc.cns |
0x0044aad0 | 78 | sequence-root-with-resource-structure | scene-text-group-006 | map_a1.cns map_a2.cns face_01.cns cara_etc.cns map3_09a.cns map_d1.cns map_d2.cns map_d3.cns |
0x00468b18 | 78 | sequence-root-with-resource-structure | scene-text-group-010 | map_f1.cns map_f2.cns map_f3.cns face_01.cns cara_03.cns cara_08.cns cara_07.cns cara_etc.cns |
0x005286a8 | 75 | sequence-root-with-resource-structure | scene-text-group-034 | zh_sui.cns |
0x00444a44 | 67 | sequence-root-with-resource-structure | scene-text-group-005 | map_i1.cns map_i2.cns face_01.cns cara_15.cns cara_08.cns map5_14i.cns map_i3.cns cara_sm1.cns |
0x005137dc | 67 | sequence-root-with-resource-structure | scene-text-group-031 | zs_ryu.cns |
0x00540714 | 64 | sequence-root-with-resource-structure | scene-text-group-038 | map_a1.cns map_a2.cns face_01.cns cara_01.cns cara_05.cns cara_etc.cns map1_01a.cns map_d1.cns |
0x0044dd5c | 62 | sequence-root-with-resource-structure | scene-text-group-007 | zs_maoh.cns |
0x004f28a4 | 62 | sequence-root-with-resource-structure | scene-text-group-025 | map_d1.cns map_d2.cns map_d3.cns cara_sm1.cns face_01.cns cara_01.cns cara_03.cns map2_02d.cns |
0x00557e68 | 62 | sequence-root-with-resource-structure | scene-text-group-040 | map_j1.cns map_j2.cns face_01.cns cara_etc.cns map6_12j.cns map6_13j.cns map_j3.cns map6_14j.cns |
CNS String Samples
all code refs are currently 0| name | kind | string VA | pointer refs |
|---|---|---|---|
| map_a1.cns | tileset | 0x0043c044 | 1 |
| map_a2.cns | tileset | 0x0043c04f | 1 |
| map_b1.cns | tileset | 0x0043c05a | 1 |
| map_b2.cns | tileset | 0x0043c065 | 1 |
| map_b3.cns | tileset | 0x0043c070 | 1 |
| map_f1.cns | tileset | 0x0043c07b | 1 |
| map_f2.cns | tileset | 0x0043c086 | 1 |
| map_f3.cns | tileset | 0x0043c091 | 1 |
| map_h1.cns | tileset | 0x0043c09c | 2 |
| map_h2.cns | tileset | 0x0043c0a7 | 2 |
| map_h3.cns | tileset | 0x0043c0b2 | 2 |
| map1_01a.cns | map | 0x0043c0bd | 1 |
| map1_02b.cns | map | 0x0043c0ca | 1 |
| map5_07h.cns | map | 0x0043c0d7 | 1 |
| map7_02f.cns | map | 0x0043c0e4 | 1 |
| map7_03h.cns | map | 0x0043c0f1 | 1 |
| cara_at2.cns | sprite | 0x0043c0fe | 1 |
| cara_rs1.cns | sprite | 0x0043c10b | 1 |
| cara_sm1.cns | sprite | 0x0043c118 | 1 |
| face_01.cns | sprite | 0x0043c125 | 5 |
| cara_05.cns | sprite | 0x0043c131 | 2 |
| cara_12.cns | sprite | 0x0043c13d | 1 |
| cara_17.cns | sprite | 0x0043c149 | 1 |
| cara_01.cns | sprite | 0x0043c155 | 1 |