最近发现的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有时断的不完全准确,这时可以用页模式辅助一下。
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)结论
专业的反汇编工具, 不适于初级用户.
订阅:
博文 (Atom)