Alexa工具栏使用ToolbarBands和BrowserHelpObject技术嵌入IE浏览器。
AlexaToolbar可以获得当前浏览器的IWebBrowser2接口,通过这个接口就可以对浏览器为所欲为了。不过AlexaToolbar的实现十分奇怪:它的界面和主程序是用HTML和javascript实现的,这就是大家经常抱怨使用AlexaToolbar后导致运行变慢的原因。而且AlexaToolbar中的javascript有许多冗余代码,且有多处的资源泄漏,当用一个IE窗口长时间浏览网页时会消耗大量的系统资源,建议安装AlexaToolbar的IE用户在一个窗口长时间运行后,关闭再重新运行。
前面说的那些HTML和javascript代码是以资源的形式存在于alxres.dll文件中的,AlexaToolbar的界面其实就是一个IE窗口,只不过它屏蔽了右键,这个IE窗口通过res://alxres.dll/...来加载HTML页面和脚本的。也许你会自作聪明用一些PE文件资源修改工具来修改alxres.dll,以实现修改alexatoobar的代码。不过AlexaToolbar的设计者早就想到这一点,他们通过对AlxRes.dll进行校验和计算来拒绝加载修改过的Alxres.dll(不过很奇怪,他们为什么不通过加壳的方式来防止修改呢?),这一功能由AlxTB1.dll导出的ChecksumResources函数实现的,AlxRes.dll在加载的过程中会调用这一函数对自己进行校验。****方法很简单(下面方法仅对7.0.1.52.1201版本有效,其他版本没有测试):用16进制编辑器,如:WinHex等,打开alxres.dll文件,将文件偏移0x170f处的2个字节改为0x90就行了。
如果你想了解AlexaToolbar的运行流程,可以修改“res://AlxRes.dll/CHTML/index.html”的231行,将“varg_bDebug=false;”改成“varg_bDebug=true;”就可以了。现在IE加载完alexatoolbar后,会打开一个新的弹出窗口来输出alexatoolbar的调试信息。
现在你可以随心所欲地修改alexatoolbar了,加入后门啦,写入作弊代码啦都可以,不过我还是对前者比较感兴趣。
新版本的AlexaToolbar****方法
国庆节后,AlexaToolbar更新了版本。
以下是关于新版本7.0.1.52.1202的****方法:
将AlexaRes.dll文件偏移0x17F6处开始的两个字节0x1175改为0x9090
你可以通过各种16进制编辑器来修改,显示的应该是7511,改为9090。
修改AlexaToolbar造成的任何结果与我无关啊
AlexaToolbar内部揭密
关于Alexa排名的作弊方法网上有介绍很多种,不过都是没有用的,至少现在已经没有用了。
10月6日后,Alexa排名规则有了重大的改变,而且一直在变,所以现在很多网站的排名都不稳定(包括作弊的)。而我今天揭密的内容用来作弊的话已经显得不够了。
AlexaToolbar的大量代码是用HTML和javascript来实现的,资源泄漏问题严重啊,真不知道它的设计者是怎么想的。AlexaToolbar的程序实现原理在我以前的文章中也多多少少提到过,所以今天就不讲了。今天来讲一讲AlexaToolbar发送的HTTP请求格式。
下面是AlexaToolbar发送的GET请求部分:
GET/data/ezdy01DOo100QI?cli=10&dat=snba&ver=7.0&cdt=alx_vw%3D20%26wid%3D16865%26act%3D00000000000%26ss%3D1024x768%26bw%3D775%26t%3D0%26ttl%3D1125%26vis%3D1%26rq%3D2&url=http://20cn.net/~tabris17/HTTP/1.1
将URL部分解码后得到:
/data/ezdy01DOo100QI?cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&wid=16865&act=00000000000&ss=1024x768&bw=775&t=0&ttl=1125&vis=1&rq=2&url=http://20cn.net/~tabris17/
其中ezdy01DOo100QI是aid。
cli=10&dat=snba&ver=7.0&cdt=alx_vw=20&这部分是固定值。
wid是个随机数。
act数据包含了AlexaToobar功能的被使用情况。
ss很明显是屏幕分辨率了。
bw是IE窗口的宽度。
t取值是0或1,和当前IE的window对象还有referrer有关。
ttl是当前页面打开速度,和SiteStats中的Speed有关。
vis表明IE是否显示工具条。
rq是对象计数器。
大家可以看到,URL部分没有什么奥妙之处,很容易伪造。以前要作弊的话只要大量伪造HTTP请求,不停发送就可以了,现在Alexa通过改进排名算法,杜绝了这种作弊方法。
奥妙之处在于Cookie部分,那里面保存了一些你的浏览隐私,所以Alexa把这部分数据加密了,通过一种类似于PGP的加密方法,你可以在AlexaToolbar的代码中找到这个加密用的公钥d9adyz93472kb63z521t6e80wqpi56znb16fya6im3dr3xwe(好长啊,看起来很难****的样子)。密钥只有Alexa自己有啊,郁闷!
Alexa作弊大解密
1、Alexa是通过什么来计算流量的?
其实在Alexa的网站上已经说了很清楚了,Alexa通过安装AlexaToolbar的IE用户的反馈信息来进行统计的。并非有些人所说:Alexa会计算所有穿梭于Internet上的WEB流量,要做到这一点显然是不可能的。
2、AlexaToolbar的工作原理是怎样的?
AlexaToolbar是通过BHO技术和ToolbarBands技术来监视IE行为的,IE浏览器的地址栏的每一次变化都逃不过Alexa的法眼。不过处于安全性考虑,AlexaToolbar不会统计用户的HTTPS协议的流量。AlexaToolbar其实就是向http://data.alexa.com发送HTTP请求来发出用户浏览信息的,这个请求的格式我已经****了。
3、Alexa排名真的可以作弊吗?
绝对可以。但是现在你能在网上搜索到的作弊方法和作弊工具都是无效的。比如有一种方法说能通过MYIE这样的浏览器来刷排名,显然此文的作者并不懂AlexaToolbar的工作原理,MYIE是不会加载AlexaToolbar的。AlexaBooster也不行,因为它忽视了aid的生成算法,以及cookie的作用。
4、Alexa会识别作弊行为吗?
Alexa有一套算法来判断收到的信息是否有伪造的嫌疑。
5、Alexa会像google一样对作弊行为进行惩罚吗?
Alexa不像google,它的信息来源AlexaToolbar的用户,而非网站自身,这些数据的真实性是无法保证的。仅凭这些不可靠的数据而对一个网站进行惩罚是不可能的,因为很有可能有人恶意伪造某个站点的虚假信息来使Alexa惩罚该网站。但是Alexa会忽略有作弊嫌疑的IP发出的数据。
6、网页的自动跳转和自动刷新能提高Alexa排名吗?
你可以在Alexa的网站上找到这么一句话:“Multiplepageviewsofthesamepagemadebythesameuseronthesamedayarecountedonlyonce.”。所以通过刷新页面来提高访问量是不可行的。而所谓的自动跳转就是:在用户点击一个连接后,先跳转到一个假页面,这个假页面会在1秒或几秒后跳转到真正的目标页面。这种方法看似可行,但是必须考虑加载AlexaToolbar所需的时间,太短的话AlexaToolbar是不会发送信息的,改善的方法就是不要在新窗口中打开连接,这样能避免新的IE窗口因加载AlexaToolbar所耗费的时间。
Alexa是否真的针对作弊者而改变了排名规则?
经过10.1的7天漫漫长假,发现:Alexa网站已经从6号开始有所变动,很多人猜测这是不是为了针对作弊者而使Alexa改变了排名规则?
我到Alexa网站上看了看,除了以前那个TrafficRank的图表界面有所变动外,好像找不出其他的迹象了。
很多人认为近几天,一些中国门户网站的排名纷纷开始下降,表明Alexa的排名规则已经变了。其实这只是10.1长假的关系。10.1其间,大家要么出门旅游,要么睡觉休息,上网的话也只是玩网游,哪还有人看网页啊,如果这几天有哪个国内网站的排名不跌的话,那才是有作弊的嫌疑呢。
我个人估计Alexa的排名规则和依据不会有大变动,因为AlexaToolbar不具备自动升级的功能,所以Alexa排名的数据依据在很长的一段时间内是不会改变的。能改变的只有排名的算法,顶多是改变了Reach和PageView对Rank影响的权重,或是对Reach和PageView出现异常的处理机制。
Alexa工具栏竟然会自动升级
本来一直以为AlexaToolbar没有自动升级功能的,今天突然发现被我修改过的AlexaToolbar竟然恢复正常状态了。我到系统目录下一看,原来被我修改的过的AlxRes.dll的大小是340k变成了336k,而且系统目录下多出了一个AlxRes.dll.bak的文件。我查看了一下AlexaToolbar的版本信息,原来是“7.0.1.52.1201”,现在变成了“7.0.1.52.1202”。很明显,Alexa自动升级了。
可以肯定,那个新的AlxRes.dll来源于Alexa网站。我粗略地分析了一下Alexa的升级过程:在注册表的“HKEY_LOCAL_MACHINESOFTWAREAlexaInternet”分支下存放了一个名为“lastupdate”,这个值存放了最后一个更新的日期。AlexaToolbar被加载时会检查这个键值,当改值的日期与当前日期相差CHECK_UPDATE_INTERVAL这个值的时候,AlexaToolbar便从远程启动。
AlexaToolbar在启动时首先加载res://AlxTB1.dll/CHTML/BOOTSTRAP.HTML,这个页面中的代码会判断是否需要更新AlexaToolbar,如果不需要,则跳转到res://AlxRes.dll/CHTML/index.html,如果需要更新,则跳转到http://client.alexa.com/holiday/script/index.html。这就是所谓的远程启动了。
然后AlxTB1.dll会调用URLDownloadToFile函数来下载更新的程序文件。有一点要指出:AlexaToolbar只需要更新AlxRes.dll文件就可以了,因为AlexaToolbar的主要代码都在这个文件里。
最后还要告诉大家一个好消息:这次更新并没有改变数据的收集方式,数据的格式还是和以前一样的。
文章来源:中企在线