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

20 KiB

B-Route Text Send Static Map

Date: 2026-07-12

Scope

This report uses offline IL only. It does not log in, send messages, replay traffic, inject into a process, or mutate the original iSphere binaries.

Machine-readable evidence: runs/offline-broute-reverse/text-send-map.json

Sources

Source Role Exists Lines Size bytes
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il main managed client IL; chat UI, AppContextManager, scheduling call sites yes 1360035 74148460
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il XMPP/smack managed IL; Chat and XMPPConnection implementation yes 87425 5019807

Target classification

Target Intent Classification Matches
AppContextManager.SendTxtMessageByJid high-level text send entry exposed by AppContextManager confirmed_signature 4
MessageScheduling.SendChatMessage message scheduling text/chat send helper confirmed_signature 6
Chat.SendMessage smack Chat send API used by chat/UI code confirmed_signature 16
XMPPConnection.send lowest-level XMPP connection send primitive confirmed_signature 105
MessageCenter send-related callbacks MessageCenter or IMPPManager message-center callbacks touching send/message flow confirmed_signature 962

Verified facts

  • AppContextManager.SendTxtMessageByJid appears in the offline client IL and is not just a UIA/RPA artifact.
  • MessageScheduling.SendChatMessage appears in the offline client IL and has call-site evidence around chat-message flow.
  • Chat.SendMessage / Chat.sendMessage appears as a smack chat API used by client code.
  • XMPPConnection.send appears as a lower-level connection send primitive in offline IL.
  • MessageCenter send-related callbacks appear as MessageCenter/GetMessageCenter references, but offline static evidence alone does not prove an external bridge can call them.

Evidence excerpts

AppContextManager.SendTxtMessageByJid

Classification: confirmed_signature; matches: 4.

Source line Kind Snippet Method context
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:585987 signature_continuation instance void SendTxtMessageByJid(string jid, L585986: .method public hidebysig newslot virtual final
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:586197 method_end } // end of method AppContextManager::SendTxtMessageByJid ``
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:542112 string_literal IL_09bf: ldstr "SendTxtMessageByJid" ``
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1358068 string_literal IL_0c3f: ldstr "SendTxtMessageByJid" ``

MessageScheduling.SendChatMessage

Classification: confirmed_signature; matches: 6.

