Files
isphere-ai-bridge/docs/source-discovery/2026-07-12-broute-file-send-static-map.md
2026-07-12 02:36:59 +08:00

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: FileUploadPara needs HTTP file server host/port/domain plus local file path and upload options.
  • High confidence: Chat.sendFileMessage produces 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

  1. Extract bridge/IPC/plugin candidates before coding any file-send adapter.
  2. If a bridge exists, prototype non-mutating discovery first: service availability, chat object lookup, and upload endpoint metadata only.
  3. Keep A-route/RPA backup-only.