• 攻克图片发送最后一公里(LSPosed,微信 8.0.74,真机验证全分辨率送达):
    
    根因: b80.u.oj(o70.k) 只做「插消息 f9 + 插 ImgInfo b0 + 建缩略图」并
    返回 List<o70.l> CDN 上传描述符,自己不提交 CDN。旧代码拿到 res 就丢掉
    list → 上传永不触发(缩略图渲染但全图转圈)。真实编排 pe5.f.a 才循环
    list 逐图提交(b80.s 只是 prebuild service checkPreBuildImg,不含 oj)。
    
    补上第二步(照搬 pe5.f.a): oj() 后对每个 o70.l:
      cdnSvc = n0.c(xs.d1.class)  // v70.w MsgImgFeatureService
      g = new r70.g(l.e, compress, c01.z1.r()/*self wxid*/, talker, k70.i0{a=3})
      cdnSvc.oj(g, l)             // → 启动 CDN 上传协程 e80.c
    
    真机: oj() DONE res=size=1 + CDN submit DONE items=1,无异常;filehelper
    收到消息点开是全分辨率原图(有原图+保存按钮,不再转圈)。
    
    坑: v70.w.oj 内部走 ViewModelProvider.get 须主线程调(广播 receiver 本就在
    主线程);jadx 字段名末位字母=真实 dex 字段;XposedHelpers stub 无
    getLongField 用原生反射。逆向靠拉 Tinker dex + jadx --single-class。
    
    产物: WECHAT_SEND_API.md §3 完整两步实现 + API 表;backups 源码快照。
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    yibo authored
     
    Browse File »

  • 逆向微信 8.0.74 内部发送 API(LSPosed,无 UI 模拟):
    
    - 文字(中英文): w11.r0(type=1) Object-ctor + z2.b NetSceneQueue,真机验证送达。
      中文走 text_b64 base64 通道避免 shell 损坏 UTF-8。避开 dk5.s5.Ni(实为发名片)。
    - 图片: hook 真实发送抓 o70.h/o70.k/o70.i 原样重放,攻克消息构建——
      能建 type=3 图片消息、缩略图渲染、进 pt0.e0 管线;全图 CDN 上传是最后一公里。
    - 语音: jg0.x.w hot-swap(真机验证投递)。
    - wxid 解析: EnMicroMsg.db SQLCipher 解密(key=MD5(imei+uin)[:7])查 rcontact。
    - 坑: 真实代码在 Tinker 补丁 CL(hook 用 sTinkerCL);force-stop 不 flush 加密 WAL。
    
    产物: WECHAT_SEND_API.md(完整逆向文档)+ skill_wechat_send/SKILL.md
         + backups/(WeChatHook.java 快照 + 构建/发送脚本)。
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    yibo authored
     
    Browse File »