这几天看新闻,发现暴风七搞八搞,居然包装成了5.19断网的受害者,听说实际上是暴风被禁止,在新版本发布前,不准提供旧版本的下载,结果搞成了什么“召回”。然后就是一帮弱智媒体跟着瞎起哄,看得我牙都笑掉了。哄谁哪?圈里谁不知道暴风是怎么回事?说白了就是一款高水平的流氓软件,或者干脆叫间谍软件。稍微动动脑子就明白了,如果不是上亿用户的暴风本身有什么猫腻,几个小黑客怎么可能搞出那么大动静?
前几天翘班在家,闲着没事把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接口控制。#p#
三.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秒重新获取一次,直到获取成功为止。
这样每小时就会发送数百个查询包,乘上暴风的用户量,数量之大非常恐怖。#p#
四.清除方法
暴风影音新版共有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来获取,可能是用于流量控制。
【编辑推荐】