1234下一页
返回列表 发新帖

剪贴板限制解锁分析

  [复制链接]

163

主题

1044

回帖

4702

积分

大学生

Rank: 5Rank: 5

金币
1265
好评
4
信誉
97
QQ
发表于 昨天 11:33 来自手机  | 显示全部楼层 | 阅读模式  来自 湖南
本帖最后由 Mtawei 于 2026-9-14 11:55 编辑

sg输入法剪贴板字数限制:完整复盘
一起点:解除搜狗输入法剪贴板 5000 字的复制
二逆向定位:用 MT 的 APK 工作区打开,workspaceId 拿到 9k2l6a8v。第一步搜 clipboard 类名,捞出一大串 com.sogou.clipboard.*。核心几个类:

游客,如果您要查看本帖隐藏内容请回复

游客,如果您要查看本帖隐藏内容请回复

游客,如果您要查看本帖隐藏内容请回复
游客,如果您要查看本帖隐藏内容请回复
游客,如果您要查看本帖隐藏内容请回复

限制点确认:manager.a;->b()I,读 mmkv 键 clipboard_max_copy_length,默认值 0x1388 即 5000。函数里还有个现成后门——
  1. sget-boolean v0, Lcom/sogou/core/input/chinese/inputsession/utils/a;->l:Z
复制代码
,为 true 时直接 return 0x7fffffff。截断点确认:interceptor.a;->d(String),substring(0, b()) 直接砍。调用方 interceptor.f;->a(ClipData) 在 if-le v1, v3 判断后决定是否走截断分支。
三、三次改包尝试
开了编辑会话 c503d194,逐个改。
v1:b() 恒返 INT_MAX
把 b() 里的 sget 判断整段删掉,改成无条件 const v0, 0x7fffffff; return v0。 搜狗输入法_20.15.1_clipboard_unlock.apk,V1/V2/V3 全签。
结果:装上去复制长文本可,但剪贴板面板空白了。
中途插曲:改 if-le 为 if-ge
想过直接把 f->a 的 if-le 反转成 if-ge,让长串跳过截断分支。改完立刻回滚了——这个改法有副作用,短文本会掉进截断块误弹 toast,而且没解决根本问题。

v2:b() 恒返 0xf4240
把上限从 INT_MAX 降到 100 万,保留有限上界。 搜狗输入法_20.15.1_clipboard_v2.apk。
结果:依然无剪贴板内容。
四、总结为什么失败
v1、v2 症状一模一样,说明问题不在数值大小。深挖落库链路:
  1. f->a  →  a.d 截断  →  Wf 异步穿透  →  j->z  →  c.callable  →  j->b insertOrReplace
复制代码

游客,如果您要查看本帖隐藏内容请回复

  1. :catchall_63
  2.     invoke-virtual {p0, v1}, ClipboardBeacon;->setStatus(Z)
  3.     move-object v3, v0          # v0 = null
  4. :goto_6b
  5.     ...
  6.     invoke-virtual {p2, v0}, rx/g;->i(Object)   # 回调传 null
复制代码

任何一步抛异常都被静默吞掉,v3 置 null,回调传空对象,面板自然什么都不显示。

可疑爆点两个:

一是 j->q() 调的 Lcom/sogou/textmgmt/core/util/d;->a(String) 文本分析,超长或含特殊字符(URL、数字串)最容易炸。

二是 insertOrReplace 写 GreenDAO,内容列有字段长度约束。

把上限从 5000 拉到 100 万,等于把原本会被截断的长串放行成完整串,正好踩中这两个雷。v1、v2 结果相同,根源在此。


五、目前正在转向方案
与其继续跟搜狗这套黑盒链路死磕,不如我准备写一个悬浮窗剪贴板 Xposed 模块,挂在搜狗进程里直接接管。核心思路:
Xposed 在搜狗进程 hook InputMethodService.onWindowShown,键盘弹出时挂悬浮球
自己用 MMKV 存剪贴板历史,不碰 GreenDAO
点击条目直接 ClipboardManager.setPrimaryClip + commitText 上屏,绕开搜狗落库链路
搜狗是输入法进程,有剪贴板读取豁免。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

