揰掵佲 发表于 2020-7-1 12:02

解决wps2019专业版密钥失效的分析笔记

本帖最后由 揰掵佲 于 2020-7-1 14:59 编辑

一直在用WPS2019专业版,前段时间发现打字不行,只能复制粘贴.
后来发现密钥过期!

密钥之前说是 永久激活的 694BF-YUDBG-EAR69-BPRGB-ATQXH 重新输入之后 发现确实是无限制的
猜测是软件启动或者进入编辑状态的情况下,对密钥进行了服务器的校验.
于是打开抓包工具,HttpAnalyzerStdV7 抓包发现,当WPS文字进入编辑状态的情况下 触发这个+


POST /auth/serialNumber HTTP/1.1
Accept: */*
Content-Type: application/x-www-form-urlencoded
User-Agent: Kingsoft client
Host: cloudservice7.kingsoft-office-service.com
Cache-Control: no-cache
Content-Length: 64

serialNumber=694BF-YUDBG-EAR69-BPRGB-ATQXH&platform=PC&deviceId=
HTTP/1.1 200
Content-Security-Policy: media-src
Content-Type: application/json;charset=UTF-8
Date: Wed, 01 Jul 2020 03:12:48 GMT
Server: nginx/1.12.1
Vary: Accept-Encoding
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Connection: keep-alive
Content-Length: 114

{"code":0,"msg":"already expired","data":{"isValid":0,"startTime":1585299998,"endTime":1585299998,"totalTimes":1}}
通过对返回数据的时间戳转换 发现 开始和结束时间 是 2020-03-27 17:06:38 可能是我当时安装的时间,我不太记得了 Msg 提示已经过期.
因为已经过期了,所以先删除许可,重新输入 又提示无限制了
解决方法1可以在Hosts加入127.0.0.1 cloudservice7.kingsoft-office-service.com 解决过期问题.



但,这不是我们文章的重点,既然,我们已经知道了是通过提交数据进行校验的,那么,接下来,用OD打开WPS抓包软件不要退出,可以清晰的看到封包什么时候提交的
通过前面测试,得知,新建文档,进行编辑的时候 进行注册码的校验,所以,直接运行wps!
对 WSASend下断 看下能否拦截到封包信息之类的
新建一个文档 会断下


esp+0x8对应封包数据指针
我习惯字节形式查看
db [+0x4]


按F9放行 看下能否找到 对应的数据
发现新建没有拦截到 等待过程中 发现自动断下 拦截类似数据如下


先记录堆栈,其他都是其次 因为有关系

发现堆栈中 调用的是 wininet 的API
也就是说WPS通过调用 wininet 实现了一次网页数据的POST提交
可以搜索资料查看一下 wininet 提交数据数据的整个过程
其中InternetReadFile 是用来读取返回数据的
对这个API下断,重复之前的动作 删除许可 输入许可,重新新建 等待关键

经过新建文档 等待下断之后



117EEDC0   55C57CC4返回到 acm.55C57CC4 来自 wininet.InternetReadFile
返回上一层 循环下面下断

看到了和抓包数据一致的返回数据


在该函数头部下断 发现了提交的数据,猜测 这个就是用来进行验证的函数
这时候 可以直接对这个函数进行NOP 或者ret 都可以


但是,我们继续,返回上一层 定位到
55C64DF7 |. E8 922DFFFF CALL 55C57B8E ; 这里是访问网页函数
往上找到函数头
55C64D53 /$ 6A 58 PUSH 0x58 ; 函数头部 该函数在 acm.dll 中

操作方法 可以对这个函数头部 进行Ret 或者Nop也可以 自行操作即可
本来附带一些IDA分析,但是要吃饭去了:lol

经过反复测试,我还发现一个很神奇的地方,直接删除 acm.dll文件也可以实现 授权不过期.


3yu3 发表于 2020-7-1 18:11

楼主再查查有没有收集个人信息回传服务器的操作,免得它抓住版权问题秋后算帐。

xbxbxbxb 发表于 2020-7-1 18:36

揰掵佲 发表于 2020-7-1 14:21
能分享一下的话,是最好的咯.可以学学原理

你看看吧,应该是类似的。

onlychinese 发表于 2020-7-1 14:25

千百度 发表于 2020-7-1 16:11

揰掵佲 发表于 2020-7-1 14:21
能分享一下的话,是最好的咯.可以学学原理

原理看https://www.52pojie.cn/thread-1191616-1-1.html这个帖子

橙子味的成子 发表于 2020-7-1 16:32

我也遇到过很多次,所以我直接用防火墙阻止WPS联网

clide2000 发表于 2020-8-8 23:04

测试发现直接禁止wps的所有进程联网,也可以防止注册反弹

drboy 发表于 2021-11-14 13:57

一直用防火墙的方法,但是似乎有的功能有问题。试试回复里面的PJ补丁~

hb12375 发表于 2022-10-14 15:24

xbxbxbxb 发表于 2020-7-1 18:36
你看看吧,应该是类似的。

这个工具确实挺好的,双击安装就激活了{:1_921:}

寒心浪子 发表于 2020-7-1 21:39

axiong 发表于 2020-7-1 12:31
之前下载了个wps2019永久激活工具,也可以实现(acm.dll时间戳也对,hosts都没修改)。

那个工具用了,就是修改了LICENSE2.DAT文件但不是只读,是修改了里面的二进制代码大概8位。

iflower 发表于 2020-7-1 13:34

多谢大佬分享。留名收藏

一丝风 发表于 2020-7-1 12:06

厉害厉害

星空迷徒 发表于 2020-7-1 12:10

有个很奇怪的现象,我与朋友的安装包,KEY都是同一个,他的经常失效,我的一次没有{:1_925:}

单曲循环lee 发表于 2020-7-1 12:10

现在是直接屏蔽所有金山的服务器域名了,不敢随便放,mark一下后面找电脑测试测试

wcythily 发表于 2020-7-1 12:10

厉害 回头删了那个文件试试

yanglinman 发表于 2020-7-1 12:28

谢谢分析,回头把那个acm.dll 文件删掉!

axiong 发表于 2020-7-1 12:31

之前下载了个wps2019永久激活工具,也可以实现(acm.dll时间戳也对,hosts都没修改)。

tailor001 发表于 2020-7-1 12:35

删除acm.dll试试

cullenlin123 发表于 2020-7-1 13:03

拿了。有空在看看
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 解决wps2019专业版密钥失效的分析笔记