Source line Kind Snippet Method context
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1153800 method_end } // end of method MessageScheduling::SendChatMessage ``
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1154225 method_end } // end of method MessageScheduling::SendChatMessage ``
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:728720 callsite IL_0213: call class [smack]com.vision.smack.packet.XmppMessage IMPP.Client.Core.MessageEngine.MessageScheduling::SendChatMessage(class IMPP.Client.Business.RosterContacts.RosterContactsArgs, ``
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1154187 callsite IL_006e: call class [smack]com.vision.smack.packet.XmppMessage IMPP.Client.Core.MessageEngine.MessageScheduling::SendChatMessage(class [smack]com.vision.smack.Chat, L1154127: .method public hidebysig static class [smack]com.vision.smack.packet.XmppMessage
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1153541 reference SendChatMessage(class [smack]com.vision.smack.Chat chat, L1153540: .method public hidebysig static class [smack]com.vision.smack.packet.XmppMessage
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1154128 reference SendChatMessage(class IMPP.Client.Business.RosterContacts.RosterContactsArgs rosterArgs, L1154127: .method public hidebysig static class [smack]com.vision.smack.packet.XmppMessage

Chat.SendMessage

Classification: confirmed_signature; matches: 16.

Source line Kind Snippet Method context
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:1220 method_end } // end of method Chat::sendMessage L1217: .method public hidebysig newslot abstract virtual
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:1231 method_end } // end of method Chat::sendMessage L1222: .method public hidebysig newslot abstract virtual
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:1425 method_end } // end of method Chat::SendMessage ``
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:1266 callsite IL_0021: call instance class com.vision.smack.packet.XmppMessage com.vision.smack.Chat::SendMessage(class com.vision.smack.packet.XmppMessage) L1246: .method public hidebysig instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:21393 callsite IL_0047: call instance class com.vision.smack.packet.XmppMessage com.vision.smack.Chat::SendMessage(class com.vision.smack.packet.XmppMessage) L21362: .method public hidebysig virtual instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:21431 callsite IL_002b: call instance class com.vision.smack.packet.XmppMessage com.vision.smack.Chat::SendMessage(class com.vision.smack.packet.XmppMessage) L21398: .method public hidebysig virtual instance class com.vision.smack.packet.XmppMessage
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:21482 callsite IL_003a: call instance class com.vision.smack.packet.XmppMessage com.vision.smack.Chat::SendMessage(class com.vision.smack.packet.XmppMessage) 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:29958 callsite IL_0047: call instance class com.vision.smack.packet.XmppMessage com.vision.smack.Chat::SendMessage(class com.vision.smack.packet.XmppMessage) L29927: .method public hidebysig virtual instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:30063 callsite IL_0064: call instance class com.vision.smack.packet.XmppMessage com.vision.smack.Chat::SendMessage(class com.vision.smack.packet.XmppMessage) L30012: .method public hidebysig virtual instance class com.vision.smack.packet.XmppMessage
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:30115 callsite IL_0056: call instance class com.vision.smack.packet.XmppMessage com.vision.smack.Chat::SendMessage(class com.vision.smack.packet.XmppMessage) 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:299997 callsite IL_0096: callvirt instance class [smack]com.vision.smack.packet.XmppMessage [smack]com.vision.smack.Chat::SendMessage(class [smack]com.vision.smack.packet.XmppMessage) L299937: .method public hidebysig instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:412929 callsite IL_00d2: callvirt instance class [smack]com.vision.smack.packet.XmppMessage [smack]com.vision.smack.Chat::SendMessage(class [smack]com.vision.smack.packet.XmppMessage) L412858: .method public hidebysig instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:430535 callsite IL_0357: callvirt instance class [smack]com.vision.smack.packet.XmppMessage [smack]com.vision.smack.Chat::SendMessage(class [smack]com.vision.smack.packet.XmppMessage) ``
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:739211 callsite IL_012c: callvirt instance class [smack]com.vision.smack.packet.XmppMessage [smack]com.vision.smack.Chat::sendMessage(string, ``
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:739789 callsite IL_012c: callvirt instance class [smack]com.vision.smack.packet.XmppMessage [smack]com.vision.smack.Chat::sendMessage(string, ``
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:1153743 callsite IL_01d0: callvirt instance class [smack]com.vision.smack.packet.XmppMessage [smack]com.vision.smack.Chat::SendMessage(class [smack]com.vision.smack.packet.XmppMessage) ``

XMPPConnection.send

Classification: confirmed_signature; matches: 105.

Source line Kind Snippet Method context
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:86319 method_end } // end of method XMPPConnection::send L86263: .method public hidebysig instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:1378 callsite IL_00bc: callvirt instance void com.vision.smack.XMPPConnection::send(string) ``
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:17710 callsite IL_004a: callvirt instance void com.vision.smack.XMPPConnection::send(string) L17649: .method public hidebysig instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:23187 callsite IL_004b: callvirt instance void com.vision.smack.XMPPConnection::send(string) L23150: .method public hidebysig instance class com.vision.smack.disco.DiscoInfoResponse
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:23248 callsite IL_002c: callvirt instance void com.vision.smack.XMPPConnection::send(string) L23220: .method public hidebysig virtual instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:23962 callsite IL_0110: callvirt instance void com.vision.smack.XMPPConnection::send(string) ``
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:26786 callsite IL_004e: callvirt instance void com.vision.smack.XMPPConnection::send(string) L26752: .method public hidebysig instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:26855 callsite IL_008b: callvirt instance void com.vision.smack.XMPPConnection::send(string) L26790: .method public hidebysig instance class [mscorlib]System.Collections.Generic.IList1`
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:26980 callsite IL_008a: callvirt instance void com.vision.smack.XMPPConnection::send(string) L26919: .method public hidebysig instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:29230 callsite IL_00a2: callvirt instance void com.vision.smack.XMPPConnection::send(string) L29148: .method public hidebysig instance bool
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:29470 callsite IL_007d: callvirt instance void com.vision.smack.XMPPConnection::send(string) L29404: .method public hidebysig instance bool
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:29690 callsite IL_0053: callvirt instance void com.vision.smack.XMPPConnection::send(string) L29646: .method public hidebysig instance bool
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:29841 callsite IL_00b2: callvirt instance void com.vision.smack.XMPPConnection::send(string) L29766: .method public hidebysig instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:29918 callsite IL_0033: callvirt instance void com.vision.smack.XMPPConnection::send(string) L29894: .method public hidebysig virtual instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:30152 callsite IL_003c: callvirt instance void com.vision.smack.XMPPConnection::send(string) L30121: .method public hidebysig instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:30178 callsite IL_0023: callvirt instance void com.vision.smack.XMPPConnection::send(string) L30159: .method public hidebysig instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:30221 callsite IL_0046: callvirt instance void com.vision.smack.XMPPConnection::send(string) L30182: .method public hidebysig instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\smack.dll.il:30268 callsite IL_004d: callvirt instance void com.vision.smack.XMPPConnection::send(string) L30225: .method public hidebysig instance void

Classification: confirmed_signature; matches: 962.

Source line Kind Snippet Method context
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:74199 method_end } // end of method MessageCenter::add_OnMessageSended L74135: .method public hidebysig specialname instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:74265 method_end } // end of method MessageCenter::remove_OnMessageSended L74201: .method public hidebysig specialname instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:75658 method_end } // end of method MessageCenter::pChat_OnMessageSended L75587: .method private hidebysig instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:82645 method_end } // end of method MessageCenter::SendPluginsOffLineMessage ``
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:206380 method_end } // end of method AVRoomMessageCenter::Send L206369: .method public hidebysig instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:945209 method_header .method public hidebysig instance class IMPP.Client.control.MessageCenter L945209: .method public hidebysig instance class IMPP.Client.control.MessageCenter
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:945695 method_header .method public hidebysig specialname instance class IMPP.Client.control.MessageCenter L945695: .method public hidebysig specialname instance class IMPP.Client.control.MessageCenter
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:72786 callsite IL_0005: callvirt instance class IMPP.Client.control.MessageCenter IMPP.Client.IMPPManager::GetMessageCenter() L72779: .method private hidebysig instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:72787 callsite IL_000a: callvirt instance int32 IMPP.Client.control.MessageCenter::GetChatMessageCount() L72779: .method private hidebysig instance void
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:72814 callsite IL_000b: callvirt instance class IMPP.Client.control.MessageCenter IMPP.Client.IMPPManager::GetMessageCenter() L72806: .method public hidebysig specialname rtspecialname
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:72820 callsite IL_001c: callvirt instance void IMPP.Client.control.MessageCenter::add_OnMessageArrived(class IMPP.Client.control.MessageCenter/MessageArrivedHandler) L72806: .method public hidebysig specialname rtspecialname
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:72822 callsite IL_0026: callvirt instance class IMPP.Client.control.MessageCenter IMPP.Client.IMPPManager::GetMessageCenter() L72806: .method public hidebysig specialname rtspecialname
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:72827 callsite IL_0037: callvirt instance void IMPP.Client.control.MessageCenter::add_OnMessageConsumed(class IMPP.Client.control.MessageCenter/MessageConsumedHandler) L72806: .method public hidebysig specialname rtspecialname
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:72829 callsite IL_0041: callvirt instance class IMPP.Client.control.MessageCenter IMPP.Client.IMPPManager::GetMessageCenter() L72806: .method public hidebysig specialname rtspecialname
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:72835 callsite IL_0052: callvirt instance void IMPP.Client.control.MessageCenter::add_UpdateUnreadMessageCount(class IMPP.Client.control.MessageCenter/UpdateUnreadMessageCountHandler) L72806: .method public hidebysig specialname rtspecialname
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:72837 callsite IL_005c: callvirt instance class IMPP.Client.control.MessageCenter IMPP.Client.IMPPManager::GetMessageCenter() L72806: .method public hidebysig specialname rtspecialname
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:72842 callsite IL_006d: callvirt instance void IMPP.Client.control.MessageCenter::add_TcpFileToOffline(class [mscorlib]System.Action1<class [smack]com.vision.smack.packet.XmppMessage>)` L72806: .method public hidebysig specialname rtspecialname
runs\offline-evidence-intake\zyl-qqfile-20260709\metadata\c28-il\IMPlatformClient.exe.il:72844 callsite IL_0077: callvirt instance class IMPP.Client.control.MessageCenter IMPP.Client.IMPPManager::GetMessageCenter() L72806: .method public hidebysig specialname rtspecialname

Inference

  • High confidence: text sending has an internal managed call path that reaches smack chat/connection send APIs.
  • Medium confidence: the likely chain is high-level AppContextManager or UI chat code -> MessageScheduling/frmP2PChat -> smack Chat.SendMessage/sendMessage -> XMPPConnection.send.
  • Low confidence until live/runtime evidence: an external sidecar can invoke this path without being inside the logged-in process.

Decision

B-route text send remains plausible only if a bridge can enter the logged-in runtime or an existing IPC/API exposes the same call. Offline IL confirms call shape, but not runtime invocability.

Next work

  1. Extract file-send/upload call graph and separate upload from chat-message finalization.
  2. Extract bridge/IPC/plugin candidates to see whether the send call path is reachable without RPA.
  3. Keep A-route/RPA as backup-only; do not promote it unless B-route bridge evidence fails.