看看CNNIC中文官方上网都干了些什么

2024-05-01 15:08

本文主要是介绍看看CNNIC中文官方上网都干了些什么,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

<!-- Search Google -->
Google 输入您的搜索字词 提交搜索表单
<!-- Search Google -->

CNNIC发布了中文官方上网软件,说这只是一款浏览器辅助软件,但真的是这样吗?看完本文你就知道你所安装的这个“辅助软件”到底是个什么货色了。

先来看看它的安装和卸载吧,等会专门分析安装过程,先说一些卸载吧。卸载中文官方上网需要填一个随即生成的确认码,这是为了防止竞争同行或类似360安全助手之类的软件自动删除自己,然后执行正常的卸载程序。但是问题是卸载干净了吗?答案是没有,有一个残留的驱动程序仍然驻留在你的系统中,目的是干扰同行或类似360安全助手之类的软件正常运行,这个逻辑很简单,不用我?别的你也别想用的好。证据:主驱动程序cdnprot.sys不能删除,有些安全程序能够删除cdnprot.sys,但是CNNIC可没有那么简单,他还有一个影子驱动程序,名字是随机生成的,可能是类似sdgwuwks.sys之类的名字,这些就残留在你的系统中了,请神容易送神难。CNNIC在安装的时候会释放一个驱动程序,这是一个临时的,安装完成后就会删除,这个驱动程序的目的是检测别的软件是否有破坏自己安装的行为,保证安装程序能够正常进行,同时,安装程序还有反调试的手段,当检测到自己处于被调试的状态时就主动退出,以保护关键代码的安全,做成这样大概也是同行竞争的结果吧,只是苦了用户,你们之间互相残杀,造成用户的系统不稳定,这个责任是不是到了应该用法律手段解决的时候了?

一个浏览器辅助软件至于要用到驱动程序那一级吗?如果仅仅是作个浏览器增强功能当然用不到,但是如果做别的流氓行为就需要啦。现在看看cdnprot.sys驱动程序都干了些什么,首先它Hook了几个系统关键函数,关于这一点我要特别说明一点,很多病毒都是采用这种技术,这些被称作rootkit。它和一般的API hook不太一样,它通过修改ntoskrnl.exe的System Services Descriptor Table,直接hook ntdll.dll中的内核函数,这样相关的用户态API最终都会调到这些底层API,通过hook相关的API可以分析用户的行为,同时干扰同行软件的运行。比如本文提到的中文上网,它就hook了ZwTerminateProcess,这使的别的程序(甚至是通过windows的进程管理器)都无法删除CNNIC的 cdnup.exe进程。因为所有的中止进程都调用的是TerminateProcess API,这最终调用的是ZwTerminateProcess,CNNIC的Hooker函数判断参数,发现是中止自己的程序时就直接返回错误,这样就永远无法中止cdnup.exe。中文上网还Hook了ZwDeleteValueKey,目的是相同的,所有注册表删除操作都要经过Hooker的过滤,发现是删除自己的东西的时候就直接返回错误。使用rootkit Hooker函数对系统安全构成了威胁,不仅影响系统的稳定性,严重的还会通过Hooker收集用户的信息,造成信息安全泄漏。对CNNIC的hooker还要进一步分析才能判定它到底有什么危害,不过有一点可以证明的是,CNNIC的中文上网Hooker了ZwSetSecurityObject,并严重干扰了这个函数的正常功能,这是一个给用户帐号赋予权限的函数,CNNIC的中文上网为了防止用户使用SDTrestore工具恢复系统的SSDT(System Services Descriptor Table),所以hooker了这个函数,使得SDTrestore工具无法获得权限正常运行,但是这种行为已经影响到了依赖与这个函数的软件的运行,SDTrestore就是受害者之一。顺便说一下,cdnup.exe一开始是正常的,可以中止,而且对用户没有任何功能(只是为了检查升级,这很无聊,我需要检查升级的时候我会运行你的,用不找你这么热心一直运行吧?),只是为了监控它的驱动程序是否受到了别的软件的进攻,如果发现有别的软件“恶意”删除自己,他就会处于一种癫狂状态,此时无法中止也不能从注册表中删除相关的启动项,这就算赖上你了。

中文上网的驱动程序不是只安装一个,而是一次装三个,目的是为了互相监视,互相保护,它倒是想的周到,只是用户倒霉了,占用系统资源还不说,什么时候来个蓝屏也不知道是怎么回事。

