去除搜狗输入法弹窗骚扰的一个简易方法
Posted hoodlum1980 [ 发发 ] 的技术博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了去除搜狗输入法弹窗骚扰的一个简易方法相关的知识,希望对你有一定的参考价值。
说明:此文原本发布于我的 CSDN 博客,但在 CSDN 处在“待审核”状态,用户无法浏览,因此转发到我的博客园博客。
-- 2018-12-04
我使用的输入法,是搜狗输入法 9.0 正式版(9.0.0.2502)。但比较讨厌的是,搜狗输入法的 SGTool.exe 会弹窗。同时这个程序还是用来设置属性用的,所以干掉这个程序以后,我们就没法再设置属性了。
(1)拒绝所有用户组对 SGTool.exe 的所有安全控制权限
先把输入法属性设置好。然后找到 SGTool.exe ,用管理员账户,右键-属性-权限,把全部用户组下面的全部权限都勾上拒绝,确定即可。这样这个弹窗的程序就被禁用了,当然,设置输入法的模糊音等属性也不行了(除非你再把它的权限复原)。
(2)修改 SogouPY.ime 的对话框模板 ID
禁止 SGTool.exe 以后,其他进程偶尔会弹出下面的对话框,再把它干掉就更清爽了:
用 ProcessExplorer 发现,搜狗输入法注入到其他进程里面有两个 ime 模块(实质等同于 DLL 文件),弹出这个对话框的是叫做 SogouPY.ime 这个文件。
用 VS2005 打开这个文件,可以看到这个对话框模板 ID 为 129 (0x81)。
用我自己写的 PE 文件资源查看小程序(这个小程序在我的 cnblogs 博客上有源码,我又加以改进,增加了资源 ID 在文件中的文件地址),可以看到对应的对话框 ID 在文件中的位置(简称为 FA):
在 SogouPY.ime 中,是通过 DialogBoxParamW 这个 API 来弹出上面的对话框,因此,简易方法就是,我们把文件中的对话框模板 ID 修改掉,这个 API 就无法找到这个对话框模板,就不会有弹窗效果了。因此,把
- C:WindowsSysWOW64SogouPY.ime
(注:在 x64 位系统上的这个位置,表明它是一个目标平台为 x86 的程序。)
复制到其他位置产生一个副本,使用 UltraEdit (或者任何能切换到 16 进制模式的编辑器),在 16 进制编辑模式下,按 Ctrl-G,在地址中输入上图中显示的对话框模板 ID 的文件地址 0x00552318,在这个位置看到对话框模板 ID (是一个 WORD 类型),为两个字节(81 00),(这个地方本质上是一个 size = 8 bytes 的 IMAGE_RESOURCE_DIRECTORY_ENTRY 节点)这两个字节就是该对话框模板的数字 ID,我们可以随意把它改为其他的数字,这里我把它修改为 21 00,然后保存。这样一个新的 SogouPY.ime 就生成好了。
(3)用修改后的 SogouPY.ime 替换当前在使用的
然后进行替换,由于这个文件可能已经被多个进程映射(加载)到进程空间了,所以直接替换可能不一定能成功。因此如果有安装双系统,可以进入另一个系统,或者使用一个被制成 winpe 启动盘的 U 盘(例如老毛桃,大白菜等),进入到 winpe 系统,进行替换。然后再次回到 windows 系统,就不会再看到输入法任何弹窗了。
(4)小结以及副作用
输入法的设置属性功能也同时被 ban 了。如果需要设置属性,把原版 SGTool.exe 权限放开,设置完属性再次禁用其所有权限即可。
以上是关于去除搜狗输入法弹窗骚扰的一个简易方法的主要内容,如果未能解决你的问题,请参考以下文章