9

主题

1576

回帖

3139

积分

大学生

Rank: 5Rank: 5

金币
492
好评
1
信誉
100
发表于 昨天 11:40 来自手机  | 显示全部楼层  来自 河南
支持楼主
回复

使用道具 举报

64

主题

1483

回帖

4439

积分

大学生

LZY·网络资源

Rank: 5Rank: 5

金币
1060
好评
9
信誉
101

MT论坛最佳新人MT论坛新人考神MT论坛帅哥MT论坛活跃会员

QQ
发表于 昨天 11:49 来自手机  | 显示全部楼层  来自 天津
谢谢分享,正好需要
回复

使用道具 举报

3

主题

2864

回帖

1万

积分

博士生

小白一个

Rank: 7Rank: 7Rank: 7

金币
2230
好评
2
信誉
100

MT论坛最佳新人考神

发表于 昨天 11:50 来自手机  | 显示全部楼层  来自 湖北
看看教程
回复

使用道具 举报

24

主题

2616

回帖

8023

积分

硕士生

Rank: 6Rank: 6

金币
1485
好评
24
信誉
102

MT论坛新人考神

发表于 昨天 11:54 来自手机  | 显示全部楼层  来自 海南
看看隐藏
回复

使用道具 举报

64

主题

1483

回帖

4439

积分

大学生

LZY·网络资源

Rank: 5Rank: 5

金币
1060
好评
9
信誉
101

MT论坛最佳新人MT论坛新人考神MT论坛帅哥MT论坛活跃会员

QQ
发表于 昨天 11:58 来自手机  | 显示全部楼层  来自 北京
本帖最后由 LZY萌懂小白大佬嘴留情Lzy 于 2026-9-14 12:01 编辑

开发一下这种,新版的更好,我这是13.0讯飞

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0

主题

1572

回帖

5800

积分

硕士生

Rank: 6Rank: 6

金币
1802
好评
2
信誉
100

MT论坛最佳新人

发表于 昨天 11:58 来自手机  | 显示全部楼层  来自 河南
看看隐藏
回复

使用道具 举报

9

主题

142

回帖

417

积分

初中生

Rank: 3Rank: 3

金币
188
好评
0
信誉
101
发表于 昨天 12:01 来自手机  | 显示全部楼层  来自 北京
感谢
回复

使用道具 举报

41

主题

5559

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
4670
好评
18
信誉
108
发表于 昨天 12:04 来自手机  | 显示全部楼层  来自 河北
看看隐藏
回复

使用道具 举报

43

主题

4348

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
4601
好评
1
信誉
100

MT论坛帅哥考神MT论坛新人

发表于 昨天 12:12 来自手机  | 显示全部楼层  来自 山西
感谢
回复

使用道具 举报

0

主题

619

回帖

1504

积分

高中生

Rank: 4

金币
153
好评
0
信誉
102
发表于 昨天 12:15 来自手机  | 显示全部楼层  来自 广东
看看隐藏
回复

使用道具 举报

2

主题

136

回帖

505

积分

初中生

Rank: 3Rank: 3

金币
203
好评
0
信誉
100
发表于 昨天 12:22 来自手机  | 显示全部楼层  来自 江西
学习一下
回复

使用道具 举报

65

主题

3321

回帖

9362

积分

硕士生

Rank: 6Rank: 6

金币
2336
好评
21
信誉
104

MT论坛帅哥MT论坛新人考神MT论坛最佳新人

发表于 昨天 12:24 来自手机  | 显示全部楼层  来自 江苏
看看隐藏
回复

使用道具 举报

0

主题

201

回帖

434

积分

初中生

Rank: 3Rank: 3

金币
216
好评
0
信誉
100
发表于 昨天 12:25 来自手机  | 显示全部楼层  来自 湖北
看看隐藏
回复

使用道具 举报

4

主题

364

回帖

1074

积分

高中生

Rank: 4

金币
458
好评
0
信誉
96

MT论坛最佳新人

发表于 昨天 12:37 来自手机  | 显示全部楼层  来自 广东
看看隐藏
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表