34 KiB
B-Route File Send Static Map
Date: 2026-07-12
Scope
This report uses offline IL only. It does not upload files, send file messages, replay traffic, inject into a process, or mutate the original iSphere binaries.
Machine-readable evidence: runs/offline-broute-reverse/file-send-map.json
Sources
| Source | Role | Exists | Lines | Size bytes |
|---|---|---|---|---|
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il |
main client IL; UC_FileSend, OffLineFileSend, MessageScheduling | yes | 1360035 | 74148460 |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Service.dll.il |
file transfer service implementation | yes | 3351 | 207786 |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il |
file transfer contracts, parameters, and result DTOs | yes | 1641 | 93585 |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Interface.dll.il |
transport/event interface contracts | yes | 4429 | 227335 |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il |
Chat.sendFileMessage and XMPP message construction | yes | 87425 | 5019807 |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\TcpFileTransfer.dll.il |
native TCP transfer candidate; IL may be unavailable | yes | 5 | 241 |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Model.dll.il |
chat record models if extracted | no | 0 |
Target classification
| Target | Phase | Intent | Classification | Matches |
|---|---|---|---|---|
IMPP.Client.OffLineFileSend.sendFile |
upload |
offline file upload orchestration from UI file sender | confirmed_signature |
3 |
IMPP.Client.OffLineFileSend.trans_UploadCompleted |
upload_to_message_boundary |
upload-completed handler that converts FileUploadResult.FileID into a chat file message | confirmed_signature |
3 |
IMPP.Service.BLL.FileTransfer.FileUpload |
upload |
synchronous service upload entry returning FileUploadResult | confirmed_signature |
17 |
IMPP.Service.BLL.FileTransfer.AsynFileUpload |
upload |
asynchronous upload queue entry | confirmed_signature |
3 |
FileUploadPara |
upload_parameters |
host/port/domain/local file path/cache/timeout/upload flags | confirmed_signature |
66 |
FileUploadResult.FileID |
upload_result |
server-side file id and URL returned by upload | confirmed_signature |
75 |
MessageScheduling.SendFileMessage |
message |
scheduled/file-message finalization path using RosterContactsArgs and FileTransferArgs | confirmed_signature |
3 |
Chat.sendFileMessage |
message |
smack API that sends the XMPP file message after upload metadata is known | confirmed_signature |
8 |
Required values: path id size target jid |
requirements |
static evidence for local file path, remote folder/file id, file size/name, target JID/chat, and server auth | confirmed_signature |
550 |
Upload step vs chat-message step
| Step | Static evidence | Business meaning |
|---|---|---|
| 1. Upload | IMPP.Client.OffLineFileSend.sendFile constructs FileUploadPara and calls IFileTransfer.FileUpload; IMPP.Service.BLL.FileTransfer.FileUpload delegates to SyncFileTransfer and private Upload. |
The local file must be uploaded to the HTTP file service first. |
| 2. Upload result | FileUploadResult.FileID is read; upload notification calls IMPP.Client.OffLineFileSend.trans_UploadCompleted(fileId). |
The server-issued file id becomes the durable reference. |
| 3. Chat file message | trans_UploadCompleted and MessageScheduling.SendFileMessage build OFFLINE_FILE_TRANSFER;... payloads and call Chat.sendFileMessage. |
The chat send step publishes metadata/reference, not raw file bytes. |
Conclusion: file send is upload-first, chat-message-second. A direct chat message is insufficient without a valid uploaded file id or remote folder reference.
Required values
| Value | Status | Evidence |
|---|---|---|
| local file path | required_confirmed |
OffLineFileSend constructor receives localFilePath; sendFile uses get__localFilePath; MessageScheduling.SendFileMessage uses FileTransferArgs.get_LocalFilePath. |
| server file id / remote folder | required_confirmed |
Upload returns FileUploadResult.FileID; trans_UploadCompleted(fileId) passes it to Chat.sendFileMessage and Packet.set_id. MessageScheduling path uses FileTransferArgs.get_RemoteFolder. |
| file name and file size | required_confirmed |
SendFileMessage builds OFFLINE_FILE_TRANSFER payload from FileInfo/FileSystemInfo name and length; OffLineFileSend keeps _fileSize. |
| target JID / chat object | required_confirmed |
UC_FileSend and MessageScheduling both require a live smack Chat; scheduled path derives it from RosterContactsArgs.get_RosterJid + UtilsChat.GetChat. |
| HTTP file server and auth | required_confirmed |
FileUploadPara construction uses Config.ServerInfo.HTTPFileServer IP/Port/domain; service upload builds /FS/auth/resource/upload URL with UnifiedAuthentication token/app key/client secret/time/user id. |
| file hash | not_confirmed_in_file_send_path |
No file-transfer-path MD5/SHA/checksum requirement was confirmed in the configured IL. MD5 hits belong to image/RTF or auth digest areas, not the offline file-send path. |
Evidence excerpts
IMPP.Client.OffLineFileSend.sendFile
Classification: confirmed_signature; phase: upload; matches: 3.
| Source line | Kind | Snippet | Method context |
|---|---|---|---|
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:826149 |
signature_continuation |
sendFile() cil managed |
L826148: .method public hidebysig instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:826572 |
method_end |
} // end of method OffLineFileSend::sendFile |
`` |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:824164 |
callsite |
IL_026b: callvirt instance void IMPP.Client.OffLineFileSend::sendFile() |
`` |
IMPP.Client.OffLineFileSend.trans_UploadCompleted
Classification: confirmed_signature; phase: upload_to_message_boundary; matches: 3.
| Source line | Kind | Snippet | Method context |
|---|---|---|---|
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:826888 |
signature_continuation |
trans_UploadCompleted(string fileId) cil managed |
L826887: .method private hidebysig instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:827241 |
method_end |
} // end of method OffLineFileSend::trans_UploadCompleted |
`` |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:826670 |
callsite |
IL_0104: call instance void IMPP.Client.OffLineFileSend::trans_UploadCompleted(string) |
L826574: .method private hidebysig instance void |
IMPP.Service.BLL.FileTransfer.FileUpload
Classification: confirmed_signature; phase: upload; matches: 17.
| Source line | Kind | Snippet | Method context |
|---|---|---|---|
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Service.dll.il:851 |
signature_continuation |
FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara para) cil managed |
L849: .method public hidebysig newslot virtual final |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Service.dll.il:870 |
method_end |
} // end of method FileTransfer::FileUpload |
L849: .method public hidebysig newslot virtual final |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Service.dll.il:873 |
signature_continuation |
instance void AsynFileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara para) cil managed |
L872: .method public hidebysig newslot virtual final |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:164 |
method_end |
} // end of method IFileTransfer::FileUpload |
L160: .method public hidebysig newslot abstract virtual |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:512182 |
callsite |
IL_01d9: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara) |
`` |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608800 |
callsite |
IL_00b2: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara) |
L608722: .method private hidebysig instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608921 |
callsite |
IL_00c5: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara) |
L608836: .method private hidebysig instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:679721 |
callsite |
IL_00bf: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara) |
L679642: .method public hidebysig static void UploadGroupImage(string jid, |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:699952 |
callsite |
IL_024c: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara) |
`` |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:738959 |
callsite |
IL_00bf: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara) |
L738869: .method private hidebysig instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:739560 |
callsite |
IL_00bf: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara) |
L739470: .method private hidebysig instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:790010 |
callsite |
IL_018b: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara) |
`` |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:826414 |
callsite |
IL_02b6: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara) |
`` |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Service.dll.il:2852 |
reference |
} // end of property FileTransfer::FileUploadMaxCount |
L2825: .method family hidebysig newslot virtual |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Service.dll.il:2861 |
reference |
} // end of property FileTransfer::FileUploadCount |
L2825: .method family hidebysig newslot virtual |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:186 |
reference |
} // end of property IFileTransfer::FileUploadMaxCount |
L177: .method public hidebysig newslot abstract virtual |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:205 |
reference |
} // end of property IFileTransfer::FileUploadCount |
L177: .method public hidebysig newslot abstract virtual |
IMPP.Service.BLL.FileTransfer.AsynFileUpload
Classification: confirmed_signature; phase: upload; matches: 3.
| Source line | Kind | Snippet | Method context |
|---|---|---|---|
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Service.dll.il:873 |
signature_continuation |
instance void AsynFileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara para) cil managed |
L872: .method public hidebysig newslot virtual final |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Service.dll.il:883 |
method_end |
} // end of method FileTransfer::AsynFileUpload |
L872: .method public hidebysig newslot virtual final |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:169 |
method_end |
} // end of method IFileTransfer::AsynFileUpload |
L166: .method public hidebysig newslot abstract virtual |
FileUploadPara
Classification: confirmed_signature; phase: upload_parameters; matches: 66.
| Source line | Kind | Snippet | Method context |
|---|---|---|---|
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Service.dll.il:851 |
signature_continuation |
FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara para) cil managed |
L849: .method public hidebysig newslot virtual final |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Service.dll.il:873 |
signature_continuation |
instance void AsynFileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara para) cil managed |
L872: .method public hidebysig newslot virtual final |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:162 |
signature_continuation |
FileUpload(class IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara para) cil managed |
L160: .method public hidebysig newslot abstract virtual |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:167 |
signature_continuation |
instance void AsynFileUpload(class IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara para) cil managed |
L166: .method public hidebysig newslot abstract virtual |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:1139 |
type_definition |
.class public auto ansi serializable beforefieldinit IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara |
L1086: .method family hidebysig specialname rtspecialname |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:1155 |
method_end |
} // end of method FileUploadPara::get_IsImg |
L1146: .method public hidebysig specialname instance bool |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:1167 |
method_end |
} // end of method FileUploadPara::set_IsImg |
L1157: .method private hidebysig specialname instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:1178 |
method_end |
} // end of method FileUploadPara::get_IsPublic |
L1169: .method public hidebysig specialname instance bool |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:1190 |
method_end |
} // end of method FileUploadPara::set_IsPublic |
L1180: .method public hidebysig specialname instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:1234 |
method_end |
} // end of method FileUploadPara::.ctor |
L1192: .method public hidebysig specialname rtspecialname |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:1263 |
method_end |
} // end of method FileUploadPara::.ctor |
L1236: .method public hidebysig specialname rtspecialname |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:512182 |
callsite |
IL_01d9: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara) |
`` |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:512459 |
constructor_call |
IL_04a3: newobj instance void [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara::.ctor(string, |
`` |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608787 |
constructor_call |
IL_0092: newobj instance void [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara::.ctor(string, |
L608722: .method private hidebysig instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608795 |
callsite |
IL_009c: callvirt instance void [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara::set_IsPublic(bool) |
L608722: .method private hidebysig instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608800 |
callsite |
IL_00b2: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara) |
L608722: .method private hidebysig instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608908 |
constructor_call |
IL_00a5: newobj instance void [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara::.ctor(string, |
L608836: .method private hidebysig instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608916 |
callsite |
IL_00af: callvirt instance void [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara::set_IsPublic(bool) |
L608836: .method private hidebysig instance void |
FileUploadResult.FileID
Classification: confirmed_signature; phase: upload_result; matches: 75.
| Source line | Kind | Snippet | Method context |
|---|---|---|---|
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.Service.dll.il:982 |
method_header |
.method private hidebysig instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult |
L982: .method private hidebysig instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:1277 |
type_definition |
.class public auto ansi serializable beforefieldinit IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult |
L1236: .method public hidebysig specialname rtspecialname |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:1307 |
method_end |
} // end of method FileUploadResult::.ctor |
L1284: .method public hidebysig specialname rtspecialname |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:1318 |
method_end |
} // end of method FileUploadResult::get_FileID |
L1309: .method public hidebysig specialname instance string |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:1330 |
method_end |
} // end of method FileUploadResult::set_FileID |
L1320: .method private hidebysig specialname instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:1341 |
method_end |
} // end of method FileUploadResult::get_Url |
L1332: .method public hidebysig specialname instance string |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:1353 |
method_end |
} // end of method FileUploadResult::set_Url |
L1343: .method private hidebysig specialname instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:512182 |
callsite |
IL_01d9: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara) |
`` |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:512315 |
callsite |
IL_0322: callvirt instance string [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult::get_FileID() |
`` |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608800 |
callsite |
IL_00b2: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara) |
L608722: .method private hidebysig instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608819 |
callsite |
IL_00e0: callvirt instance string [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult::get_FileID() |
L608722: .method private hidebysig instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608921 |
callsite |
IL_00c5: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara) |
L608836: .method private hidebysig instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:608940 |
callsite |
IL_00f3: callvirt instance string [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult::get_FileID() |
L608836: .method private hidebysig instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:679721 |
callsite |
IL_00bf: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara) |
L679642: .method public hidebysig static void UploadGroupImage(string jid, |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:679747 |
callsite |
IL_00f4: callvirt instance string [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult::get_FileID() |
L679642: .method public hidebysig static void UploadGroupImage(string jid, |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:699952 |
callsite |
IL_024c: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara) |
`` |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:699993 |
callsite |
IL_02bf: callvirt instance string [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult::get_FileID() |
`` |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:738959 |
callsite |
IL_00bf: callvirt instance class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadResult [IMPP.ServiceBase]IMPP.ServiceBase.Interface.IFileTransfer::FileUpload(class [IMPP.ServiceBase]IMPP.ServiceBase.ModelBase.FileServiceBase.FileUploadPara) |
L738869: .method private hidebysig instance void |
MessageScheduling.SendFileMessage
Classification: confirmed_signature; phase: message; matches: 3.
| Source line | Kind | Snippet | Method context |
|---|---|---|---|
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1153803 |
signature_continuation |
SendFileMessage(class IMPP.Client.Business.RosterContacts.RosterContactsArgs rosterArgs, |
L1153802: .method public hidebysig static class [smack]com.vision.smack.packet.XmppMessage |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1154125 |
method_end |
} // end of method MessageScheduling::SendFileMessage |
`` |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:728711 |
callsite |
IL_01fb: call class [smack]com.vision.smack.packet.XmppMessage IMPP.Client.Core.MessageEngine.MessageScheduling::SendFileMessage(class IMPP.Client.Business.RosterContacts.RosterContactsArgs, |
`` |
Chat.sendFileMessage
Classification: confirmed_signature; phase: message; matches: 8.
| Source line | Kind | Snippet | Method context |
|---|---|---|---|
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:1235 |
signature_continuation |
sendFileMessage(string p_message, |
L1233: .method public hidebysig newslot abstract virtual |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:1244 |
method_end |
} // end of method Chat::sendFileMessage |
L1233: .method public hidebysig newslot abstract virtual |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:21442 |
signature_continuation |
sendFileMessage(string p_message, |
L21441: .method public hidebysig virtual instance class com.vision.smack.packet.XmppMessage |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:21490 |
method_end |
} // end of method P2PChat::sendFileMessage |
L21441: .method public hidebysig virtual instance class com.vision.smack.packet.XmppMessage |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:30070 |
signature_continuation |
sendFileMessage(string p_message, |
L30069: .method public hidebysig virtual instance class com.vision.smack.packet.XmppMessage |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:30119 |
method_end |
} // end of method ChatRoom::sendFileMessage |
L30069: .method public hidebysig virtual instance class com.vision.smack.packet.XmppMessage |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:827225 |
callsite |
IL_034d: callvirt instance class [smack]com.vision.smack.packet.XmppMessage [smack]com.vision.smack.Chat::sendFileMessage(string, |
`` |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1153922 |
callsite |
IL_00f1: callvirt instance class [smack]com.vision.smack.packet.XmppMessage [smack]com.vision.smack.Chat::sendFileMessage(string, |
L1153802: .method public hidebysig static class [smack]com.vision.smack.packet.XmppMessage |
Required values: path id size target jid
Classification: confirmed_signature; phase: requirements; matches: 550.
| Source line | Kind | Snippet | Method context |
|---|---|---|---|
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:611789 |
method_end |
} // end of method RosterContactsArgs::get_RosterJid |
L611780: .method public hidebysig specialname instance class [smack]com.vision.smack.Jid |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:670956 |
type_definition |
.class public auto ansi beforefieldinit IMPP.Client.Business.Authentication.UnifiedAuthenticationCenter |
L670876: .method private hidebysig instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:671260 |
method_end |
} // end of method UnifiedAuthenticationCenter::Authentication |
`` |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:671331 |
method_end |
} // end of method UnifiedAuthenticationCenter::GetServerTimeSpan |
L671262: .method public hidebysig instance valuetype [mscorlib]System.TimeSpan |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:671390 |
method_end |
} // end of method UnifiedAuthenticationCenter::ConvertStringToDateTime |
L671333: .method private hidebysig instance valuetype [mscorlib]System.DateTime |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:671406 |
method_end |
} // end of method UnifiedAuthenticationCenter::InitServiceManager |
L671392: .method public hidebysig instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:671416 |
method_end |
} // end of method UnifiedAuthenticationCenter::.ctor |
L671408: .method public hidebysig specialname rtspecialname |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:723604 |
method_end |
} // end of method FileTransferArgs::get_LocalFilePath |
L723595: .method public hidebysig specialname instance string |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:723650 |
method_end |
} // end of method FileTransferArgs::get_RemoteFolder |
L723641: .method public hidebysig specialname instance string |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:723876 |
method_end |
} // end of method RosterContactsGroupArgs::get_RosterJid |
L723867: .method public hidebysig specialname instance class [smack]com.vision.smack.Jid |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:767951 |
method_end |
} // end of method ServerInfo::set_HTTPFileServer |
L767941: .method public hidebysig specialname instance void |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:767962 |
method_end |
} // end of method ServerInfo::get_HTTPFileServer |
L767953: .method public hidebysig specialname instance class IMPP.Client.Server |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:768272 |
method_end |
} // end of method BaseConfig::UnifiedAuthenticationAddress |
L768241: .method public hidebysig instance string |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:826017 |
method_end |
} // end of method OffLineFileSend::get__localFilePath |
L826008: .method private hidebysig specialname instance string |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:826109 |
method_end |
} // end of method OffLineFileSend::get__fileSize |
L826100: .method private hidebysig specialname instance int64 |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1339551 |
method_end |
} // end of method OffLineFileRecv::get__fileSize |
L1339542: .method private hidebysig specialname instance int64 |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPP.ServiceBase.dll.il:477 |
method_end |
} // end of method FileTransferParaBase::get_LocalFilePath |
L468: .method public hidebysig specialname instance string |
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:13688 |
callsite |
IL_0179: callvirt instance class [smack]com.vision.smack.Chat [smack]com.vision.smack.ChatManager::GetChat(class [smack]com.vision.smack.XMPPConnection, |
`` |
Inference
- High confidence: upload and file-message finalization are separate steps.
- High confidence:
FileUploadParaneeds HTTP file server host/port/domain plus local file path and upload options. - High confidence:
Chat.sendFileMessageproduces the XMPP file-message envelope after file metadata is available. - Medium confidence: B-route file send must either call the same logged-in service/runtime or reproduce the authenticated HTTP upload plus XMPP file-message sequence.
- Low confidence until bridge evidence: an external sidecar can obtain the same service/auth/chat objects without being inside the logged-in client process.
Decision
Offline static evidence supports B-route research, but file sending needs more than one method call: upload first, then chat file-message finalization. The next blocker is reachability: whether an IPC/plugin/in-process bridge can access the logged-in IFileTransfer service and smack Chat object.
Next work
- Extract bridge/IPC/plugin candidates before coding any file-send adapter.
- If a bridge exists, prototype non-mutating discovery first: service availability, chat object lookup, and upload endpoint metadata only.
- Keep A-route/RPA backup-only.