现今的压缩格式种类繁多,常见的有zip,rar, 不常见的7z,imp,ace,bz2等,多的让人数不过来,今天有兴致研究了一把这些格式的压缩算法。
压缩算法包括有损,无损两种,一般的有损压缩是在执行特定的有损变换后再执行无损压缩,所以这里我们只讨论无损压缩算法。按照一些教材的分类(这些教材可 能偏老,现代的压缩算法不知还能否这样分),无损压缩一般可分为基于统计模型和基于字典模型的两大类,最早的应用于数据压缩领域的算法应该是基于统计模型 的Huffman算法(1952),在Unix和Dos的早期版本中都可以找到基于Huffman算法的软件,不过现在已经极少用了。
1977/1978,两个聪明的以色列人提出基于字典模型的算法LZ77,LZ78,这两个经典文献提出的算法成为了当代几乎所有流行压缩软件的算法核 心。1982年, LZSS算法作为LZ77的改良被提出,大量的压缩软件使用了这个算法,如zip,arj,lharc等,1985年,LZ78的改良LZW提出,LZW 也得到广泛的应用,如GIF图像中的压缩算法,Unix下的compress程序。但由于LZW存在专利问题,此后的应用并没有LZSS广泛。
如今大量的新的压缩格式出现,如bzip2,imp,他们都能够提供比前辈们更高的压缩率,这些压缩软件的核心算法则比较新,如PPM,BWT等,也难以查到相关资料。不过有很多网站定期做最新压缩算法的评测,可以做参考http://compression.graphicon.ru/ybs或者http://www.maximumcompression.com/, 看看最新的评测结果,排名靠前的压缩软件有Slim 20,Durilca 0.3,Epm 9,7Zip 3.11,Paq6等, 只有7zip我用过,其它连听都没有听说过!它们大多能提供比WinRar3.3还要小10~20%的压缩结果,只是速度一般比较慢,耗用内存比较多,再 加上用户界面的简陋(大多是命令行界面),所以没有流行起来,其中有些软件还是OpenSource的, 如PAQ, 7zip,厉害。
2003/12/29
访问过千
对于访问计数来说,1000实在是个很小的数字,不过对于我的网站来说,还是挺有纪念意义的,今天是2003/12/29,能够在2004年到来之前达到1000,我还是很高兴(超出我的预期 :)) 下一个数字是10000,目标就暂定在2005年吧。
Weblog在国内现在已经有很多人用了,光是在www.blogcn.com这个网站上,注册的Weblog用户已经超过10万,当然还不包括我这样的散户,以后准备找一些感兴趣的Weblog加入到我的链接里去。
Weblog在国内现在已经有很多人用了,光是在www.blogcn.com这个网站上,注册的Weblog用户已经超过10万,当然还不包括我这样的散户,以后准备找一些感兴趣的Weblog加入到我的链接里去。
2003/12/25
分页/skin
随着内容越来越多,再象原来那样一个页面列出所有帖子已经不太合适了,特别是CG类中有很多图像,一起列出会很耗时间,增加一个分页的功能,每页只显示部分帖子,然后可以一页一页前后翻,就像很多论坛里的帖子一样,这样可能比较好,b2的功能还是很强大的,并且扩充性很好,增加分页功能并没有费多大事情。
前两天还想起要增加skin,就是将这个页面的外观改变一下,这样我看久了也不会烦了,今天有空就做了一个,这个改动也不大(因为CSS我没有改),原来的那个被放到index1.php了,所有的图象都是在Photoshop中做的,然后在Dreamweaver中组合成HTML,最后用文本编辑器手动修改一下,再加入php代码就可以了。整个过程并不复杂,原来准备将CSS也一并改掉的,这样看起来才会和以前的有很大不同,但CSS试了多次,效果都没有原来的好,就没有改了。
做下来感觉蛮有趣的,以后可以多做一些,反正可以从index1.php,index2.php一个一个排下去,呵呵.
(Blog是Weblog的简写,在中国Weblog被称作博客, 我想多半是来自Blog这个词,台湾的翻译叫做部落客,感觉也很形象)
前两天还想起要增加skin,就是将这个页面的外观改变一下,这样我看久了也不会烦了,今天有空就做了一个,这个改动也不大(因为CSS我没有改),原来的那个被放到index1.php了,所有的图象都是在Photoshop中做的,然后在Dreamweaver中组合成HTML,最后用文本编辑器手动修改一下,再加入php代码就可以了。整个过程并不复杂,原来准备将CSS也一并改掉的,这样看起来才会和以前的有很大不同,但CSS试了多次,效果都没有原来的好,就没有改了。
做下来感觉蛮有趣的,以后可以多做一些,反正可以从index1.php,index2.php一个一个排下去,呵呵.
(Blog是Weblog的简写,在中国Weblog被称作博客, 我想多半是来自Blog这个词,台湾的翻译叫做部落客,感觉也很形象)
2003/12/17
RDF/RSS
由于以前不知道b2中RDF/RSS功能的用处, 所以将此功能给禁止了, 现在才稍有些明白, 将RDF/RSS功能重新打开(看看页面右边内容下的两个XML图标), RDF/RSS可以看成对XML语义的定义(不是语法). 在Weblog里主要用来做Weblog的串连(基于XML), 达到自动更新的效果. 很多的网站都提供有RDF/RSS格式的更新资料, 如slashdot等.
RSS(RDF Site Summary)本身就是基于XML格式,它给出Web网站的更新描述, 当拿到一个站点的RSS以后,就可以自动分析出网站最近更新的内容,时间等详细信息, 注意这里是自动分析, 而不是人工分析, 这是RSS的最大功效, 比如可以做一个工具,定期到所有你喜欢的网站上去下载RSS,重新组织后呈现出来,非常方便。RDF和XML的说明可以参考这篇文章, 更多XML的资料可以参考IBM中国的XML专区, 上面有不错的文章.
RSS(RDF Site Summary)本身就是基于XML格式,它给出Web网站的更新描述, 当拿到一个站点的RSS以后,就可以自动分析出网站最近更新的内容,时间等详细信息, 注意这里是自动分析, 而不是人工分析, 这是RSS的最大功效, 比如可以做一个工具,定期到所有你喜欢的网站上去下载RSS,重新组织后呈现出来,非常方便。RDF和XML的说明可以参考这篇文章, 更多XML的资料可以参考IBM中国的XML专区, 上面有不错的文章.
2003/12/15
DjVu
DjVu是一种电子书格式, 据说是AT&T研究,专门针对扫描的图像,有相当高的压缩率。DjVu的官方说明是"The Technology for Scanned Documents on the Web"。现在DjVu格式的电子书还不是很多,这里可以看到一些DjVu文档的效果演示,但首先需要安装DjVu的IE插件,这样就可以象PDF一样在IE里面浏览了。
对于原有的扫描的图像格式的电子书,如JPG,GIF等,DjVu Solo这个软件可以将它们转换为DjVu格式。我手上原有一本扫描版的电子图书,GIF格式(对于一般的扫描电子书来说,黑白GIF应该是一个不错的选 择),一共大概有50M,使用DjVu Solo转换之后,大小为5.8M左右,相当的不错。可惜DjVu Solo这个软件好像耗费内存过大,每次不能转太多页,在我的机器上,我每次转50页,然后再将转换后的DjVu拼合起来成一个文件, 这显得相当麻烦。
对于原有的扫描的图像格式的电子书,如JPG,GIF等,DjVu Solo这个软件可以将它们转换为DjVu格式。我手上原有一本扫描版的电子图书,GIF格式(对于一般的扫描电子书来说,黑白GIF应该是一个不错的选 择),一共大概有50M,使用DjVu Solo转换之后,大小为5.8M左右,相当的不错。可惜DjVu Solo这个软件好像耗费内存过大,每次不能转太多页,在我的机器上,我每次转50页,然后再将转换后的DjVu拼合起来成一个文件, 这显得相当麻烦。
2003/11/29
Repligo
最近发现的PocketPC下的PDF终极解决方案 :)
以前用Acrobat PocketPC版本和Primer在PPC上看PDF都不能让我满意,有几个问题:
1)中文支持差,Acrobat和Primer的缺省安装都不能支持中文,要显示中文PDF,需要另安装字库,麻烦,且字库很大。
2)页面显示,Acrobat和Primer都是按页面显示PDF的,这在PC上没问题,因为显示器够大,而在PPC上可就不行了,正常的PDF页面在PPC上都要左右上下来回拖动才能阅读,好累。
3)速度太慢,对于稍大的PDF文档,Acrobat和Primer都象蜗牛一般,很久才能调入
Repligo可以解决上面的问题,但它不能直接支持PDF文档,Repligo会在PC上安装一个虚拟打印机,任何可打印的文档(当然包括PDF)都可 通过虚拟打印机转成rgo文档,然后在PPC上阅读,令人惊喜的是rgo文档无需任何附加字库即可支持中文,在PPC上用Repligo阅读rgo文档速 度也非常快,还支持自动断行。真是太酷了, 唯一遗憾的是使用自动断行时,Repligo有时断的不完全准确,这时可以用页模式辅助一下。
以前用Acrobat PocketPC版本和Primer在PPC上看PDF都不能让我满意,有几个问题:
1)中文支持差,Acrobat和Primer的缺省安装都不能支持中文,要显示中文PDF,需要另安装字库,麻烦,且字库很大。
2)页面显示,Acrobat和Primer都是按页面显示PDF的,这在PC上没问题,因为显示器够大,而在PPC上可就不行了,正常的PDF页面在PPC上都要左右上下来回拖动才能阅读,好累。
3)速度太慢,对于稍大的PDF文档,Acrobat和Primer都象蜗牛一般,很久才能调入
Repligo可以解决上面的问题,但它不能直接支持PDF文档,Repligo会在PC上安装一个虚拟打印机,任何可打印的文档(当然包括PDF)都可 通过虚拟打印机转成rgo文档,然后在PPC上阅读,令人惊喜的是rgo文档无需任何附加字库即可支持中文,在PPC上用Repligo阅读rgo文档速 度也非常快,还支持自动断行。真是太酷了, 唯一遗憾的是使用自动断行时,Repligo有时断的不完全准确,这时可以用页模式辅助一下。
2003/11/19
病毒/安全
前几天在浏览一个网页的时候,IE忽然弹出很多窗口,甚至包括一些Notepad窗口,我知道大事不好,赶紧关闭所有IE窗口,可惜已经晚了,IE的主页被篡改了,并且无论怎么恢复,只要重启计算机,就又恢复到那个烦人的主页上了。
今天打算彻底将之清除,疯狂搜索注册表,这一查可吓了我一跳,原来我的计算机已经身中数毒,鼎鼎大名的msblast(冲击波)和家园 (Script.Hompage)都在我的计算机里安家落户,家园肯定是通过IE的漏洞进来的,冲击波就不知是什么时候闯入的了。还好这两个病毒都对计算 机没什么破坏作用,不然我可就惨了。心有余悸之下,赶紧将这两个病毒请出我的计算机。
微软的东西向来以易用出名,伴随着的问题就是漏洞极多,我已经很久不敢使用outlook收邮件了(因为我没有杀毒软件,又不想被outlook的漏洞感 染病毒),都是通过浏览器直接看邮件,现在又有了这个家园病毒,难道IE也不能用了,看来冲击波的作者嵌入病毒的那句话是非常正确的 :)
可能还是Opera比较安全吧.. . :)
推荐一篇关于安全的文章,不错. http://home.planet.nl/~genan/safety.htm
今天打算彻底将之清除,疯狂搜索注册表,这一查可吓了我一跳,原来我的计算机已经身中数毒,鼎鼎大名的msblast(冲击波)和家园 (Script.Hompage)都在我的计算机里安家落户,家园肯定是通过IE的漏洞进来的,冲击波就不知是什么时候闯入的了。还好这两个病毒都对计算 机没什么破坏作用,不然我可就惨了。心有余悸之下,赶紧将这两个病毒请出我的计算机。
微软的东西向来以易用出名,伴随着的问题就是漏洞极多,我已经很久不敢使用outlook收邮件了(因为我没有杀毒软件,又不想被outlook的漏洞感 染病毒),都是通过浏览器直接看邮件,现在又有了这个家园病毒,难道IE也不能用了,看来冲击波的作者嵌入病毒的那句话是非常正确的 :)
可能还是Opera比较安全吧.. . :)
推荐一篇关于安全的文章,不错. http://home.planet.nl/~genan/safety.htm
2003/11/15
从Refer获得的数据
refer可以记录网站访问来源,这个功能是来自于php提供的一个环境变量,通过分析这个数据可以得到很多有趣的信息。
在refer数据上可以看到,访问本站的人大部分是通过搜索网站转来的,而与我的估计不符的是,大部分的搜索链接来自于baidu,而不是google, 可见国内使用百度的人现在越来越多,从关键字来看,简直是五花八门,最近的六个关键词分别是"vlc播放器","apache配置","你的样子 mp3","赛车游戏源码","cooleditpro 2.0","3d树"。是不是很有趣,搜索引擎真是神通广大啊!
可以看到这些关键字都比较偏,我想可能是因为只有在这样比较偏的关键字的搜索结果中,我的页面才能排名相对靠前,被访问的几率也就相对较大,而在大部分的 通用关键字的搜索结果中,也应该会列出我的页面,但由于排名非常靠后,自然就很难被访问,我想大部分人应该不会在搜索结果中有耐心的一页一页往后翻,大概 和我自己差不多,翻几页看不到好的结果就会放弃了 :)
在refer数据上可以看到,访问本站的人大部分是通过搜索网站转来的,而与我的估计不符的是,大部分的搜索链接来自于baidu,而不是google, 可见国内使用百度的人现在越来越多,从关键字来看,简直是五花八门,最近的六个关键词分别是"vlc播放器","apache配置","你的样子 mp3","赛车游戏源码","cooleditpro 2.0","3d树"。是不是很有趣,搜索引擎真是神通广大啊!
可以看到这些关键字都比较偏,我想可能是因为只有在这样比较偏的关键字的搜索结果中,我的页面才能排名相对靠前,被访问的几率也就相对较大,而在大部分的 通用关键字的搜索结果中,也应该会列出我的页面,但由于排名非常靠后,自然就很难被访问,我想大部分人应该不会在搜索结果中有耐心的一页一页往后翻,大概 和我自己差不多,翻几页看不到好的结果就会放弃了 :)
2003/11/04
文件恢复
很久都没有遇到需要恢复文件的事情了,最近几次硬盘当掉都因为没有什么重要数据,直接format重装系统,今天则遇到一个含有数据文件的硬盘当掉,花了 一段时间才搞定,这个硬盘已经无法启动,只有接到别的计算机上,可惜C盘还是看不到内容,但要恢复的数据就在C盘上。首先想到的是chkdsk, 结果不仅无效,还导致chkdsk执行非法操作。换用我以前用过的recoverNT(由于以前用recoverNT从未失手,故我非常信任此软 件:)), 竟然也没用,recoverNT可以打开C盘,但什么文件也找不到。三板斧失效后,我也不知如何是好了,开始在google上找软件,找了个可以恢复分区 的软件Active Partition Recovery,只能在纯DOS下运行,而Win2000又不支持创建DOS方式启动盘,只好找个启动盘映像解到软盘。终于可以在DOS下运行了这个软 件,这次可以看到C盘中的文件了,可惜还是不能save出来,因为APR根本就不支持恢复文件,它虽然能恢复分区,但既然它可以看到丢失的C盘,分区也就 无需恢复,所以还是没有用。最终替我解决问题的软件终于被我找到,叫做PC Inspector File Recovery,居然是个Free的软件(佩服), 在win2000下运行, 可以找到丢失的C盘,并从中Save出想要恢复的文件。遗憾的是这个软件不支持NTFS,还好丢失的分区是FAT32的。不然我又要找不知什么软件了. :)
很怀念以前NU8中的NDD, 有什么磁盘分区问题都可以找它来修复,可到了windows时代,再也没有用过它了.
很怀念以前NU8中的NDD, 有什么磁盘分区问题都可以找它来修复,可到了windows时代,再也没有用过它了.
2003/10/27
2003/09/25
域名、主机记录
我的域名的主机记录是自己通过Web管理的,原先的主机记录我只修改了www一项到虚拟空间,这样就应该可以通过www.phyz.net来访问网站了,我没有修改缺省主机记录(phyz.net), 可是今天无意发现,通过Opera 7.1访问www.phyz.net却不行,而我一直用IE所以没有发现。由于怀疑是Opera将www.phyz.net解析到phyz.net了,我就将缺省主机(@)记录也改到www.phyz.net的地址,过了域名解析期后,再用Opera访问发现问题已经解决。
看起来象是Opera错把主机记录解析到缺省主机记录了,可是仔细一想就不对了,应用程序只是调用socket接口访问网络,象名字解析这类的事情应该是操作系统去做的,那么IE和Opera在名字解析上应该表现一致,可为什么IE可以正常访问,而Opera就不行呢?实在是想不明白,网络上也没有找到答案 :(
尽管Opera也已经发展到7.1版本了,可是浏览这个网站还是和IE看起来有巨大差异,字体变得很小,我试着改了一下网页,发现Opera正常后,IE 就不正常了(太大),看来在CSS的实现上两个浏览器还是不兼容,我只能选择IE!不知Netscape有没有这方面的问题,我还没有看过.
看起来象是Opera错把主机记录解析到缺省主机记录了,可是仔细一想就不对了,应用程序只是调用socket接口访问网络,象名字解析这类的事情应该是操作系统去做的,那么IE和Opera在名字解析上应该表现一致,可为什么IE可以正常访问,而Opera就不行呢?实在是想不明白,网络上也没有找到答案 :(
尽管Opera也已经发展到7.1版本了,可是浏览这个网站还是和IE看起来有巨大差异,字体变得很小,我试着改了一下网页,发现Opera正常后,IE 就不正常了(太大),看来在CSS的实现上两个浏览器还是不兼容,我只能选择IE!不知Netscape有没有这方面的问题,我还没有看过.
2003/09/18
2003/09/13
PPPoE的MTU
我上网是通过PPPoE(PPP over Ethernet),好像现在网通的局域网接入和电信的ADSL大部分用的这个协议,既然是over Ethernet,一定会做协议封装,那么MTU(最大传输单元)应该达不到1500,在网上看到这可能会导致部分网络应用不正常,我于是在我的机器上实 测了一把,在dos窗口下使用ping就可以了,用ping -f -l ### ****.***这样的格式,-f是设置不分片,-l设置包长,当包长超过MTU时,就会返回ICMP不能分片的错误。在我的机器上:
E:\>ping -f -l 1465 www.****.com
Pinging www.****.com with 1465 bytes of data:
Packet needs to be fragmented but DF set.
而使用1464包长是可以的。
E:\>ping -f -l 1464 www.****.com
Pinging www.****.com with 1464 bytes of data:
Reply from ###.###.###.###: bytes=1464 time=16ms TTL=123
可以算出MTU等于1464+28(28等于ping包的头部,一个IP加一个ICMP头)=1492!
然后只要在注册表里修改这个接口的MTU就可以了。
一个有趣的实验是,使用同样的方法,但是目标地址换成自己的IP地址或是127.0.0.1得到的是不同的结果1472,可见在这里环回接口的MTU仍然是1500,和PPPoE的MTU并不相等!
E:\>ping -f -l 1465 www.****.com
Pinging www.****.com with 1465 bytes of data:
Packet needs to be fragmented but DF set.
而使用1464包长是可以的。
E:\>ping -f -l 1464 www.****.com
Pinging www.****.com with 1464 bytes of data:
Reply from ###.###.###.###: bytes=1464 time=16ms TTL=123
可以算出MTU等于1464+28(28等于ping包的头部,一个IP加一个ICMP头)=1492!
然后只要在注册表里修改这个接口的MTU就可以了。
一个有趣的实验是,使用同样的方法,但是目标地址换成自己的IP地址或是127.0.0.1得到的是不同的结果1472,可见在这里环回接口的MTU仍然是1500,和PPPoE的MTU并不相等!
2003/09/11
mp3/mp3pro/wma
因为这个空间的文件大小限制,这里不能再像以前一样放128kbps的mp3了,因为一首128k的mp3大概要4~5M :(
我想只能降低采样率牺牲质量来换取空间了,可选的压缩格式有mp3,mp3pro和wma,以前并没有仔细研究过哪种格式适合更高的压缩率,只好拿现成的mp3做试验了。
经典的mp3自然是最流行的,在没有空间限制的时候,我会毫不犹豫选择mp3/128kbps,因为mp3格式在128kbps以上已经可以提供非常好的 音频质量,并且加上mp3的广泛流行,没有什么需要选择的。可惜,到了64kbps以下,mp3不再是最佳的选择了,因为经典的mp3压缩算法在 64kbps压缩下变的惨不忍'听',音质损失非常严重。虽然我的耳朵分辨率不高,还是毫不费力能分辨出64kbps和128kbps mp3的区别。
接着我试了被微软吹的上了天的Windows Media 8 Encoder,说实话,由于对微软的一贯印象很差,没有对这个编码器报多大的幻想,不过在CoolEditPro压缩完游鸿明的《下沙》之后,我被惊呆 了,wma的表现比前面的mp3高了一个档次,甚至给我感觉不是在一个采样率下的比较。我赶忙检查了设置,没有错误,都是在64kbps下的压缩,文件大 小也相差无几,看来微软这个巨人真不可小视。不过64kbps的wma比128kbps的mp3差距还是明显的。而且有一个显著的问题是很不稳定,在某一 段听起来好像效果非常好,下一段却又明显质量下降。看来微软的这个编码器还有些问题,不过在64kbps这个采样率下,已经很让我惊喜了(怪不得现在很多 mp3播放器都支持wma, 如果没有下面的mp3pro,我想我恐怕会用微软的这个编码器了)。
最后,轮到mp3pro了,虽然网上对这个新的压缩算法评价不错,但此前我从未用过这个编码器,毕竟不够流行。在大多数软件都还不支持mp3pro格式回 放(包括winamp)的时候,CoolEditPro竟然已经支持多种采样率的mp3pro编码(果然够专业),实在让我惊喜。在同样用64kbps压 缩了《下沙》之后回放,这次是彻底的惊喜。在用mp3pro的专用播放器THOMSON mp3Pro audio player播放这首歌时,我已经基本听不出它与128kbps的mp3的区别了,真的是非常棒(也可能是我的耳朵不够好,不过明显要比wma好了)。
哈哈,这样好了,以后我会用mp3pro做录音的压缩,遗憾的是mp3pro不够流行,普通的mp3播放器(如winamp)在播放mp3pro文件,只能象mp3一样来播放,而忽略了所有mp3pro的细节,音质大打折扣,所以回放mp3pro文件,一定要下载这个mp3pro专用播放器,当然用普通的mp3播放器也是可以回放mp3pro文件,只是音质不好。
我想只能降低采样率牺牲质量来换取空间了,可选的压缩格式有mp3,mp3pro和wma,以前并没有仔细研究过哪种格式适合更高的压缩率,只好拿现成的mp3做试验了。
经典的mp3自然是最流行的,在没有空间限制的时候,我会毫不犹豫选择mp3/128kbps,因为mp3格式在128kbps以上已经可以提供非常好的 音频质量,并且加上mp3的广泛流行,没有什么需要选择的。可惜,到了64kbps以下,mp3不再是最佳的选择了,因为经典的mp3压缩算法在 64kbps压缩下变的惨不忍'听',音质损失非常严重。虽然我的耳朵分辨率不高,还是毫不费力能分辨出64kbps和128kbps mp3的区别。
接着我试了被微软吹的上了天的Windows Media 8 Encoder,说实话,由于对微软的一贯印象很差,没有对这个编码器报多大的幻想,不过在CoolEditPro压缩完游鸿明的《下沙》之后,我被惊呆 了,wma的表现比前面的mp3高了一个档次,甚至给我感觉不是在一个采样率下的比较。我赶忙检查了设置,没有错误,都是在64kbps下的压缩,文件大 小也相差无几,看来微软这个巨人真不可小视。不过64kbps的wma比128kbps的mp3差距还是明显的。而且有一个显著的问题是很不稳定,在某一 段听起来好像效果非常好,下一段却又明显质量下降。看来微软的这个编码器还有些问题,不过在64kbps这个采样率下,已经很让我惊喜了(怪不得现在很多 mp3播放器都支持wma, 如果没有下面的mp3pro,我想我恐怕会用微软的这个编码器了)。
最后,轮到mp3pro了,虽然网上对这个新的压缩算法评价不错,但此前我从未用过这个编码器,毕竟不够流行。在大多数软件都还不支持mp3pro格式回 放(包括winamp)的时候,CoolEditPro竟然已经支持多种采样率的mp3pro编码(果然够专业),实在让我惊喜。在同样用64kbps压 缩了《下沙》之后回放,这次是彻底的惊喜。在用mp3pro的专用播放器THOMSON mp3Pro audio player播放这首歌时,我已经基本听不出它与128kbps的mp3的区别了,真的是非常棒(也可能是我的耳朵不够好,不过明显要比wma好了)。
哈哈,这样好了,以后我会用mp3pro做录音的压缩,遗憾的是mp3pro不够流行,普通的mp3播放器(如winamp)在播放mp3pro文件,只能象mp3一样来播放,而忽略了所有mp3pro的细节,音质大打折扣,所以回放mp3pro文件,一定要下载这个mp3pro专用播放器,当然用普通的mp3播放器也是可以回放mp3pro文件,只是音质不好。
2003/09/07
2003/09/03
2003/08/26
PHP空间
这个网站一直是放在我自己的机器上,一年前我是通过广电的有线通上网(cable modem),无需拨号,24小时在线,做服务器非常合适。那时我曾经在自己的机器上跑一个论坛程序几个月基本没有关机(WIN2000),后来搬家后, 换成网通的PPPoE上网,这种10M局域网的方式上网优点是下载速度很快,但需要拨号,并且有个致命的缺陷是时常掉线,显然不适合做服务器。我曾经考虑 过在网上购买一个PHP空间来放这个网站,不过由于种种原因,一直没有找到合适的空间商。最近,很巧的机会,无意中却发现了一个比较满意的空间,呵呵,以 后可以建设这个100M空间了,我的赛扬可以退役了,哈哈. :)
不过很快就发现另一个问题了,Mysql数据库的内容如何导入导出以及同步,数据库可以通过phpmyadmin导出成一个sql文本文件,不过这个文件好大,而且这种方式的导入导出很麻烦,只能先凑合用着,以后再找好的方法。
有了空间后的一个附加好处是修改站点外观时可以先在本地改,然后和空间上的原来的样子做对比,直到满意再上传到空间上。
不过很快就发现另一个问题了,Mysql数据库的内容如何导入导出以及同步,数据库可以通过phpmyadmin导出成一个sql文本文件,不过这个文件好大,而且这种方式的导入导出很麻烦,只能先凑合用着,以后再找好的方法。
有了空间后的一个附加好处是修改站点外观时可以先在本地改,然后和空间上的原来的样子做对比,直到满意再上传到空间上。
2003/08/17
blog网站历史
建这个个人网站是在我接触PHP之后,至今已有一年多的时间了,这期间也经过了多次的变化,可惜大多以往的版本都没有拷贝下来,只能凭记忆记录一些:
最初的网站是用的什么软件,现在已经记不起名字了,只记得前台是我自己用HTML写的,后台是用文件记录方式,功能很弱,甚至没有留言功能,印象中比较深 刻的是当时花了不少的时间做了个PHP的留言本,是基于文本文件记录的。这个版本的网站当时自己并不满意,不过由于一时没有找到合适的替代者,大概也用了 两个月左右。
后来我发现了mambo, 一个功能强大的CMS系统来代替最初的网站,后台基于MySql数据库,功能较多,前台使用了Theme(样式),界面已经比较美观。整个mambo网站 建立起来几乎不用写一行代码,比较傻瓜式的软件。当时我用的是4.0的版本,现在估计已经发展到4.5了,不知有没有什么大的变化。这个mambo的网页 我用了比较久的时间,但一直有两个缺陷让我不是很满意,一是对中文的处理不好,很多中文的记录都成了乱码(这就是为什么现在还有那么多英文帖子的原因), 二是过于傻瓜的软件使得配置较少,有一些地方不符合我的使用习惯,想改起来却很困难。因而用了一段时间之后就开始寻找替代者了,可惜当时的版本也没有记录 下来,没办法看到了。
第三个使用的软件是PostNuke, 很有名气的CMS系统,模块化的功能管理,使得功能非常强大,我用的是0.723的中文版,可以非常好的支持中文,我甚至建立了双语种的网站, postnuke由于用的人非常多,网上可以找到大量的功能模块,样式等等。这些是当时的界面的拷贝(奇怪当时为什么用了粉红色?)。



最后用的就是现在这个基于b2的版本了,之所以又更换软件,是因为postnuke功能太强大了,以至于后来我觉得用它来做我这样的一个个人网页实在是有 些奢侈,而且过多的功能导致了网页速度比较慢,尤其是后台功能,即使在本机操作,也常常需要等待,我开始找寻够用就好的软件,于是我发现了b2,相当简洁的软件,功能不多,但刚好符合我的需要,前台相当简陋,我重写过前台,就成了现在这个样子。
我想将来可能还会使用其他的软件来代替现在的b2,但我希望这个网站-我自己的网站能越来越好. :)
最初的网站是用的什么软件,现在已经记不起名字了,只记得前台是我自己用HTML写的,后台是用文件记录方式,功能很弱,甚至没有留言功能,印象中比较深 刻的是当时花了不少的时间做了个PHP的留言本,是基于文本文件记录的。这个版本的网站当时自己并不满意,不过由于一时没有找到合适的替代者,大概也用了 两个月左右。
后来我发现了mambo, 一个功能强大的CMS系统来代替最初的网站,后台基于MySql数据库,功能较多,前台使用了Theme(样式),界面已经比较美观。整个mambo网站 建立起来几乎不用写一行代码,比较傻瓜式的软件。当时我用的是4.0的版本,现在估计已经发展到4.5了,不知有没有什么大的变化。这个mambo的网页 我用了比较久的时间,但一直有两个缺陷让我不是很满意,一是对中文的处理不好,很多中文的记录都成了乱码(这就是为什么现在还有那么多英文帖子的原因), 二是过于傻瓜的软件使得配置较少,有一些地方不符合我的使用习惯,想改起来却很困难。因而用了一段时间之后就开始寻找替代者了,可惜当时的版本也没有记录 下来,没办法看到了。
第三个使用的软件是PostNuke, 很有名气的CMS系统,模块化的功能管理,使得功能非常强大,我用的是0.723的中文版,可以非常好的支持中文,我甚至建立了双语种的网站, postnuke由于用的人非常多,网上可以找到大量的功能模块,样式等等。这些是当时的界面的拷贝(奇怪当时为什么用了粉红色?)。



最后用的就是现在这个基于b2的版本了,之所以又更换软件,是因为postnuke功能太强大了,以至于后来我觉得用它来做我这样的一个个人网页实在是有 些奢侈,而且过多的功能导致了网页速度比较慢,尤其是后台功能,即使在本机操作,也常常需要等待,我开始找寻够用就好的软件,于是我发现了b2,相当简洁的软件,功能不多,但刚好符合我的需要,前台相当简陋,我重写过前台,就成了现在这个样子。
我想将来可能还会使用其他的软件来代替现在的b2,但我希望这个网站-我自己的网站能越来越好. :)
2003/08/15
arp与ping
ping与arp配合有一个很妙的用处,就是通过ping广播地址,然后反查arp表来获取局域网一个网段内的所有主机ip,但是这种用法有个缺陷,就是当你在第一次用的时候它很有效,但当将arp表清空后,立刻再ping广播地址就看不到arp表的内容了,我曾经在Win2000,Linux, VxWorks试过,效果相同,比如在Win2000下:
1) ping 192.168.0.255
2) 此时用arp -a查看arp表,应该可以看到网段内的主机ip
3) 用arp -d删除所有arp表项
4) 再用ping 192.168.0.255
5) 再看arp -a, 此时看到arp表中已经没有上次看到的那些主机了。
分析arp协议之后,终于明白原因,整个arp的交互过程如下:
1) 首先,源主机ping广播包,因为是广播包,无需知道MAC地址,所以不会发送arp请求,直接发送ping广播包
2) 网内主机收到ping广播包后,需要应答。但应答是单播方式,所以先要发送arp广播请求源主机的MAC地址。
3) arp广播请求在被源主机收到后,源主机更新自己arp表,并回送arp应答。网内主机受到arp应答后,也各自更新自己的arp表。
4) 等ping回送结束后,源主机的arp缓存中就会有所有回送ping包的主机ip
5) 清空源主机的arp表后,再ping广播地址,仍然不会发送arp请求,直接发送ping广播包
6) 网内主机收到ping包后,需要回送ping应答,但此时这些主机的arp缓存中应该已经有了源主机的MAC地址,所以无需发送arp请求,直接回送ping应答
7) 源主机仍然可以接收到所有的ping应答,但由于没有收到arp请求,所以arp不会被更新!这就是第二次ping广播包不会刷新arp的原因!
所以,使用此方法查询网内主机不一定可靠。但VxWorks和Linux下有更简单的方法,直接使用ping即可,因为VxWorks和Linux的 ping在收到应答时会显示发送应答的ip地址。可惜Windows的ping不是这样,真是不知Windows为什么去掉如此有用的功能。 :(
1) ping 192.168.0.255
2) 此时用arp -a查看arp表,应该可以看到网段内的主机ip
3) 用arp -d删除所有arp表项
4) 再用ping 192.168.0.255
5) 再看arp -a, 此时看到arp表中已经没有上次看到的那些主机了。
分析arp协议之后,终于明白原因,整个arp的交互过程如下:
1) 首先,源主机ping广播包,因为是广播包,无需知道MAC地址,所以不会发送arp请求,直接发送ping广播包
2) 网内主机收到ping广播包后,需要应答。但应答是单播方式,所以先要发送arp广播请求源主机的MAC地址。
3) arp广播请求在被源主机收到后,源主机更新自己arp表,并回送arp应答。网内主机受到arp应答后,也各自更新自己的arp表。
4) 等ping回送结束后,源主机的arp缓存中就会有所有回送ping包的主机ip
5) 清空源主机的arp表后,再ping广播地址,仍然不会发送arp请求,直接发送ping广播包
6) 网内主机收到ping包后,需要回送ping应答,但此时这些主机的arp缓存中应该已经有了源主机的MAC地址,所以无需发送arp请求,直接回送ping应答
7) 源主机仍然可以接收到所有的ping应答,但由于没有收到arp请求,所以arp不会被更新!这就是第二次ping广播包不会刷新arp的原因!
所以,使用此方法查询网内主机不一定可靠。但VxWorks和Linux下有更简单的方法,直接使用ping即可,因为VxWorks和Linux的 ping在收到应答时会显示发送应答的ip地址。可惜Windows的ping不是这样,真是不知Windows为什么去掉如此有用的功能。 :(
2003/08/10
通过TTL辨识操作系统
这是最近看《详解卷一》的收获,想来可能以后能用到,记在这里。
在使用Ping程序去ping主机的时候,主机在返回ICMP应答时,IP首部中的TTL字段依据操作系统不同,而有不同的值,通过这个值就可以大体判断出远端主机的操作系统类型,如我的主机是WIN2000,ping的时候会出现下面的结果:
E:\>ping 127.0.0.1
Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
这里TTL是128,再看ping www.sina.com.cn的结果:
E:\>ping www.sina.com.cn
Pinging taurus.sina.com.cn [61.172.201.225] with 32 bytes of data:
Reply from 61.172.201.225: bytes=32 time=16ms TTL=48
为什么TTL是48呢? 因为ICMP应答包要经过很多路由器,TTL会被逐次减1,用tracert命令可以看到大致路由器的个数,最后可推算出www.sina.com.cn主机发出的TTL为64,这就基本可以断定它不是win2000系统啦。
大致的操作系统对应的TTL如下:
WIN2000/XP/NT: 128
WIN95/98/ME: 32
LINUX: 64
UNIX(包括BSD, Sun Solaris, HP UX): 255
VxWorks: 64
要注意的是TTL值在大多数操作系统中是可以改的(我只知道win2000下可以通过注册表来改), 所以此方法不一定完全正确。
在使用Ping程序去ping主机的时候,主机在返回ICMP应答时,IP首部中的TTL字段依据操作系统不同,而有不同的值,通过这个值就可以大体判断出远端主机的操作系统类型,如我的主机是WIN2000,ping的时候会出现下面的结果:
E:\>ping 127.0.0.1
Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
这里TTL是128,再看ping www.sina.com.cn的结果:
E:\>ping www.sina.com.cn
Pinging taurus.sina.com.cn [61.172.201.225] with 32 bytes of data:
Reply from 61.172.201.225: bytes=32 time=16ms TTL=48
为什么TTL是48呢? 因为ICMP应答包要经过很多路由器,TTL会被逐次减1,用tracert命令可以看到大致路由器的个数,最后可推算出www.sina.com.cn主机发出的TTL为64,这就基本可以断定它不是win2000系统啦。
大致的操作系统对应的TTL如下:
WIN2000/XP/NT: 128
WIN95/98/ME: 32
LINUX: 64
UNIX(包括BSD, Sun Solaris, HP UX): 255
VxWorks: 64
要注意的是TTL值在大多数操作系统中是可以改的(我只知道win2000下可以通过注册表来改), 所以此方法不一定完全正确。
2003/08/04
mp3回放爆音
重装了系统之后,就发现在用媒体播放器回放mp3时,总是有爆音,开始以为和网上说的一样,是声卡驱动的问题,就没有想办法去解决,因为我的声卡是 S90,早已没有新驱动可用了。昨天则无意中发现用VLC播放器播放mp3时并没有爆音,感觉就不像是驱动的问题了(VLC也要用声卡驱动才能发声的),开始怀疑是软件的问题了,因为VLC这个播放器没有用windows解码器,而是全部自带解码器,于是用媒体播放器打开mp3文件,在回放时看了所用的解码器(文件/属性/高级/正在使用的过滤器),发现竟然是一个AC3解码器在工作,而不是我想象的mp3 decoder,赶紧卸载了这个解码器,爆音终于没有了。哈哈,看来就是这个ac3解码器搞的鬼。
这个解码器应该是在安装DVD解码器时安装进系统的,不过它竟然接管了mp3的解码,不过显然解的有问题,不过我就不清楚为什么会在解mp3时会有爆音了, 也不知道有没有什么设置可以让mp3不要用这个ac3解码器来解, 这样就可以不用卸载它了。
这个解码器应该是在安装DVD解码器时安装进系统的,不过它竟然接管了mp3的解码,不过显然解的有问题,不过我就不清楚为什么会在解mp3时会有爆音了, 也不知道有没有什么设置可以让mp3不要用这个ac3解码器来解, 这样就可以不用卸载它了。
2003/07/21
TCP/IP 详解卷一
学习TCP/IP协议的人应该都知道Richard Stevens的这本《TCP/IP illustrated》可以算得上是"圣经"了, 机械工业出版社出了一套译本《TCP/IP 详解》,最近我一直在狂啃第一卷, 看起来翻译的还行,不过仍然有诸多错误实在让我觉得很不爽, 无奈之下, 只好找了一本英文版, 对照参看. 这样倒效果不错, 可以流畅的看下去了, 下面是比较致命的翻译错误, 一一列出,以备复习时参考 :)
1) P26,L12: “主机也要求不能接收超过576字节的数据报”应为“主机也不要求能接收超过576字节的数据报”。
2) P109,L1: “如果发送端没有计算校验和而...”应为“如果发送端计算了校验和...”
3) P121,L-2: “这个例子重申了UDP是个非可靠的协议,它说明了端到端的流量控制。”应为“这个例子重申了UDP是个非可靠的协议,并说明了端到端的流量控制的价值。”
4) P129,L-4: “一个路由器必须转发指向网络的广播,但它也必须有一个不进行转发选择的选择。”应为“一个路由器必须转发指向网络的广播,但它也必须有一个不进行转发选择的可选配置。”
5) P184,L6: “在2MSL等待期间,插口中使用的本地端口在默认情况下不能再被使用。”应为“缺省时,在2MSL等待期间,插口中使用的插口对在默认情况下不能再被使用。”
6) P184,L12:“因此当要建立一个有效的连接时,来自......不可能不被曲解。”应为“因此当建立一个有效的连接后,来自......不可能发生。”
7) P228,L3: “(记为O)”应为“(记为R)”
8) P232,L20: 这几段翻译错误太多!原文“ACK在重传后467ms到达。A和D的值没有被更新,这是因为Karn算法对重传的处理比较模糊。......这意味着图 21-4中时间0的RTO并不真的是24,......在前面,A和D初始化为0,RTO的初始计算值为3。这是使用第一个RTT的测量结果M对估计器进 行首次计算的初始值。”应为“ACK在重传后467ms到达。A和D的值没有被更新,这是因为Karn算法对重传模糊性的处理。......这意味着图 21-4中时间0的RTO是24,......在前面,A和D初始化为0和3,是为了最初的RTO的计算。这次初始化则是使用第一个RTT的测量结果M对 估计器进行的首次计算。”
9) P263, L26: “这将调节我们的接收缓存的大小......”应为“这将适应我们的接收缓存的大小......”
10) P268有两个公式, 第一个公式错误,“throughput=(2*1460B)/(22*1538B+84B) *......=1355063B/s”应为“throughput=(2*1460B)/(2*1538B+84B) *......=1155063B/s”,下面第二个公式上方“如果接收方每个报文段...”应为“如果接收方每22个报文段...”
11) P276,L-4:“每个MIB中的表格都指明一个以上的索引”应为“每个MIB中的表格都要指明一个或一个以上的索引”
12) P383,L21:“......最后48字节必须忽略”应为“......最后48字节必须转义”
1) P26,L12: “主机也要求不能接收超过576字节的数据报”应为“主机也不要求能接收超过576字节的数据报”。
2) P109,L1: “如果发送端没有计算校验和而...”应为“如果发送端计算了校验和...”
3) P121,L-2: “这个例子重申了UDP是个非可靠的协议,它说明了端到端的流量控制。”应为“这个例子重申了UDP是个非可靠的协议,并说明了端到端的流量控制的价值。”
4) P129,L-4: “一个路由器必须转发指向网络的广播,但它也必须有一个不进行转发选择的选择。”应为“一个路由器必须转发指向网络的广播,但它也必须有一个不进行转发选择的可选配置。”
5) P184,L6: “在2MSL等待期间,插口中使用的本地端口在默认情况下不能再被使用。”应为“缺省时,在2MSL等待期间,插口中使用的插口对在默认情况下不能再被使用。”
6) P184,L12:“因此当要建立一个有效的连接时,来自......不可能不被曲解。”应为“因此当建立一个有效的连接后,来自......不可能发生。”
7) P228,L3: “(记为O)”应为“(记为R)”
8) P232,L20: 这几段翻译错误太多!原文“ACK在重传后467ms到达。A和D的值没有被更新,这是因为Karn算法对重传的处理比较模糊。......这意味着图 21-4中时间0的RTO并不真的是24,......在前面,A和D初始化为0,RTO的初始计算值为3。这是使用第一个RTT的测量结果M对估计器进 行首次计算的初始值。”应为“ACK在重传后467ms到达。A和D的值没有被更新,这是因为Karn算法对重传模糊性的处理。......这意味着图 21-4中时间0的RTO是24,......在前面,A和D初始化为0和3,是为了最初的RTO的计算。这次初始化则是使用第一个RTT的测量结果M对 估计器进行的首次计算。”
9) P263, L26: “这将调节我们的接收缓存的大小......”应为“这将适应我们的接收缓存的大小......”
10) P268有两个公式, 第一个公式错误,“throughput=(2*1460B)/(22*1538B+84B) *......=1355063B/s”应为“throughput=(2*1460B)/(2*1538B+84B) *......=1155063B/s”,下面第二个公式上方“如果接收方每个报文段...”应为“如果接收方每22个报文段...”
11) P276,L-4:“每个MIB中的表格都指明一个以上的索引”应为“每个MIB中的表格都要指明一个或一个以上的索引”
12) P383,L21:“......最后48字节必须忽略”应为“......最后48字节必须转义”
2003/07/03
2003/06/29
CMS与Weblog
CMS是Content Manage System的缩写, WebLog顾名思义,可以看成是基于Web的Log(有时被简称为BLog), 二者都可以完成基于Web的内容管理功能, 但一般来说CMS注重多用户的社区功能, WebLog则侧重于个性化的展示, 因此CMS常常用于基于某些特定主题的社区网站, 而WebLog则最常用于个人网站, 个性化的展示作者的思想. 目前CMS和WebLog的实现已经很多, 有名的CMS如: phpNuke, postNuke, XOOPS等, 而WebLog方面, 有MoveType, b2等. 还有一些实现, 在设计思想和功能实现上介于CMS和WebLog之间, 已经很难界定属于哪一类了, 如Drupal. 本站的发展也经历了CMS和WebLog两个阶段, 在我不清楚WebLog的概念前, 我一直在CMS里寻找适用于本站的程序, 从Drupal到Mambo到postNuke, 后来接触了WebLog之后, 开始试用b2等. 下面是我的观点.
1) 思想
CMS与WebLog最大的区别在于思想, CMS是一个多用户的社区, 通过多用户的参与得到特定主题的研究深化, 这是传统意义上的内容管理, 而WebLog从名字可以看出, 是一个Log工具, 象记日记一样, 只不过基于Web, 它所强调的是一种随时随地的Log, 个性化的Log, 实际上代表了当今网络发展的潮流-个性化, 你可以拥有你自己的WebLog, 你可以随时随地随意记录你的思想, 观点, 它可以用任何Web方法来表达, 显示在全世界面前. 这就是WebLog, 我想它一定会象P2P一样在网络发展历史上留下自己应有的位置.
2) 功能
前面已经说到CMS注重多用户的社区功能, WebLog则侧重于个性化的展示, 具体到功能方面, CMS通常提供多用户管理, 以及基于用户的消息, 评论, 注释, 甚至论坛. 而WebLog则弱化多用户功能, 大多只提供用户记名功能, 当然这也是与WebLog的应用场合有关, 因为WebLog网站的浏览者通常局限于网站创建者的一小部分较熟悉的朋友之间. 因此, 从功能上说, CMS无疑比WebLog要丰富一些, 以postNuke为例, 安装好的postNuke 0.72就带有三十多个功能模块, 这也可以从软件的大小反映出来, postNuke 0.72安装后有6M多, 而b2安装后只有300多K.
3)Web界面
对于Web应用来说, 界面无疑是非常重要的, 对于CMS, 由于代码较大, 完全的定制几乎不可能, 一般来说CMS都通过样式(Theme)来提供对界面的定制, 样式的优点是使用简单, 只需下载样式文件, 设置样式即可, 但缺点也很明显, 风格单一. 因为样式并不能自定义界面的整体风格, 只能改变界面中的某些显示元素. 这就是为什么大多数的CMS站点看起来都象是堆在一起的方格的原因. 而在WebLog方面, 由于WebLog软件较小, 功能单一, 通常可以通过修改代码中的显示控制部分来提供完全的定制, 这一点也是很多人使用WebLog而不用CMS的重要原因:可以做到完全个性化的展示.
1) 思想
CMS与WebLog最大的区别在于思想, CMS是一个多用户的社区, 通过多用户的参与得到特定主题的研究深化, 这是传统意义上的内容管理, 而WebLog从名字可以看出, 是一个Log工具, 象记日记一样, 只不过基于Web, 它所强调的是一种随时随地的Log, 个性化的Log, 实际上代表了当今网络发展的潮流-个性化, 你可以拥有你自己的WebLog, 你可以随时随地随意记录你的思想, 观点, 它可以用任何Web方法来表达, 显示在全世界面前. 这就是WebLog, 我想它一定会象P2P一样在网络发展历史上留下自己应有的位置.
2) 功能
前面已经说到CMS注重多用户的社区功能, WebLog则侧重于个性化的展示, 具体到功能方面, CMS通常提供多用户管理, 以及基于用户的消息, 评论, 注释, 甚至论坛. 而WebLog则弱化多用户功能, 大多只提供用户记名功能, 当然这也是与WebLog的应用场合有关, 因为WebLog网站的浏览者通常局限于网站创建者的一小部分较熟悉的朋友之间. 因此, 从功能上说, CMS无疑比WebLog要丰富一些, 以postNuke为例, 安装好的postNuke 0.72就带有三十多个功能模块, 这也可以从软件的大小反映出来, postNuke 0.72安装后有6M多, 而b2安装后只有300多K.
3)Web界面
对于Web应用来说, 界面无疑是非常重要的, 对于CMS, 由于代码较大, 完全的定制几乎不可能, 一般来说CMS都通过样式(Theme)来提供对界面的定制, 样式的优点是使用简单, 只需下载样式文件, 设置样式即可, 但缺点也很明显, 风格单一. 因为样式并不能自定义界面的整体风格, 只能改变界面中的某些显示元素. 这就是为什么大多数的CMS站点看起来都象是堆在一起的方格的原因. 而在WebLog方面, 由于WebLog软件较小, 功能单一, 通常可以通过修改代码中的显示控制部分来提供完全的定制, 这一点也是很多人使用WebLog而不用CMS的重要原因:可以做到完全个性化的展示.
2003/05/25
反汇编工具IDA Pro
IDA Pro是DataRescue开发的专业反汇编工具, 全称是An Advanced Interactive Multi-Processor Disassembler. 在我所知道的反汇编工具中, IDA Pro的反汇编能力最强, 远甚于W32asm, SoftIce等, 因此IDA Pro也成为了很多Hacker, Reverse engineerer的必备工具.
1)概述
从IDA的名字可以看出, IDA的最主要的两个特性是交互(Interactive)和多处理器(Multi-Processor). 多处理器特性容易理解, 是指IDA可以反汇编多种处理器平台上的软件产品(但注意IDA本身是运行于Windows下的), 基本上, IDA支持所有常见的通用处理器. 比如可以在Windows平台下使用IDA来反汇编运行于MIPS平台的PocketPC程序, 这种交叉反汇编能力给使用者带来极大的便利.
2) 交互
IDA的另一个最重要的特性之一是其"交互"的工作方式, 一般的反汇编工具在反汇编过程中总会遇到其"不能理解"的代码, 或者说不能产生便于理解,易读的反汇编结果, 原因是现在的软件编译器众多, 各种开发库更是花样百出, 在IDA不能理解这些因素时, 操作者(运行IDA的人)的指令显得尤为重要, 在反编译过程中, IDA可以完全和操作者相互交互, 操作者可以通过对IDA的交互来指导IDA更好的反汇编, 比如人工指定编译器类型/版本, 开发库类型/版本等, 甚至IDA的反汇编结果也完全可定制, 函数名, 变量名, 结构定义, 数组定义等等完全可以由操作者自定义, 加强反汇编结果. 这样的交互能力在反汇编大型软件时显得尤为重要.
3)FLIRT
IDA另外一个卓越的能力是FLIRT(Fast Library Identification and Recognition Technology) - 快速的库鉴定/识别技术. 通常的反汇编软件对于各种开发库显得无能为力, 只能给出其反汇编结果, 而不能给出库函数的名称/意义, 这样的反汇编结果虽然是正确的, 但却是无意义的, 试想你希望看到strcmp被展开成大段的汇编代码吗? IDA使用FLIRT技术可以正确识别大多数的流行的开发库, 如MFC, OWL, BCL等等. 并在反汇编结果中正确标记出所调用的库函数名称. 这样就极大的提高了反汇编结果的可读性. 事实上, FLIRT能力是IDA可以被称为专业的反汇编工具的重要因素之一.
4) 嵌入式语言IDC
IDA能够称之为专业的另一个重要因素就是IDC - IDA的嵌入式语言, 类似于微软产品中的VB Script, IDC的存在极大的提高了IDA的扩展性, IDC本身是一种类C的语言, 简单易学, 一方面使得IDA中很多的自动化的任务可以交由IDC来完成, 另一方面, 一些特殊反汇编任务需要IDC的协助, 如对代码段进行加密的程序, 可以用IDC先写一段解密的代码, 在解密后再反汇编就可以得到正确的反汇编结果.
5) 用户界面
作为交互式的反汇编工具, IDA的用户界面则显得非常重要, 早期版本的IDA使用了文本模式的Borland窗口界面(类似于Borland C++ 3.1的风格), 新版本则同时提供了Windows下的界面, 相比较而言, 我更喜欢Windows下的界面(信息量更大), IDA的用户界面为IDA的交互特性提供了很好的支持. 使得用户可以充分发挥IDA的交互能力.
6)其他特性
IDA在提供专业的反汇编能力的同时, 也同时提供了很多相当优秀的辅助功能, 这里提两点: 文件补丁的制作和动态调试.
IDA在反汇编的结果中提供了修改能力, 可以对任意看到的结果进行修改, 操作符, 操作数, 甚至是完整的指令, 但对于大多数的文件格式, IDA不支持直接存盘(只提供对DOS下EXE文件的修改存盘支持), 只能存成一个补丁文件, 补丁文件给出原文件和修改后文件的二进制差异, 补丁文件是文本格式, 以便于发布.
动态调试本不属于IDA这个静态反汇编工具的范畴(它是SoftIce的强项), 但由于动态调试与静态反汇编本身的紧密联系, 新版本的IDA提供了动态调试的支持, 这个版本以后, IDA已不再是一个单纯的静态反汇编工具了.
7)缺陷
IDA也不是十全十美, 其最大的缺陷是其反汇编的速度, 由于各种高级功能的引进, IDA在反汇编速度一项上, 落后其他大多数反汇编工具, 虽然IDA引入了后台反汇编机制, 但较慢的反汇编速度仍然成为IDA被批评的最主要因素.
另一个缺陷来自于用户界面, 由于IDA的强大交互性, 导致IDA的界面过于专业, 大量的窗口, 反汇编术语可能导致初级用户的无所适从, 但反过来也可以说, 这样的用户界面又再次加强了IDA在专业领域的地位.
8)结论
专业的反汇编工具, 不适于初级用户.
1)概述
从IDA的名字可以看出, IDA的最主要的两个特性是交互(Interactive)和多处理器(Multi-Processor). 多处理器特性容易理解, 是指IDA可以反汇编多种处理器平台上的软件产品(但注意IDA本身是运行于Windows下的), 基本上, IDA支持所有常见的通用处理器. 比如可以在Windows平台下使用IDA来反汇编运行于MIPS平台的PocketPC程序, 这种交叉反汇编能力给使用者带来极大的便利.
2) 交互
IDA的另一个最重要的特性之一是其"交互"的工作方式, 一般的反汇编工具在反汇编过程中总会遇到其"不能理解"的代码, 或者说不能产生便于理解,易读的反汇编结果, 原因是现在的软件编译器众多, 各种开发库更是花样百出, 在IDA不能理解这些因素时, 操作者(运行IDA的人)的指令显得尤为重要, 在反编译过程中, IDA可以完全和操作者相互交互, 操作者可以通过对IDA的交互来指导IDA更好的反汇编, 比如人工指定编译器类型/版本, 开发库类型/版本等, 甚至IDA的反汇编结果也完全可定制, 函数名, 变量名, 结构定义, 数组定义等等完全可以由操作者自定义, 加强反汇编结果. 这样的交互能力在反汇编大型软件时显得尤为重要.
3)FLIRT
IDA另外一个卓越的能力是FLIRT(Fast Library Identification and Recognition Technology) - 快速的库鉴定/识别技术. 通常的反汇编软件对于各种开发库显得无能为力, 只能给出其反汇编结果, 而不能给出库函数的名称/意义, 这样的反汇编结果虽然是正确的, 但却是无意义的, 试想你希望看到strcmp被展开成大段的汇编代码吗? IDA使用FLIRT技术可以正确识别大多数的流行的开发库, 如MFC, OWL, BCL等等. 并在反汇编结果中正确标记出所调用的库函数名称. 这样就极大的提高了反汇编结果的可读性. 事实上, FLIRT能力是IDA可以被称为专业的反汇编工具的重要因素之一.
4) 嵌入式语言IDC
IDA能够称之为专业的另一个重要因素就是IDC - IDA的嵌入式语言, 类似于微软产品中的VB Script, IDC的存在极大的提高了IDA的扩展性, IDC本身是一种类C的语言, 简单易学, 一方面使得IDA中很多的自动化的任务可以交由IDC来完成, 另一方面, 一些特殊反汇编任务需要IDC的协助, 如对代码段进行加密的程序, 可以用IDC先写一段解密的代码, 在解密后再反汇编就可以得到正确的反汇编结果.
5) 用户界面
作为交互式的反汇编工具, IDA的用户界面则显得非常重要, 早期版本的IDA使用了文本模式的Borland窗口界面(类似于Borland C++ 3.1的风格), 新版本则同时提供了Windows下的界面, 相比较而言, 我更喜欢Windows下的界面(信息量更大), IDA的用户界面为IDA的交互特性提供了很好的支持. 使得用户可以充分发挥IDA的交互能力.
6)其他特性
IDA在提供专业的反汇编能力的同时, 也同时提供了很多相当优秀的辅助功能, 这里提两点: 文件补丁的制作和动态调试.
IDA在反汇编的结果中提供了修改能力, 可以对任意看到的结果进行修改, 操作符, 操作数, 甚至是完整的指令, 但对于大多数的文件格式, IDA不支持直接存盘(只提供对DOS下EXE文件的修改存盘支持), 只能存成一个补丁文件, 补丁文件给出原文件和修改后文件的二进制差异, 补丁文件是文本格式, 以便于发布.
动态调试本不属于IDA这个静态反汇编工具的范畴(它是SoftIce的强项), 但由于动态调试与静态反汇编本身的紧密联系, 新版本的IDA提供了动态调试的支持, 这个版本以后, IDA已不再是一个单纯的静态反汇编工具了.
7)缺陷
IDA也不是十全十美, 其最大的缺陷是其反汇编的速度, 由于各种高级功能的引进, IDA在反汇编速度一项上, 落后其他大多数反汇编工具, 虽然IDA引入了后台反汇编机制, 但较慢的反汇编速度仍然成为IDA被批评的最主要因素.
另一个缺陷来自于用户界面, 由于IDA的强大交互性, 导致IDA的界面过于专业, 大量的窗口, 反汇编术语可能导致初级用户的无所适从, 但反过来也可以说, 这样的用户界面又再次加强了IDA在专业领域的地位.
8)结论
专业的反汇编工具, 不适于初级用户.
2003/05/09
Remote Control Software - VNC
VNC(Virtual Network Computing) is a platform independent remote control software from AT&T lab which support MS Windows, X Windows and Mac oprate system. It's the easiest remote software i've used.
Using VNC, you can:
1) Remote control your other computers. The main feature of VNC is remote controling. You need install the server package of VNC in server side(controled computer). In client side, no install is needed. Just run the viewer application is OK. The usage of VNC is very easy, You can control remote computer in window or fullscreen mode. Even you can remote shutdown the other computer.
2) Remote monitor your other computers. As an additional feature, you can use VNC as a remote monitor software watching the remote computers. To do this, just uncheck the local keyboard/mouse checkbox in VNC option dialog.
TIP: To control remote computer in screen saved mode or locked mode, you must install VNC as service by VNC administration tools in VNC start program menu.
TIP: To lock or unlock the remote computer, you must send Ctrl-Alt-Del to the remote, but this key is keeped by local computer, so you can only send Ctrl-Alt-Del by select "send ctrl-alt-del" from VNC system menu.
There are some derived software from standard VNC which add some useful features and bugless. TightVNC is a good one which support JAVA technology that can let any client access to VNC server by IE, That is say, NO client software is needed at client computer. Very nice feature! TightVNC is published under GNU license, you can get it from SourceForge.
Using VNC, you can:
1) Remote control your other computers. The main feature of VNC is remote controling. You need install the server package of VNC in server side(controled computer). In client side, no install is needed. Just run the viewer application is OK. The usage of VNC is very easy, You can control remote computer in window or fullscreen mode. Even you can remote shutdown the other computer.
2) Remote monitor your other computers. As an additional feature, you can use VNC as a remote monitor software watching the remote computers. To do this, just uncheck the local keyboard/mouse checkbox in VNC option dialog.
TIP: To control remote computer in screen saved mode or locked mode, you must install VNC as service by VNC administration tools in VNC start program menu.
TIP: To lock or unlock the remote computer, you must send Ctrl-Alt-Del to the remote, but this key is keeped by local computer, so you can only send Ctrl-Alt-Del by select "send ctrl-alt-del" from VNC system menu.
There are some derived software from standard VNC which add some useful features and bugless. TightVNC is a good one which support JAVA technology that can let any client access to VNC server by IE, That is say, NO client software is needed at client computer. Very nice feature! TightVNC is published under GNU license, you can get it from SourceForge.
2003/05/08
FreeLAMP安装指南
作为互联网上应用非常广泛的一套WEB服务器系统, FreeLAMP因为其为自由软件, 源码公开而有着其他WEB服务器系统无法比拟的优势, 这里L指Linux, A是Apache(web 服务器), M-MySql(数据库), P为PHP(动态网页解释语言), 本站也是基于这套系统(用win2000代替了Linux)而开发, 由于OpenSource, 互联网上也有相当多的基于LAMP的开源软件,因而赋予了LAMP极大的扩展性. 下面结合本站给出这个系统的安装方法, 我的计算机是WIN2000, 所以下面将以WIN2000为例来说明.
1) MySql的安装
这个是一个免费的数据库软件, 在官方网站 http://www.mysql.com/downloads/mysql-3.23.html 下载它的3.23版本(注意找到windows的版本), 大概为12M左右. 然后安装, 建议安装到C:/MySql目录. 安装完后在DOS窗口中运行c:\MySql\bin\mysqld-nt -install,这会将MySql安装为WIN2000的一个服务, 然后net start MySql启动服务, MySql就算安装完了. (可以在控制面板的'管理工具/服务'中看一下MySql服务是否存在, 并且双击它应该看到它的启动类型是'自动', 服务状态是'已启动'就对了).
2) PHP的安装
PHP是个轻量级的服务器端脚本语言, 在它的官方网站 http://www.php.net/downloads.php 下下载windows binaries的4.2.2版本(我运行的是4.2.1版本, 估计没有什么差别). 注意一定要下载那个5M的版本, 不是那个900多K的. PHP没有安装程序, 直接解压缩到C:/PHP4目录即可. 然后将c:/php4下的php.ini-dist文件拷贝到winnt目录下(就是你的WIN2000的安装目录), 改名为php.ini. 将c:/php4下的php4ts.dll和C:/php4/extensions下的php_gd.dll拷贝到winnt/system32目录下 (切记!!!).
3) Apache的安装
最后说这个web服务器的安装, 其实这个论坛也是可以在IIS(微软的web服务器)下面跑的, 但是由于FreeLAMP是比较经典的搭配, 所以Apache用的更多一些, 和PHP的配合也更好一些.
Apache有1.3和2.0两个大版本,建议安装1.3的版本, 因为这个版本已经经过全世界大量的web服务器的验证, 非常稳定, 2.0版本则好象和其它软件配合上有些问题. 在Apache的官方网页 http://www.apache.org/dist/httpd/binaries/win32/ 下download 1.3.26的win32版本(只有一个EXE文件,5M左右). 运行安装程序, 安装过程很简单, 基本上一路回车下来, 这个的安装目录无所谓.
安装后,需要修改Apache的参数, 运行Start菜单/程序菜单中的Apache HTTP server下的Configure Apache Server中的Edit...Httpd.conf..., 会打开Apache的配置文件Httpd.conf, 做以下修改:
1)找到一大堆#LoadModule地方, 在下面加上一行LoadModule php4_module c:/php4/sapi/php4apache.dll 这个用来加载php4模块.
2)紧接着下面会有一大堆的AddModule的地方, 在这里的最后加上一行AddModule mod_php4.c
3)找到ServerName一项, 改成你想让Apache显示的服务器名字, 就是你的域名, 如果没有的话, 可以用ip地址, 这个名字在安装Apache时其实已经问过你了, 这里也可以改.
4)找到DocumentRoot一项, 改成你的web服务器的主目录, 我的是D:/WEB/root, 你可以随便, 不过这个目录定下了后, web的程序就要放在这个目录下.
5)找到DirectoryIndex一项,将原来的DirectoryIndex index.html改为DirectoryIndex index.html index.php index.htm index.shtml
6)找到AddType的地方, 在原来的AddType application/x-tar .tgz下面加上两行, 一行Addtype application/x-httpd-php .php, 一行Addtype application/x-httpd-php .php3
以上更改是Apache论坛能否正常运行的关键, 存盘退出后, 就可以启动Apache了. 运行Start菜单/程序菜单中的Apache HTTP server下的Control Apache Server/Start就可以了, Apache也应该是作为WIN2000的服务运行的, 通过和MySql一样的方法在控制面板中验证一番. 如果你的Apache在安装完后已经自动运行了, 那么这时在做完所有的设置后, 应该重启动一次Apache, 也就是在Control Apache Server中先stop再start一次.
以上是三个最基本的软件AMP的安装, 还有下面几个辅助的软件, 这几个软件可以装, 也可以不装.
1)ZendOptimizer, 一个PHP的缓冲程序, 用来提高PHP的响应速度.
它的安装很简单, 基本上是一路回车就可以了, 注意安装时, ZendOptimizer会自动检测Apache和php的版本和安装路径, 如果自动检测不到, 或者自动检测的信息不正确, ZendOptimizer会提示,你可以手动修改它的信息. 安装完成后需要重新启动Apache.
2)PhpMyAdmin, 一个MySql数据库的管理程序, 就是用PHP写的, 用它来管理MySql数据库非常方便.
由于phpMyadmin的功能非常强大, 所以必须对phpMyadmin的访问加以限制, 可以通过Apache的目录权限控制来实现, apache会在要访问的每个目录中寻找.htaccess文件, 用文件中的设置来改变缺省的对所有目录设置的访问权限, 但由于在windows下很难建立这个文件(因为文件名以.开头), 所以可以在Apache的配置文件中改变这个名字, 在配置文件中将AccessFileName设置改变为AccessFileName _apache_.hta, 同时在web主目录的缺省权限设置中, 要允许通过AccessFile改变权限, 所以要在配置文件的中将AllowOverride None一项改为AllowOverride AuthConfig.
下面就要给每个目录分配权限了, 权限控制文件中(在我们这里是_apache_.hta)写入
AuthName "PhpMyAdmin Auth-Login"
AuthType basic
AuthUserFile _apache_.pas
require valid-user
其中AuthUserFile指的是用户及相应密码所在的文件, 这个文件应该放在Apache的安装目录下, 如C:/Program Files/Apache Group/Apache, 这个文件是通过Apache/bin/htpasswd小程序生成的, 如你想生成用户wenshu, 密码为123, 只需运行htpasswd -c _apache_.pas wenshu, 然后输入123两遍即可生成用户密码文件_apache_.pas, 然后将这个文件移到Apache的安装目录下就可以了.
以上的都安装完后, 就可以安装基本web应用了, 如论坛程序, 不过安装之前最好验证一下这些软件安装的有无问题, 写一个文本文件,只有一行
存为D:/WEB/root/index.php(如果的web根目录不一样的话, 请更改), 然后在IE的地址栏输入http://你的ip地址, 应该可以看到php的欢迎界面, 有一大堆表格, 如果你看到的话, 恭喜你, 安装完全正确!
FAQ:
1) 无法启动MySql service
如果你的MySql没有安装在C:\Mysql目录, 那么你就必须在windows目录下创建一个My.INI文件来告诉windows你的MySql的安装路径, 那样才能启动MySql服务, 具体文件内容可以参考MySql帮助文件.
1) MySql的安装
这个是一个免费的数据库软件, 在官方网站 http://www.mysql.com/downloads/mysql-3.23.html 下载它的3.23版本(注意找到windows的版本), 大概为12M左右. 然后安装, 建议安装到C:/MySql目录. 安装完后在DOS窗口中运行c:\MySql\bin\mysqld-nt -install,这会将MySql安装为WIN2000的一个服务, 然后net start MySql启动服务, MySql就算安装完了. (可以在控制面板的'管理工具/服务'中看一下MySql服务是否存在, 并且双击它应该看到它的启动类型是'自动', 服务状态是'已启动'就对了).
2) PHP的安装
PHP是个轻量级的服务器端脚本语言, 在它的官方网站 http://www.php.net/downloads.php 下下载windows binaries的4.2.2版本(我运行的是4.2.1版本, 估计没有什么差别). 注意一定要下载那个5M的版本, 不是那个900多K的. PHP没有安装程序, 直接解压缩到C:/PHP4目录即可. 然后将c:/php4下的php.ini-dist文件拷贝到winnt目录下(就是你的WIN2000的安装目录), 改名为php.ini. 将c:/php4下的php4ts.dll和C:/php4/extensions下的php_gd.dll拷贝到winnt/system32目录下 (切记!!!).
3) Apache的安装
最后说这个web服务器的安装, 其实这个论坛也是可以在IIS(微软的web服务器)下面跑的, 但是由于FreeLAMP是比较经典的搭配, 所以Apache用的更多一些, 和PHP的配合也更好一些.
Apache有1.3和2.0两个大版本,建议安装1.3的版本, 因为这个版本已经经过全世界大量的web服务器的验证, 非常稳定, 2.0版本则好象和其它软件配合上有些问题. 在Apache的官方网页 http://www.apache.org/dist/httpd/binaries/win32/ 下download 1.3.26的win32版本(只有一个EXE文件,5M左右). 运行安装程序, 安装过程很简单, 基本上一路回车下来, 这个的安装目录无所谓.
安装后,需要修改Apache的参数, 运行Start菜单/程序菜单中的Apache HTTP server下的Configure Apache Server中的Edit...Httpd.conf..., 会打开Apache的配置文件Httpd.conf, 做以下修改:
1)找到一大堆#LoadModule地方, 在下面加上一行LoadModule php4_module c:/php4/sapi/php4apache.dll 这个用来加载php4模块.
2)紧接着下面会有一大堆的AddModule的地方, 在这里的最后加上一行AddModule mod_php4.c
3)找到ServerName一项, 改成你想让Apache显示的服务器名字, 就是你的域名, 如果没有的话, 可以用ip地址, 这个名字在安装Apache时其实已经问过你了, 这里也可以改.
4)找到DocumentRoot一项, 改成你的web服务器的主目录, 我的是D:/WEB/root, 你可以随便, 不过这个目录定下了后, web的程序就要放在这个目录下.
5)找到DirectoryIndex一项,将原来的DirectoryIndex index.html改为DirectoryIndex index.html index.php index.htm index.shtml
6)找到AddType的地方, 在原来的AddType application/x-tar .tgz下面加上两行, 一行Addtype application/x-httpd-php .php, 一行Addtype application/x-httpd-php .php3
以上更改是Apache论坛能否正常运行的关键, 存盘退出后, 就可以启动Apache了. 运行Start菜单/程序菜单中的Apache HTTP server下的Control Apache Server/Start就可以了, Apache也应该是作为WIN2000的服务运行的, 通过和MySql一样的方法在控制面板中验证一番. 如果你的Apache在安装完后已经自动运行了, 那么这时在做完所有的设置后, 应该重启动一次Apache, 也就是在Control Apache Server中先stop再start一次.
以上是三个最基本的软件AMP的安装, 还有下面几个辅助的软件, 这几个软件可以装, 也可以不装.
1)ZendOptimizer, 一个PHP的缓冲程序, 用来提高PHP的响应速度.
它的安装很简单, 基本上是一路回车就可以了, 注意安装时, ZendOptimizer会自动检测Apache和php的版本和安装路径, 如果自动检测不到, 或者自动检测的信息不正确, ZendOptimizer会提示,你可以手动修改它的信息. 安装完成后需要重新启动Apache.
2)PhpMyAdmin, 一个MySql数据库的管理程序, 就是用PHP写的, 用它来管理MySql数据库非常方便.
由于phpMyadmin的功能非常强大, 所以必须对phpMyadmin的访问加以限制, 可以通过Apache的目录权限控制来实现, apache会在要访问的每个目录中寻找.htaccess文件, 用文件中的设置来改变缺省的对所有目录设置的访问权限, 但由于在windows下很难建立这个文件(因为文件名以.开头), 所以可以在Apache的配置文件中改变这个名字, 在配置文件中将AccessFileName设置改变为AccessFileName _apache_.hta, 同时在web主目录的缺省权限设置中, 要允许通过AccessFile改变权限, 所以要在配置文件的
下面就要给每个目录分配权限了, 权限控制文件中(在我们这里是_apache_.hta)写入
AuthName "PhpMyAdmin Auth-Login"
AuthType basic
AuthUserFile _apache_.pas
require valid-user
其中AuthUserFile指的是用户及相应密码所在的文件, 这个文件应该放在Apache的安装目录下, 如C:/Program Files/Apache Group/Apache, 这个文件是通过Apache/bin/htpasswd小程序生成的, 如你想生成用户wenshu, 密码为123, 只需运行htpasswd -c _apache_.pas wenshu, 然后输入123两遍即可生成用户密码文件_apache_.pas, 然后将这个文件移到Apache的安装目录下就可以了.
以上的都安装完后, 就可以安装基本web应用了, 如论坛程序, 不过安装之前最好验证一下这些软件安装的有无问题, 写一个文本文件,只有一行
<?php
phpinfo();
?>
存为D:/WEB/root/index.php(如果的web根目录不一样的话, 请更改), 然后在IE的地址栏输入http://你的ip地址, 应该可以看到php的欢迎界面, 有一大堆表格, 如果你看到的话, 恭喜你, 安装完全正确!
FAQ:
1) 无法启动MySql service
如果你的MySql没有安装在C:\Mysql目录, 那么你就必须在windows目录下创建一个My.INI文件来告诉windows你的MySql的安装路径, 那样才能启动MySql服务, 具体文件内容可以参考MySql帮助文件.
2003/05/06
DVDRip
Today, with the high apeed access of Internet, the strong power of PC, We can enjoy various films in our personal computer, like in cinema before. All we need is a pc connected to Internet.
The dvdrip which mostly converted from DVD, and compressed with MPEG4 is the best choice for us. and it's the focus of this article too.
1) Where to get?
The answer is Internet, the best approach is use some P2P software like Kala, Morphues etc. I strongly recommend eMule, a very nice eDonkey(a famous P2P software) client software, high speed, more resource, easy to use, no ads and is published under GNU, which means it's very open and developed quickly! The newest eMule version is 0.27, you can download it from sourceforge. even it's source code if you like.
After install eMule, you need to connect to eDonkey world by click the connect button at the top-left of the eMule main windows. Then you can search anything in eDonkey world, of cource include dvdrip too. In the search result window, you can download anything you want. That's all.
2) How to play?
Usualy you can play the dvdrip by Microsoft media player, I recommed media player 6.4 (normaly in "c:\program file\Windows Media Player\mplayer2.exe") which is more stable and less resource occupation. Most dvdrip downloaded from Internet is divx compressed in avi format. some new dvdrip maybe compressed by xvid(not divx). Divx and xvid are both advanced video codec of MPEG4, so you must install codec software to support media player, In audio, There are also some codec like ac3, mp3 need be installed. In my experiense, Nimo codec pack is good choice which contains almost all codec you need. But unfortunately some codecs are NOT compatible each other. So you must manual install codecs you need from Nimo codec pack, as I know, if you select "Divx5 direct show" codec, you will get a install error message. But it's no bader impact.
3) Subtitles?
Vobsub which contained in Nimo codec pack is a subtitle plugin for media player, so if you view dvdrip NOT in your natural language, you need install this software . Download subtitle file from Internet(There are some website contains thousands of subtitles). Decompres and save the subtitle file to the direcotory which contains the dvdrip file, and rename the subtitle file to the dvdrip filename(not include the extname). This is very important. After do that, use
media player to open the dvdrip file, you will see the subtitle you want.
4) Other tools?
Some little tool like GSpot, Divfix, AviPreview is must have, GSpot can view an avi file's internal structure include which video and audio codec is used. When you can not play a dvdrip file, you will find GSpot is very useful to help you find the answer.
Divfix(like rmfix) can fix some bad divx file which is also useful when you can not download a dvdrip fully.
AviPreview can extract partial frames from incomplete avi file to new avi file, very useful when you downloading a large avi file and want to preview it before complete the downloading.
FAQ:
1) No sound/ No picture/No sub?
Install Nimo, If that no use, Open the rip file with GSpot, see which part of the file can not be rendered.
2)Sub only dispaly few seconds
If you use ffdShow to decode divx file, maybe get this result. Deselect all divx format(3,4,5)in ffdshow setting dialog. Use Divx 5 to decode the divx file. That will ok.
3) CPU too Slow to play the movie?
You can use BSPlayer - a very fast divx player in the world,
in my computer - Celeon 433 -, BSPlayer can play most divx movie smoothly even with ac3 audio.
4)Audio is ok, but video is full of green mask?
It's because of some old version codec's bug like ffdshow or divx. you should download the newest codec.
The dvdrip which mostly converted from DVD, and compressed with MPEG4 is the best choice for us. and it's the focus of this article too.
1) Where to get?
The answer is Internet, the best approach is use some P2P software like Kala, Morphues etc. I strongly recommend eMule, a very nice eDonkey(a famous P2P software) client software, high speed, more resource, easy to use, no ads and is published under GNU, which means it's very open and developed quickly! The newest eMule version is 0.27, you can download it from sourceforge. even it's source code if you like.
After install eMule, you need to connect to eDonkey world by click the connect button at the top-left of the eMule main windows. Then you can search anything in eDonkey world, of cource include dvdrip too. In the search result window, you can download anything you want. That's all.
2) How to play?
Usualy you can play the dvdrip by Microsoft media player, I recommed media player 6.4 (normaly in "c:\program file\Windows Media Player\mplayer2.exe") which is more stable and less resource occupation. Most dvdrip downloaded from Internet is divx compressed in avi format. some new dvdrip maybe compressed by xvid(not divx). Divx and xvid are both advanced video codec of MPEG4, so you must install codec software to support media player, In audio, There are also some codec like ac3, mp3 need be installed. In my experiense, Nimo codec pack is good choice which contains almost all codec you need. But unfortunately some codecs are NOT compatible each other. So you must manual install codecs you need from Nimo codec pack, as I know, if you select "Divx5 direct show" codec, you will get a install error message. But it's no bader impact.
3) Subtitles?
Vobsub which contained in Nimo codec pack is a subtitle plugin for media player, so if you view dvdrip NOT in your natural language, you need install this software . Download subtitle file from Internet(There are some website contains thousands of subtitles). Decompres and save the subtitle file to the direcotory which contains the dvdrip file, and rename the subtitle file to the dvdrip filename(not include the extname). This is very important. After do that, use
media player to open the dvdrip file, you will see the subtitle you want.
4) Other tools?
Some little tool like GSpot, Divfix, AviPreview is must have, GSpot can view an avi file's internal structure include which video and audio codec is used. When you can not play a dvdrip file, you will find GSpot is very useful to help you find the answer.
Divfix(like rmfix) can fix some bad divx file which is also useful when you can not download a dvdrip fully.
AviPreview can extract partial frames from incomplete avi file to new avi file, very useful when you downloading a large avi file and want to preview it before complete the downloading.
FAQ:
1) No sound/ No picture/No sub?
Install Nimo, If that no use, Open the rip file with GSpot, see which part of the file can not be rendered.
2)Sub only dispaly few seconds
If you use ffdShow to decode divx file, maybe get this result. Deselect all divx format(3,4,5)in ffdshow setting dialog. Use Divx 5 to decode the divx file. That will ok.
3) CPU too Slow to play the movie?
You can use BSPlayer - a very fast divx player in the world,
in my computer - Celeon 433 -, BSPlayer can play most divx movie smoothly even with ac3 audio.
4)Audio is ok, but video is full of green mask?
It's because of some old version codec's bug like ffdshow or divx. you should download the newest codec.
订阅:
博文 (Atom)