CNNIC的中文上网还会在Winsock2的SPI接口上做手脚,先来介绍一下SPI。Winsock2提供了LSP(Layer Service Provider: 层服务提供者)接口标准SPI,允许应用软件开发商对Winsock进行扩展,对传输层的TCP/UDP等网络协议进行专门的数据流控制(如加密/解密、监控)和错误控制等。各层LSP实现不同开发商对Winsock DLL的扩展,以支持不同目的的网络数据流控制操作。而基本服务提供者实现最基本的TCP 协议堆栈的功能。明白了吧,这其实就是一个过滤器,给使用者提供了发现和使用任意数量的底层传输协议所提供的通信能力,中文上网用它来做一些URL重定向,其它还做了什么就不得而知了。很多广告弹出者就是利用了这一点,如果你上网时经常弹出一些广告窗口,又在注册表中找不到线索,那不妨研究一下你的机器上是否被装了SPI。


安装程序还会暗自生成一个BHO,这个是捆绑“销售”,不要也得要,这个BHO是随机命名的,被安置在windows目录下的/Downloaded Program Files中,这一招够歹毒,因为在资源管理器中查看这个目录下是看不到文件的,很容易被忽略,不过在dos窗口中它就原形毕露。一个浏览器助手需要被装到这个地方,足以说明这不是什么好鸟。顺便说一下,这个BHO做的也是很歹毒的,用了壳,还对内部代码加密了,每次生成这个文件的时候都会修改文件的大小,同时还修改相应的注册GUID和CLSID,这使得一些靠判断注册表中GUID和CLSID来免疫和删除插件的一些小工具变得无效。删除方式很简单,将这个目录中的dll全部删除就行了。我个人感觉这一招最令人无法接受,这种偷偷摸摸的行为应该受到鄙视。

现在你了解了中文官方上网到底是什么货色了吧,这到底是一个应用程序还是病毒?我想用流氓软件来形容它最恰当。

这篇关于看看CNNIC中文官方上网都干了些什么的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/951992

相关文章

SQL Server安装时候没有中文选项的解决方法

《SQLServer安装时候没有中文选项的解决方法》用户安装SQLServer时界面全英文,无中文选项,通过修改安装设置中的国家或地区为中文中国,重启安装程序后界面恢复中文,解决了问题,对SQLSe... 你是不是在安装SQL Server时候发现安装界面和别人不同,并且无论如何都没有中文选项?这个问题也

Python实现中文文本处理与分析程序的示例详解

《Python实现中文文本处理与分析程序的示例详解》在当今信息爆炸的时代,文本数据的处理与分析成为了数据科学领域的重要课题,本文将使用Python开发一款基于Python的中文文本处理与分析程序,希望... 目录一、程序概述二、主要功能解析2.1 文件操作2.2 基础分析2.3 高级分析2.4 可视化2.5

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

RedisTemplate默认序列化方式显示中文乱码的解决

《RedisTemplate默认序列化方式显示中文乱码的解决》本文主要介绍了SpringDataRedis默认使用JdkSerializationRedisSerializer导致数据乱码,文中通过示... 目录1. 问题原因2. 解决方案3. 配置类示例4. 配置说明5. 使用示例6. 验证存储结果7.

ubuntu系统使用官方操作命令升级Dify指南

《ubuntu系统使用官方操作命令升级Dify指南》Dify支持自动化执行、日志记录和结果管理,适用于数据处理、模型训练和部署等场景,今天我们就来看看ubuntu系统中使用官方操作命令升级Dify的方... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。

一文教你解决Python不支持中文路径的问题

《一文教你解决Python不支持中文路径的问题》Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的... 目录问题背景解决方案1. 设置正确的文件编码2. 使用pathlib模块3. 转换路径为Unicod

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

Java下载文件中文文件名乱码的解决方案(文件名包含很多%)

《Java下载文件中文文件名乱码的解决方案(文件名包含很多%)》Java下载文件时,文件名中文乱码问题通常是由于编码不正确导致的,使用`URLEncoder.encode(filepath,UTF-8... 目录Java下载文件中文文件名乱码问题一般情况下,大家都是这样为了解决这个问题最终解决总结Java下

Mybatis官方生成器的使用方式

《Mybatis官方生成器的使用方式》本文详细介绍了MyBatisGenerator(MBG)的使用方法,通过实际代码示例展示了如何配置Maven插件来自动化生成MyBatis项目所需的实体类、Map... 目录1. MyBATis Generator 简介2. MyBatis Generator 的功能3

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英