|
|
楼主 |
发表于 2006-10-26 07:50:20
|
显示全部楼层
|
5、插件管理专家别有私心 - t; I4 m9 Q, c9 m2 q* _
打开上网助手的插件管理专家,其中仅仅“虚心”地把搜索助手列了出来;但打开浏览器的加载项对话框,3721和上网助手植入的十几个加载项却赫然在目(图12)!别家的插件算插件,自己偷偷植入的众多玩艺一律不算插件,这是什么逻辑?!
3 ^0 ?% ^1 w/ |& _& Z4 U' n $ F7 s1 `2 Q( r, [- }
图 12 “插件管理专家”对自己植入的垃圾插件视而不见. K G+ m) \4 B0 O6 ^" o
6、把自己的“搜一搜”右键菜单视为系统默认菜单 6 P2 f5 t# c( P' c" p; L) x
再看看“恢复IE外观”中的“清理IE右键菜单”功能。清理后,报告“没有可清理的菜单!”
. M2 I$ v" I9 E3 u( k9 Z3 @但实际上,在浏览器中右击鼠标,“!搜一搜”的3721附加的菜单项已经如同系统默认菜单项那样被保存下来(图13)。令人不解的是,“!搜一搜”这种表达方式不知在中国语言学中算是一种什么手法? . |# R+ e) k9 P+ n: ], x

/ N3 q6 b5 F+ ~) G图 13 3721自动添加的右键菜单不算清理对象
, f3 p. @3 {; H7、自欺欺人的“清理IE工具条” * @/ d% D9 n8 y5 p+ G- b; H6 ~5 Y
试试“清理IE工具条”的效果如何。清理后,报告“没有可清理的工具条!”,但IE工具栏上被3721自动植入的那个带有扫把图标的工具条和其他几个按钮好好的毫发无损(图14)。难道它自己的这些就不属于系统之外的第三方工具条吗?工具栏按钮清理也是如此。 % m+ f% k& ? q. K! c R
5 g1 ~% p9 P3 A m" K" k( v
图 14 清理IE工具条结果
/ \2 H+ o/ e" i. Q& L5 ]9 i8、IE 工具栏“重置”功能不能重置3721植入的工具栏按钮 1 `- D+ x5 @) E- o6 L& C5 S
既然上网助手拒绝给我干活,那么就用IE本身的功能设置来恢复工具栏按钮吧。 $ z, @! e; E4 p/ m* S# c1 D
打开自定义工具栏对话框,点击“重置”,那些被强行植入的按钮闪动了一下,片刻又立即得到恢复(图15)。
+ }; [7 d8 ?& p" V F5 e' \系统的基本功能在3721的作用下已经部分失效!
9 @6 F5 m5 s) d! x
. z& c, L9 O9 o- m图 15 “重置”工具栏按钮后的效果
6 E( V; w1 u: B4 W9、对系统稳定性的影响 . M2 C! j: ^: K7 Q" f
在虚拟机环境下,直接在浏览器地址栏输入“合工大”进行搜索,前后测试6次,每次都是立即蓝屏(图16)。
) V: N6 o( D$ a7 b! U" P4 o! C虽然虚拟机环境与真实环境可能有一些差异,但虚拟机对内存要求较高,系统资源占用较大,据此我们不能确定在真实系统环境也是如此,但起码可以确定,搜索助手对系统资源的分配肯定存在某种负面影响(或者是存在某种BUG),在对资源需求较大时,会对系统产生不利影响。, j4 k5 h' V# v* Y. Z
. t$ n) R( J& Y* o" y
图 16 半个工作日的搜索测试中系统蓝屏6次
, e$ ^. Q8 c! T% H; J. u0 u" A三、3721对系统的写入情况剖析
3 h3 s/ X+ X3 a6 g/ C# V0 z- y* m根据网络实名网站自称的“详细技术原理”,我们看看真实情况是否如网站上所告知的那样。图17是其对用户告知的内容。在随后的检测项目中,我们看看它“详细”到什么程度,用户和知情权体现在什么地方。 7 q5 l3 _3 [/ {# V' D1 F

8 l6 f% E7 B( L7 q& w图 17 网络实名的“详细技术原理” 8 S4 V7 Q- ^: ?7 R6 R4 |
1、向系统植入的文件 2 d. r6 I# P. G7 i8 L' \4 K! u" T) _1 m
除了有专门的程序文件夹,3721还在WindowsDownloaded Program Files目录以隐藏的方式保存其文件以便快速修复;在系统驱动程序目录植入驱动程序文件并保证安全模式(即使你不上网!)也能够被加载并且不能被直接删除(图18、图19)。
# J h) C1 D7 i2 [, C4 R- E+ d5 m①安装3721后的文件植入情况: $ j/ @7 e% W% u2 E! @- b+ E: e
● WindowsDownloaded Program Files目录被植入37个文件1个文件夹;
! m/ g3 }" k) z' L/ C* j! R8 A● WindowsSystem32Drivers目录植入CnMinPK.sys驱动程序文件。 7 z o. n, O- w8 y/ j: n) D4 I
● Program Files目录植入目录名为3721,共含15个文件和1个文件夹。
2 T+ K: n& n8 |/ C9 B共计植入53个文件和2个子文件夹。
& O! C' e3 x# ?3 L5 i" X②安装上网助手后的文件植入情况:
# A0 H0 d. E/ G9 _8 ~( Q) d4 [● WindowsDownloaded Program Files目录被植入30个文件1个文件夹; ( W4 u. @* M) p
● WindowsSystem32Drivers目录植入CnMinPK.sys驱动程序文件。 ! n1 w$ Y9 u; L/ u( d' k
● Program Files目录植入目录名为3721,共含79个文件和7个文件夹。 0 L6 \: _0 \2 K1 s
● Program Files目录植入目录名为YDT,共含4个文件和1个文件夹。
0 S* t! M7 ]( _6 |共计植入114个文件和9个子文件夹。 5 S) v+ s& T, N5 G

9 s) o( R- G/ W5 T8 V图 18 以驱动方式植入系统,安全模式也能生效
/ `5 p) m/ @5 e- W% N) Z/ H+ @ " [( X& V0 u5 O# E+ a2 b
图 19 Windows资源管理器中无法查看的隐藏文件和目录
7 k7 [/ L' m. K- R% e& d- Q2、写入的注册表项目 # s4 T# A2 F7 F1 _8 ~
据安装前后的注册表导出比较后得出的不完全统计,系统注册表被写入的内容大致如下(因浏览网页等操作会导致动态修改,因此可能会有一些误差): ' s2 ]) C; p* N2 F3 c
安装3721后,注册表中被写入122个键项、408个键值; % ]7 B6 M& y C! ~. {7 p4 I
安装上网助手后,注册表中被写入251个键项、656个键值。
* B0 {# z6 x" S4 H5 r" \' X' j# k遗憾的是,按正确的方法卸载、重启后注册表项目仍然无法全部被清除!
$ r3 a: Y4 p/ Z w0 E3、多种途径实现的自动加载项 * i0 L- V2 T5 b( i' w" [# ?
3721声明以标准系统接口实现自动加载,而且将这些标准接口利用得淋漓尽致! . J9 y9 X+ f% w& Q, y: [$ k
⑴上网助手在注册表HLM下面的Run键项中添加helper.dll、YDTMain.exe、CnsMin三个自动加载模块,而且卸载、重启后仍然存在(图20);
# Y7 ]/ X+ ]$ Q1 o⑵通过驱动程序模式加载CnMinPK.sys模块,实现进程隐藏,并且通过系统本身的Msconfig无法检测; , y( j3 q7 h5 W& J- @
⑶通过其多个模块之间的相互修复和守护实现,实现交叉安装、修复、加载;
2 f$ @) C% q, {) l! E; i8 m⑷通过嵌入浏览器帮助对象,实现功能的自动加载; 6 D3 U% n) ?7 q7 c! w; Z: H
⑸通过各模块卸载对话框中的修复选项,诱导用户在卸载某个模块的同时,修复和自动加载另一些模块;
3 S' s& @( n# c( |6 `# m⑹通过捆绑到某些第三方安装程序,在安装过程中实现自动安装和自动加载。
! r0 ~7 `% {7 Z2 ~1 B
1 I4 e# C1 T) K) Q图 20 卸载后仍然自动重启的模块 . S. D' T7 Q8 W
4、自我守护的进程 5 K9 H% L4 k" D# g8 c
如图21,安装上网助手后,任务列表中会存在三个进程,其中以Rundll32.exe显示的两个进程可以实现自动交叉修复,即一个进程是另外一个进程的守护进程。因此,使用Windows任务管理器是无法顺利将它们从内存中关闭的,这点相信多数人深有体会!7 ^: ?4 ]8 q7 I8 ?5 f7 V& l
7 R9 u% ^& O% f; a: ?; I3 M* [
' M7 Y* v+ S$ m0 I) B2 {& ~
图 21 创建多个进程并且可自我守护
1 Y. s. C2 ]0 P! e2 X5、植入系统的浏览器加载项 - U& P) f5 D$ `; O) y
图22是上网助手自动植入系统中的8种浏览器加载项。用户的浏览器成为几大公司发财的财源基地。余下的就差没有拿着刀子上门直接抢钱了。
! j( Y7 R6 h. W/ ~8 H" N
! h G+ k1 r9 t5 f9 z图 22 一口气自动植入8种浏览器加载项
& k) k2 h" \% |* J. Q% y6、自动植入浏览器工具栏的多种无关按钮
, l6 M H$ L" J0 O呵呵,安装后,浏览器上什么Yahoo!等乱七八糟的按钮一股脑儿给你安装上了,甚至连资源管理器也没有放过(图23,够贴心的吧)。
& [8 i# t' q! j8 w l- `+ A! ]+ Z: [
图 23 资源管理器中被强行植入的按钮
1 q( ?4 ?- p4 T7、控制面板添加删除程序列表中的多余项目
8 {! J8 z1 u; R在未被明确告知的情况下,安装上网助手后,控制面板的添加删除程序列表中会额外加入两个程序项目(图24)。
7 b1 A- K# I0 ^, s
, x2 D4 i' Y0 T- `! F图 24 不知道什么时候被植入的额外两个模块
* U$ j4 G! O5 O* T+ Q' p3 _/ Z8、植入系统的系统服务表
. `* a1 d- q" A9 H4 T& [3 {使用IceSword这款安全工具检测系统服务描述表(SSDT),可以发现除Ntoskrnl.exe这个系统内核外,就是3721和上网助手的“CnsMinKP.sys”了。搞编程的人知道这做到了什么级别,普通网民反正“眼不见为净”。可见功夫真的下到了家了! ( x' r) N* V: C, ]% N$ s* y

* h) z# L4 x4 j图 25 通过任务管理器无法查看到的系统服务表
# Q9 B$ \+ X8 j" c6 e. [7 T. x9、自动创建的线程情况 7 X1 ^" [/ b% P3 f+ D
从图26可以看出,上网助手及其模块自动创建的线程数之多,在系统总体线程数的比例上是多得令人吃惊的!该图为未打开任何浏览器以及其他相关窗口情况下的线程创建情况(部分需滚动才能查看)。 * Y4 R# ]% a+ J* Q) m
; F7 ~' q1 c6 O
图 26 自动创建的线程列表 ' G0 B& i3 H9 a( \
10、后台运行的消息钩子
3 g3 R) {& H$ z+ I- d$ G2 [5 e有兴趣的人可以看看图27中的钩子类型,看看3721利用的大量钩子函数在干些什么。 % o, a0 G' L9 j
8 F0 g0 U5 x8 \. e# D
图 27 众多的消息钩子 7 Z" I& s( k0 Y Q/ D
11、植入浏览器右键菜单的“!搜一搜”菜单项 1 J3 e' W, J& m* ^) |
呵呵,浏览器右键菜单中被植入的“!搜一搜”是不是该倒过来从右向左读?这个世界的法则是不是也要倒过来解读(图28)?
* ~3 g/ v b, c1 B ) n; @$ ^4 u; F/ b
5 Q* f" X; Z2 p. @
图 28 浏览器右键菜单项 , w# {2 Z! i! V8 [, f7 u
12、上网助手Assistse.exe打开本地1028端口 , ]- e( `& `: C$ h2 e- Q+ s5 ]
如图29,上网助手Assistse.exe打开本地UDP 1028端口,作用不明。
5 I: T3 |+ J B" T4 ?4 y / b, r2 N5 p8 G
1 M+ L1 V/ L6 O$ p: W图 29 端口打开情况 4 T6 F. X& g( V5 w5 g- d
13、植入Internet选项设置 5 n+ P! e. W4 u# t; b
图31是植入到Internet选项的“高级”设置的内容。看看,还有“自动升级”功能呢,有什么新的手段或主意了,再在您的系统中试试?
! u' y: E' S% Q( k
" r+ V! A8 s( D, U8 q5 O图 31 Internet选项中被植入的内容 # ?' n" v' ^. X4 p; }) N# _
四、3721及上网助手卸载情况剖析
) Q e1 z# e2 s( v$ U- ~4 G有人在网卡撰文说3721现在可以通过其卸载程序干净地卸载了。事实情况真的是这样吗?请看—— . B& P% L0 J3 G$ t
1、“完全删除”和“完全卸载”的卸载承诺
: n) l& q! B! Q! z7 h! n如图32,无论3721网络实名还是上网助手,在卸载程序中都承诺“把上网助手从电脑中完全删除”和“完全卸载实名插件并关闭实名功能”。 3 x8 T1 W O- X+ B
. N' r" B6 {: |9 p* ]( _
图 32 卸载界面的承诺
6 b ] C8 e1 l2 b! G, x2、完全卸载不完全
2 @9 [4 j# C6 F2 ~$ _/ c网络实名卸载成功并重启后,在资源管理器中无法看到WindowsDownloaded Program Files文件夹中有任何文件(即使你将资源管理器设置为显示所有文件、显示系统文件)。但使用著名的Total Commander文件管理器,却发现有一个zsmod.dll的隐藏文件(图33)!如果是卸载上网助手,卸载成功并重启后,上述目录居然隐藏有30个文件1个文件夹(图34)! ) F. n6 q {, h
以zsmod.dll为关键字在注册表编辑器中搜索,可以发现这个文件并非是一个被“遗忘”的死文件,而是有相应的注册表键值(图35)! 2 b6 \, o) o* L% y/ P
卸载上网助手成功并重启后,检测BHO(浏览器帮助对象),发现系统中仍然保留有YDT.DLL和CnsHook.dll这两个BHO对象(图36)! 6 z1 F1 o+ j3 w3 h
卸载上网助手成功并重启后,检测自动加载项目,发现仍然存在helper.dll、YDTMain.exe、CnsMin三个自动加载的程序项目(图37)! ) D9 j e- e7 @2 Y1 A, D& p {6 T$ A
再检测系统已经加载的内核模块,发现以驱动形式加载的CnsMinKP.sys仍然被成功加载(图38)!以CnsMinKP.sys在注册表编辑器中搜索,卸载成功并重启后注册表中仍然保留CnsMinKP.sys的3处隐藏服务键值(图39),使得卸载操作完全是一个骗局,其基本功能根本没有受到影响,至多是那个一般情况下显示在系统托盘的可以向用户提供“服务”的小图标不见了!当然,系统Drivers目录中的CnsMinKP.sys文件依然完好,没有受到任何破坏! ) j5 |, e5 L6 Z2 d' G
看看系统进程如何。如图40,YDTMain.exe、相互守护的Rundll32.exe共3个进程仍然静静地在那儿! - Y- E3 u9 I& ^' @" G
由此可见,上述就是所谓的“把上网助手从电脑中完全删除”的真相!
- E" h& i% I; h' p, e+ m真的想把它们彻底清除吗?可以,手工在添加删除程序列表中把另外未被告知的两个3721强行安装的程序一一卸载(卸载时注意看清楚相关选项!否则可能又相互修复),此时绝大多数文件和注册表被清除。但WindowsDownloaded Program Files文件夹中zsmod.dll的隐藏文件以及相关的注册表键值却永远不会被清除! 5 r/ A# w7 N, w

0 |' _% v6 {' s% S& I: }图 33 3721卸载重启后资源管理器无法看到的隐藏文件
$ f0 A: |: y% F6 E5 \ + [1 c0 k* T* v& J6 g2 P1 V
图 34 上网助手卸载重启后系统目录中隐藏的大量文件(Windows资源管理器无法以任何方式查看到,Total Commander可显示)
8 _; A" d+ u' U# }' Y ] / s( t& C: e+ B1 a8 f
图 35 卸载重启后注册表中的保留键值
9 D/ V# m* X# g9 u$ p& L 6 w7 s! u+ F" w( c9 w7 _
图 36 卸载重启后仍然被保留的浏览器帮助对象模块 : Q( U `% N) D5 x& X& N
; ~2 ]1 V- j) u# j8 L' o
图 37 卸载重启后仍然被保留的自动加载项目 0 Y; S$ T5 [( v9 H2 S& v: x

' O O, j# W+ N8 M0 z图 38 卸载重启后仍然以驱动模式加载的内核模块 9 R# D h1 ~1 [; R0 i
/ q) m% T [& P5 N; D6 _7 ?
图 39 卸载重启后注册表中仍然保留的3处隐藏服务键值 7 ]0 I2 |# P- g, s' s
3 l6 c H( D2 `3 K o
图 40 上网助手卸载重启后仍然在运行的后台进程和仍然存在的浏览器工具栏按钮 2 H0 u3 c4 r/ Y( q( b
3、额外安装的两个模块必须另行卸载 6 A: N- U$ t2 `" p4 g }/ A X
图43就是安装时未被明确告知就强行安装的、需要我们手工卸载的垃圾程序。
: R( Q3 L# q1 O4 l" _% P
6 y# Z; J& e+ L图 43 额外安装的两个模块必须手工卸载 9 t" j+ X% X& [# H3 z8 p) A' N
4、卸载过程中仍然试图交叉修复
' ?7 c8 |9 W0 _6 w- [卸载这些额外程序模块的过程中,存在默认被选中的以“卸载”二字开头的一个选项: , v8 z+ A0 O( G. F4 W3 i9 W; M0 x9 `4 @
“卸载上网助手-地址栏搜索后保留上网助手等按钮”
- |7 M0 C7 b0 O/ M, g如果你操作中只看了前面半句,以为是选择了“卸载”它们,那你就错了!: N* }$ Y: x+ P9 B5 j+ v' a
由此可见3721的对用户的心理和电脑使用习惯研究得非常透彻,能够利用的都充分利用了!
& U, b/ q9 t& }! \1 H 6 w0 c; c5 b- l
图 44 卸载过程中仍然试图交叉修复 |
|