断网与黑客无关 我来抖一抖暴风那点见不得人的猫腻

这几天看新闻,发现暴风七搞八搞,居然包装成了5.19断网的受害者,听说实际上是暴风被ZF封杀,在新版本发布前,不准提供旧版本的下载,结果搞成了什么“召回”。然后就是一帮弱智媒体跟着瞎起哄,看得我牙都笑掉了。哄谁哪?圈里谁不知道暴风是怎么回事?说白了就是一款高水平的流氓软件,或者干脆叫间谍软件。稍微动动脑子就明白了,如果不是上亿用户的暴风本身有什么猫腻,几个小黑客怎么可能搞出那么大动静?

 

前几天翘班在家,闲着没事把GF笔记本上的暴风逆向了一下,结果发现了一个名叫stormliv的后台进程,每20秒自动轮询一次暴风的广告服务器,说白了就是暴风让它的1.2亿用户的电脑自动去点它的广告,用虚假点击骗广告主的钱,但是技艺不精,结果搞成了一个死循环,大量地占用dns资源,即便没有这次黑客攻击,酿成大祸也是迟早的事。

 

更蹊跷的是,我又测了一个519断网后,暴风25号发的一个新版本,这个版本里,导致断网的那些猫腻居然还都在!stormliv的死循环轮询机制根本没去掉,只是把轮询时间改得间隔长了一点,用了一些更复杂更隐蔽的逻辑,仍然是在在后台偷偷运行,而且删除后还会重新生成,服务删除或禁止后也会复活,普通人根本清不掉。

 

最cao蛋的是这软件在开机时,会通过服务项强行自启动,一般人根本关不掉这个开机启动项,占用内存不说,关键是把开机速度搞得巨慢(我把暴风卸了后,感觉本本的速度有明显提升)。就算把软件整个关掉了,还会驻留在内存里后台运行,卸也很难卸干净,另外还会干扰其他视频播放软件关联视频文件,这不是流氓是什么?

 

在坛子里混这么多年,从来都是潜水,这次是在受不了了,赤膊上阵,发个处女贴,说得不对的,希望大家包涵。

 

先分析一下暴风5月8日版本。

分析目标:stormliv.exe

一.静态特征:

版本:3.9.5.15

数字签名:有 [北京暴风网际科技有限公司 ]

签名时间:2009年5月8日 11:06:16

大小: 596,064 字节

编译日期:20009年5月8日 03:05:38(GMT)

CheckSum:A1192

编译工具: Mircosoft Visual C++ 6.0

加壳:无

运行界面:有,如图1

 

 

 

 

二.动态特征

 

1.启动和保护:

stormlive.exe通过服务实现开机自启动,而且此服务不能被删除、禁用、停止,如果删除或停用或禁止,下次再次运行暴风影音主程序storm.exe 会自动恢复。

 

2.端口侦听:

 

此进程被用于暴风影音多进程通讯,使用开启本地端口侦听,UDP协议实现。

监听UDP 1025 5357等端口,实现Stline(暴风盒子) ,stormlive和storm.exe间通讯

 

3.用户态钩子

stormlive.exe启动后,其meedb.dll会HOOK DeviceIoControl ,RegQueryValueA,RegQueryValueExW,CoCreateInstance 等函数

 

主要是用于过滤DVD区码控制(IOCTL_DVD_GET_REGION )和一些COM接口控制。

 

三.stormlive主要功能分析:

 

1.暴风影音自动升级功能

 

stormlive会自动连接 hxxp://download.baofeng.com/stormII/storm_ctrl.ini 文件

这是一个普通的升级配置文件。

 

目前内容如下,可以看到有最新版本、升级URL、是否强制升级、是否提示用户、提示用户信息等配置内容

 

==========================================================================

 

[SERVER]

version=3.09.06.10

url=

force=0

alert=0

info="暴风影音有新版/n/n,已更新至3.09.06.10"

[EXPERT]

lib=

url=

 

=========================================================================

 

升级部分逆向代码:如图2

 

 

2.信息统计:

 

目前发现可能连接下面这些地址来获取信息、或者回传统计,没发现涉及用户隐私或者系统配置信息等。

 

 

