1.2、推广模块分析检测并规避杀毒软件:借助函数OpenMutexW 与 Process32NextW 检测本计算机中是否存在360或火绒的互斥体、进程名,若不存在则继续推广。
检测互斥体与进程名:
检测相应浏览器是否存在:以 Chrome 浏览器为例,将依次检测多个路径下的主程序 chrome.exe 是否存在,检测配置文件 Secure Preferences 和 Preferences 是否存在,注册表中是否有 Google Chrome 等方式。
检测相应进程是否存在:以 Chrome 浏览器为例,检测 chrome.exe 进程是否存在,仅当该进程不存在时才会进行修改操作。这是由于在 chrome.exe 处于开启状态时对配置文件进行修改,修改内容不会被保存。原因在于,关闭 chrome.exe 进程时,系统会将配置数据重新写入配置文件,进而导致配置被重置。
修改默认搜索引擎:
通过写入 Preferences 与 Secure Preferences 配置文件的方式将 template_url_data 中 url 设置为 https://baidu.wenxin9.com/?word={searchTerms}&type=0002&ie={inputEncoding}。之后用户再次搜索内容时先跳转到 https://baidu.wenxin9.com/?word=搜索内容&type=0002&ie=UTF-8,最终跳转至 www.baidu.com/s?tn=75144485_10_dg这类带有来源标识的链接并从中获利。
检测与修改配置:
修改的内容:
修改后表现:
macs和super_mac 配置项的修改原因与逻辑:mac值是为验证时所用,一旦配置的mac 值与写入的 mac值不一致,则会重置配置文件。
1. 计算 Unicode 编码的安全标识符(SID)的 SHA1 哈希值,取名为 SID_SHA1。
2. 利用 GetSystemDirectoryW 函数,获取系统路径并传递参数于 GetVolumeInformationW 函数中,获取卷序列号(VolumeSerialNumber),取名为 VOL_ID。
3. 计算 SID_SHA1 + VOLID 的 CRC8校验码,以 {SID_SHA1}{VOL_ID}{CRC8} 的形式组合成 19字节的机器码,取名为 MACHINE_ID。
4. 以 {MACHINE_ID}{字段路径}{字段值} 的形式组合并计算其 HMAC-SHA256 哈希值,使用的密钥为 e748f336d85ea5f9dcdf25d8f347a65b4cdf667600f02df6724a2af18a212d26b788a25086910cf3a90313696871f3dc05823730c91df8ba5c4fd9c884b505a8,该密钥为固定值。
5. 最终计算出来的哈希值就是 macs 中的多个字段或 super_mac 字段的值。
哈希值计算动态调试截图和源码:
新版推广模块功能区别:旧版本推广模块仅具备修改默认搜索引擎这一功能。通过静态分析可知,虽存在修改主页的代码,但并未调用。与之不同的是,新版本推广模块会调用修改主页的函数。此时,若打开 Chrome 浏览器,将会跳转至 page.wenxin9.com,随后再跳转至导航页。在导航页内点击百度链接,链接均带有来源标识参数。
新版推广模块多出来的功能:
跳转至导航页页面:
1.3、其他推广搜狗输入法还有其他很多推广手段,这里只提及较打扰使用体验的桌面右下角弹窗。
弹窗推广弹窗初期:搜狗输入法的弹窗是系统弹窗,该弹窗是通过搜狗输入法组件 biz_helper.exe 程序传递参数type=systoast 启动以试图弹窗。弹窗初期可以通过点击弹窗中的“…”选择《关闭搜狗输入法的所有通知》或《转到通知设置》进入系统通知设置中关闭搜狗输入法弹窗通知,从而关闭弹窗。
弹窗设置变灰或消失:但用户反馈该方法只能满足初期的诉求,一段时间后发现弹窗中“…”后两个按钮都变成灰色,导致进入系统通知设置,也无法关闭搜狗输入法相关选项。
隐藏通知设置中搜狗输入法项:
隐藏原理:通过设置搜狗输入法注册表HKEY_CLASSES_ROOT\AppUserModelId\Sogou.Ime.SysToast.Biz 项中 ShowInSettings 键值为 0 的方式,达成按钮呈灰色不可点击且在通知设置中不显示的效果。
设置隐藏:
搜狗输入法设置中取消勾选:用户发现通过搜狗输入法设置中取消勾选《桌面右下角推荐》选项,想以此操作来消灭弹窗。然而一部分用户又发现该《桌面右下角推荐》选项也消失了,但在分析过程中并未成功复现,估测该行为可能是通过云控下发时针对部分目标用户精准投放所导致。
网上用户吐槽时的拍照与截图:
弹窗开关:至此可以统计出避免弹窗的方法总共有以下三种。
1. 全局通知开关:Windows系统自带设置中全局通知开关,将开关数据存储于注册表HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\PushNotifications 项 ToastEnabled 键值中。
2. 局部搜狗输入法通知开关:系统自带设置中局部通知开关,将开关数据存储于注册表HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Notifications\Settings\Sogou.Ime.SysToast.Biz 项 Enabled 键值中。
3. 搜狗输入法自带开关:搜狗输入法设置中《桌面右下角推荐》选项,该选项数据将会存储于注册表 HKEY_CURRENT_USER\SOFTWARE\SogouInput.store.user 项 systoast_enable 键值中。
三种开关相关注册表键值:
云控配置忽略开关:然而发现搜狗输入法会根据云控下发的配置(systoast_general_config_1)忽略全局通知开关(ignore_sglb_switch)、局部搜狗通知开关(ignore_sys_switch)、搜狗输入法设置开关(ignore_ime_switch)等,并无视用户所配置的开关,其中实测发现若关闭系统中开关,则无法弹出窗口。
另外,分析时获取到的云控配置中并未包含 ignore_ime_switch 字段,意味着当前云控配置下搜狗输入法提供的弹窗开关是有效的。
云控配置忽略开关:
建议:在使用过程中,若需关闭弹窗,可采用以下方法。这些方法大多源自网络上受弹窗困扰的用户。不过由于不同时期、不同用户画像等云控配置存在差异或其他因素,可能导致关闭弹窗的操作无法正常生效。
1. 可关闭全局系统通知开关。若不想全局关闭,可通过将注册表值 ShowInSettings 修改为 1,以显示搜狗输入法通知选项,随后进行关闭操作。
2. 若上述方法无效,可关闭设置中的《桌面右下角推荐》。若无法看到《桌面右下角推荐》,需先点击搜狗输入法的“帮助反馈”,找到“广告与搜索候选”,进入后查看关闭方法。之后,再次打开搜狗设置,点击“高级”,将页面拉至最下方,此时“桌面右下角推荐”的关闭选项才会出现。(此方案源自 B 站某用户评论)
2、附录
HASH: