去除搜狗输入法弹窗骚扰的一个简易方法

PS:这里推荐一下搜狗输入法 V7.1 版,个人认为这个版本还是比较良心的。鉴于国内公司的流氓属性的根深蒂固,任何良心软件都有可能被国内公司污染(例如 flashplayer),大家不要随意的去安装搜狗输入法的各种比较新的版本。-- 2019-11-04

----

我使用的输入法,是搜狗输入法 9.0 正式版(9.0.0.2502)。但比较讨厌的是,搜狗输入法的 SGTool.exe 会弹窗。同时这个程序还是用来设置属性用的,所以干掉这个程序以后,我们就没法再设置属性了。

(1)拒绝所有用户组对 SGTool.exe 的所有安全控制权限

先把输入法属性设置好。然后找到 SGTool.exe ,用管理员账户,右键-属性-权限,把全部用户组下面的全部权限都勾上拒绝,确定即可。这样这个弹窗的程序就被禁用了,当然,设置输入法的模糊音等属性也不行了(除非你再把它的权限复原)。

(2)修改 SogouPY.ime 的对话框模板 ID

禁止 SGTool.exe 以后,其他进程偶尔会弹出下面的对话框,再把它干掉就更清爽了:

去除搜狗输入法弹窗骚扰的一个简易方法_第1张图片

用 ProcessExplorer 发现,搜狗输入法注入到其他进程里面有两个 ime 模块(实质等同于 DLL 文件),弹出这个对话框的是叫做 SogouPY.ime 这个文件。

用 VS2005 打开这个文件,可以看到这个对话框模板 ID 为 129 (0x81)。

用我自己写的 PE 文件资源查看小程序(这个小程序在我的 cnblogs 博客上有源码,我又加以改进,增加了资源 ID 在文件中的文件地址),可以看到对应的对话框 ID 在文件中的位置(简称为 FA):

去除搜狗输入法弹窗骚扰的一个简易方法_第2张图片

在 SogouPY.ime 中,是通过 DialogBoxParamW 这个 API 来弹出上面的对话框,因此,简易方法就是,我们把文件中的对话框模板 ID 修改掉,这个 API 就无法找到这个对话框模板,就不会有弹窗效果了。因此,把

  • C:\Windows\SysWOW64\SogouPY.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张图片

(3)用修改后的 SogouPY.ime 替换当前在使用的

然后进行替换,由于这个文件可能已经被多个进程映射(加载)到进程空间了,所以直接替换可能不一定能成功。因此如果有安装双系统,可以进入另一个系统,或者使用一个被制成 winpe 启动盘的 U 盘(例如老毛桃,大白菜等),进入到 winpe 系统,进行替换。然后再次回到 windows 系统,就不会再看到输入法任何弹窗了。

(4)小结以及副作用

小结:当然了,如果把弹出该对话框的 DialogBoxParamW 的调用给干掉,应该也是可以解决问题的。但需要借助反汇编工具去反汇编然后修改,需要一定的汇编语言知识和逆向工程经验。而修改对话框模板 ID 只需要借助很少的辅助程序和应用,成本相对更低,更简便也更容易完成。

副作用:输入法的设置属性功能也同时被 ban 了。如果需要设置属性,把原版 SGTool.exe 权限放开,设置完属性再次禁用其所有权限即可。

(5)对于 x64 位系统,还需要修改 64 位版本的 SogouPY.ime

对于 x64 系统,这个文件同时有 32 位和 64 位版本的存在。其中 64 位版位于:

c:\windows\system32\SogouPY.ime

对它的修改和替换,和前面的步骤相同。需要注意的是,用来确定对话框模板 ID 的文件地址的小程序(PeRcView)需要编译为 x64 位应用程序,以打开 x64 的 PE 文件。其他步骤都一样,这里就不赘述了。

你可能感兴趣的:(去除搜狗输入法弹窗骚扰的一个简易方法)