hxxp://active.baofeng.com/active2?pid=%d&id=%d&uid=%s&t=%d&v=%s&i

 

用户活动信息,包括安装日期,UID,ID等信息。

 

逆向代码:如图3

 

 

hxxp://areacode.baofeng.com:8081/adp/custom/;action=get_city_code

 

这个似乎是用来查询当前城市代码的,可能广告弹出需要。

 

hxxp://bukebo.baofeng.com/upload/talks.do?talkMd5=%s&talkVersion=

 

hxxp://midInfo.baofeng.com/mid/downSucc.html?ver=%s&pl_id=%s

 

MID统计信息,上传版本和MID

 

hxxp://midsd.baofeng.com/p2p/seed?name=

 

获取P2P种子信息,stormlive.exe似乎在升级时使用了P2P技术。

 

3.不可播放文件回传。如图4

 

 

 

当暴风影音发现不可播放文件时,会通过stormlive.exe,连接:hxxp://noplay.baofeng.com:9000/upload/upload.do来上传这个文件的部分片段。

 

这也是一个有界面的功能,只有用户手动选择不再自动提示,才会后台静默上传。

 

逆向代码如下:如图5

 

 

4.下载广告

 

stormlive.exe会连接download.baofeng.com,试图下载一个exmat.ini,其中包含了广告信息。

 

广告链接都是一个个ZIP压缩包,但其中未包含可执行程序。

 

逆向代码:如图6

 

 

 

其中在下载广告时,可能是为了绕过某些安全软件或anti-ad软件对其的封锁,没有采用HOSTS文件中的配置,而是自行获取download.baofeng.com的域名,而且会在一个死循环中每隔20000 毫秒(20秒)发送一次DNS查询包。

 

这段代码可能是导致此次断网门的罪魁祸首。

 

逆向代码如下:如图7

 

 

 

可以看到,如果对download.baofeng.com的gethostbyname调用失败,会每隔20秒重新获取一次,直到获取成功为止。

 

这样每小时就会发送数百个查询包,乘上暴风的用户量,数量之大非常恐怖。

 

 

四.清除方法

 

暴风影音新版共有3个没必要存在的进程:

1.stormpop.exe 用于弹出广告。

2.stline.exe 暴风盒子,也是广告和推荐等。

3.stormlive.exe 前述的升级、回传客户端。

 

其中前两个直接删除即可清除掉。

 

最后一个删除后还会重新生成,服务删除或禁止后也会复活。

 

有一个简单的方法可以清除这个程序,通过定位此文件的PE头,将IMAGE_NT_HEADERS->SubSystem改为IMAGE_SUBSYSTEM_NATIVE

即将这个程序修改为一个驱动/NATIVE程序,由于services.exe无法启动此程序,这个升级程序就无法继续工作了,同时也不会复活或被重生。

 

 

再分析一下暴风影音的最新版本

签名日期:2009年5月25日 22:11:57

版本:3.9.5.29

 

经过分析可以发现,5月8日签名版本(版本号:3.9.5.15)的相应功能都仍存在。

区别在于:其死循环获取download.baofeng.com域名的代码(ForeverLoopGetHost)改为了每隔30分钟获取一次。

而且在每次获取时有一些比较复杂的逻辑,而不是单纯地调用系统API gethostbyname来获取,可能是用于流量控制。

发表于 @ 2009年06月09日 21:35:00|评论(11)|编辑|举报|收藏

 | ccitt 发表于2009年6月10日 2:03:43  IP:举报
对你用的反汇编工具很有兴趣,这是什么啊?tfzxyinhao 发表于2009年6月10日 2:34:36  IP:举报
第一篇博文 ? 这个不是IDA吗 怎么你得到的代码这么好 近似C语言了 不知道是什么版本的flagger 发表于2009年6月10日 8:26:43  IP:举报
支持 一个 我加不了你为好友啊windywany 发表于2009年6

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/coachman/archive/2009/06/09/4255825.aspx

posted @ 2009-06-11 01:04  y0umer  阅读(154)  评论(0编辑  收藏  举报