在某博客上上看见好多人分享自己的软件使用经验──工具癖系列。我也手痒写了一篇。并没有传授什么经验之类。只能算写了一篇回忆录。
可是最终人家不愿意发全篇,没关系。我也不稀罕,发自己blog不就得了。
自我介绍
我 叫doskey,认识我的人都叫我dos。武汉人,目前在北京工作生活。80年代生人,电脑爱好者,也喜欢游戏和摄影。92年拥有第一台PC,于是和电脑 结下不解之缘。94年开始自学编程。编程是我的爱好,现在成为我的工作。96年开始上网,算是国内80后中比较早的网民。从最早使用的MS-DOS 3.30到现在的Windows 7,我以为自己永远都会是M$支持者。直到我拥有了第一台Mac。我的观点彻底改变了。
硬件
92年底, 老爸给我买了第一台PC,配置是AMD80386DX-40,4M内存,210M硬盘,512K显存的Trident 9000c显卡(8900阉割版),和一台杂牌14寸.39彩显,这个时候,我用的MS-DOS 3.30~5.0。
94年,老爸给我买了第一台2x光驱和一块准16位声卡,这个时候我在使用MS-DOS 6.0和Windows 3.2中文版。
随后,96年,我的电脑升级到Cyrix686-166(133Mhz),32M内存,4x SONY光驱,和Windows 95。
接着是99年升级Intel Pentium MMX 233,并且买了一块8.4G的硬盘,还是使用的Windows 95。
02年都大学的时候,自己赚钱买的第一台机器是Pentium 4 1.7G 512M内存,40G硬盘,使用Windows 98、2000和后来的XP和2003。
04年,第一份工作,公司给我配了一台ASUS笔记本(不是自己的,型号不记得了),这也是我的第一台笔记本。这 个时候,我使用的软件和硬件基本上都是主流的了。
07年1月,第一次跳槽,自己购买了Lenovo ThinkPad X60高配,这是自己购买的第一台笔记本。
然后就是今年7月购买的新MacBook Pro。
现在,Pentium 4 1.7G这台我妈妈在使用,每天都在网上QQ游戏和PPStream。X60的电池坏了,屏幕灯管也坏了,修过后我爸爸在用。我自己在用MacBook Pro,老婆在用SONY TX16C(等老婆的机器坏掉,就准备给老婆换MacBook AIR了)。:)
心路历程
小时候家里条件不好,除了第一台电脑,用的基本上都是过时的硬件。老爸带我入门,之后所有的计算机知识都是自学的。以前父母一直在身后支持我。现在又多了一个老婆支持。:)
小 学开始学习C、BASIC。初一过等级考试二级C,后自学了PASCAL。高中自学C++、汇编,被学校评为计算机方面重点培养对象。随后爱上了软件破解。对逆向分析(二进制->源码)一往情深。大学的时候一直在做破解、逆向分析方面的工作打工赚钱,后来和朋友一起开发网游外挂。大学还差半年毕业 就出来工作了。也是一直从事逆向分析方面的工作。
04年开始做Windows驱动开发,之后一直致力于Windows下的主动防御、防火墙和磁盘 级安全产品设计与开发。目前效力于一家美国公司,带领一个小团队开发磁盘级安全产品。
PC篇
DOS年代
就 像自我介绍中说的。我是从MS-DOS 3.30开始使用的。MS-DOS 3.30的分区大小限制是32M,210M的硬盘得要分好多个分区,这个印象最深了。那个时候还很小,只知道打游戏。最喜欢的是大富翁2,我玩的第一 个中文游戏。后来有了光驱,可以去买25RMB一张的D盘。都是那种游戏大杂烩。慢慢的,我也学会如何改游戏。最早用GB4、 Debug+GameTools 3.0。后用来用Game Wizard 2.0,这可是当时改游戏的神器。后来出现了FPE,它彻底改变了游戏修改的规则。:D 当然,除了这些修改工具,我还会使用PC Tools 5.0,这个是静态修改利器。不管是否用来改游戏,当年人手一份的吧。常用的软件很多,什么都尝试过,记得比较清楚的有这些:诺顿的DOS工具 箱,NDD、NC等。看图利器QPEG、SEA 2.0等。中文系统,某神人用debug写的5.13i、金山UCDOS、微软的PDOS。编程工具:QBASIC、TC20、TC30、BC31。调试 器:TD、S-ICE 2.8、国产的TR(作者后来是我的老板)。那个时候我不太爱用Windows,比较习惯命令行。但是Windows还是有装,开始是用3.1,后来的 3.2简体中文版。里面都有安装Word 4.0、Excel 4.0。这个是我老爸主要用到的。
Windows 9x年代
我也进入了 Windows 9x年代。那个时候,我那些过时的硬件实在跑不起Windows 95这个庞然大物。我当时有两块200M左右的硬盘。最后在第一块硬盘上用DoubleSpace压缩过,然后勉强装下这个庞然大物,每次启动都要有很好 的耐心等待它启动完毕。我也不记得当时Windows 95用什么吸引了我,大概是为了Delphi 、VC和互联网吧。一次偶然的机会体验了一下Delphi 2.0,然后就深深爱上这种RAD模式的开发,可惜当时不太懂这些。因为Delphi 2.0,我后来自学了Pascal、Obj-Pascal,Delphi从2.0用到7.0。最后Delphi彻底被Borland玩完了。学VC、 MFC是后来有了大硬盘之后的事情了。
说到互联网。96年的时候,老爸给我买了一块内置的MODEM,33.6k的。记得很清楚是,内置MODEM占用IRQ,会导致声卡和其他硬件无法使用,但是它是我唯一的,也是仅由的一个MODEM。
那 时候的浏览器是Win95中IE 3.51和后来出的IE 4.0,也有尝试过Windows 3.1下的网景的浏览器,不说网景,因为那时候对它不熟悉,只知道它是一个浏览器、邮件客户端、HTML编辑器三合一的奇怪客户端。IE 4.0真是个庞然大物,40多M。我用3K/s的速度从微软网站下载回来。然后我的机器跑不动,只好删除。最后还是使用IE 3.51,用它用了很久很久。要知道,当时上网是15RMB一小时,加上一小时电话费可就更贵了。还好我家里的电话是包月的。后来换了Windows 97(Windows 95支持FAT32的版本)和Windows 98。WinMe和我不合拍,从来没装上过。
当时使用的软件,记得的有这些。邮件客户端用的TheBat。下载用网络吸血鬼、和后来国产的网络蚂蚁。FlashGet算是很长寿的软件了,也是那个年代出来的。当时还很喜欢上电话拨号的BBS,因为家里的电话是包月的,武汉某BBS的双线BBS上总是有一个我挂在上面,也不记得当时在下载些什么。当然,上BBS,蓝波快件是必不可少的。虽然我不太爱读那些信件。那 时候可以访问的网站真的很少。当时的网络还分为Internet和Chintnet,也就是所谓的163和169。169是无法访问国外网站的。我家里用 的163。记得去办理电话上网后,电信会给一张小卡片。上面密密麻麻写了一些网址,还有好多IP地址。网址有Chintnet的,如武汉热线等。也有国外 网站如白宫网站、NBA等等等。IP地址基本上都是国内网站,它们都还没有域名呢。搜索引擎一直用Yahoo,那时候还没听说过Google。网 易163,免费邮箱在国内是第一家了,当然,它也是学的Hotmail的。当时每出一个新的免费邮箱,我和我老爸都会去注册一个。当时爱访问的网站有:瀛 海威、中华人民共和国外经贸部(囧),个人网站有:华军软件园、高春辉的下载站等几个,去下载一些小软件之类的。那时候比较热门的网络应用是 IRC和ICQ。IRC客户端用Win95中自带的Chat 2.0,多数中国人都去微软服务器的#china、#chinese、#侃大山等几个频道,里面也有很多外国人凑热闹。ICQ也是很热门的应用,认识的网 友都加到ICQ里面,方便交流。它是我使用的第一个IM软件。后来出来QICQ这个仿制品,我和我的网友们都不希去用它(现在用它也是迫于无奈,身边的人 都在用)。
当年我老爸特别想开一个类似现在阿里巴巴的网站,可是最终没有做起来。
我没怎么经历中国的互联网泡沫时期。那个时期,我是低迷期。家里环境每况愈下,再供不起我上网了。我离开了网络。好好读书,脚踏实地的在学各种技术。
学 习破解是一个偶然,当时在一张D盘中发现了台湾的煜男煌和软体蛀虫的破解教程(这两个名字估计已经没人记得了吧)。随后一发不可收拾。 Debug、S-ICE、TR等软件,太熟悉了,整天深深沉迷在里面。后来我自学了汇编,专门用来破解和修改游戏。用S-ICE直接改游戏代码,比改数据 来得有趣多了。
后来的Windows 98真的用了很久,在98上做破解太方便了。万能断点、TRW2000(TR的作者做的Windows版)、诸多自动脱壳机都只能在98上用。
那时候常用的软件调试器:S-ICE、TRW2000。
反汇编:W32DASM、IDAPro。
辅助工具太多了,就不在这里列出来了。我总是跟朋友说S-ICE和IDAPro就是我的左膀右臂,05年4月,S-ICE不更新了,等于断我左臂。呵呵。
XP年代
Windows XP出了稳定的破解版后我就开始用了。当时只有512内存,跑XP还是有点吃力的。但是XP的界面确实比9x、2000讨喜。XP一直用到09年。现在除了我在用Mac OS X,我的家人都还在用XP。
接 下来我来说说我常用的软件。网络软件:Firefox,我最喜欢的浏览器装,装了一堆插件,插件稍后介绍。Thunderbird,Mozllia的邮件 客户端。输入法,搜狗拼音,很多人说,你那个年代不都用五笔么?我告诉他们,如果你也跟我一样,每天在电脑前面12小时以上,持续这么多年,你肯定和我一 样,也是提笔忘字。字都不会写了,还谈什么五笔不五笔?囧。播放器用完美解码。看图工具Picasa。下载工具用迅雷自制特别版。照片处理用 Lightroom。IM的话,迫不得已只能用QQ,工作要用MSN。本地常用的就这些吧。
开发工具我用VS6、VS2005、VS2008,都只用VC,WDK。还有MASM32。内核级调试工具用Windbg替代了S-ICE。用户模式调试用Ollydbg。破解的话,右臂IDAPro还是在的,5.4还没拿到,不过也快拿到公家版的了。辅助工具一堆。
网络应用太多,只写写常用的吧。
Twitter每天必备,以前玩国饭否。后来不玩了,因为那时候不太喜欢被人follow。现在不喜欢follow别人,只follow认识的人。
Google的所有产品我都比较喜欢,如Google Reader、Gmail、Google Docs、Notebook,这些都是常用的。
相册有用Google Picasa、Flickr,虽然他们常年被封。
Mac篇
今年7月,我拥有了自己的第一台Mac,一台新款的MacBook Pro。从此,我开始了我的Mac Life。:D 很早的时候就听说过Mac很好,当时我确实是买不起。
买机器的时候,没有让水货商人帮我装任何软件。系统预装的Mac OS X 10.5.7。iLife ’09、iWork ’09。其他的软件都是自己慢慢摸索着安装的。因为以前没有接触过Linux和Unix。刚刚开始还真不习惯。两周过去,已经好了很多。
软件篇
Safari实在不太习惯。我还是使用Firefox,并且装了如下插件:
Adblock Plus – 广告过滤,几乎是Firefox用户必装的软件吧。
AutoProxy – 翻墙专用。
DownThemAll – 因为Mac下没有找到很好的下载工具,就先用它代替了。体积小,功能全。
Easy DragToGo – 一个中国MM打造的mini超级拖拽工具。超级好用。
FxIF – 查看图片的EXIF信息,如果你也是摄影爱好者,这个插件应该你也会喜欢。
Google Toolbar for FireFox – 众多功能集于一身的好用工具条。
Greasemonkey – 油猴,好用的自定义脚本工具。目前我只开了两个常用的脚本:Greased Lightbox(以Lightbox方式显示网页图片),Show btchina(让Firefox也可以显示btchina)
Personas for Firefox – Firefox换皮肤工具。Mozilla产品。
Tab Mix Lite CE – 标签控制。太好用了。不用形容。
其实,如果Safari如果拥有Adblock、DragToGo和Tab Mix这几个功能的话,我愿意完全转向Safari的。
邮件客户端使用系统自带的Mail,很好用,很强大。和iCal、地址簿完美结合。
其他软件都尽量使用Mac自带的。基本上都很好用。挑不出缺点。
Twitter客户端使用tweetie和twhirl。相比起来,我还是比较喜欢tweetie,全内置。如果可以隐藏dock图标就更好了。
视频播放使用Quick Time、Real Player和VLC。BT客户端使用uTorrent。文本编辑器装了个TextMate。IM安装了MSN、QQ和Skype。系统整理装了OnyX照片处理还是使用的Lightroom。
我还安装了iStat menu和iStat Pro。我很喜欢它的界面和功能。
开发工具也是必装的,Xcode、IDAPro for mac、反汇编工具otx。
翻墙篇
中国很牛X的互联网监管制度我就不多介绍了。在这里只是说说我的翻墙解决方案。
Windows下毕竟好办。XX门、X界之类的很多。还有后来的fxxkGFW。很可惜的,它因为开放了太多SSH帐号最后被Dreamhost封掉了。
前几个月,我在一个偶然的机会购买了一个很便宜的合租DH帐号,是一个独立的帐号,只有5个人在使用,在fxxkGFW被封掉后,它就成了我在Mac上翻墙的唯一工具。目前是使用Dreamhost的SSH帐号外加iSSH和Firefox插件AutoProxy来翻墙。
推荐熟人一起集资购买DH主机,既可以放文件,也可以当代理。价格便宜量又足。
特别篇
其实本来不太想写这些,希望你不要觉得Mac的使用者中又多了一个蛀虫。 但是我想这也是一种分享吧。
本 周开始研究Mac OS X的程序破解。算是小有进展。首先,Mac OS X程序基本上都很少有保护,不像Windows下的软件。其次,Mac OS X上的程序,用xcode自带的gdb可以很完整的进行调试。IDA的mac_server可以轻易的远程调试任何Mac程序。
Mac OS X上的Math-O格式,可以用IDA轻易反汇编。Math-O里面包含了所有的类名、过程/属性名,这些符号信息对cracker来说是很好的礼物。 otx也可以反汇编Math-O格式,可以直接给出接近源码的注释。配合一点点逆向分析的技巧,再稍微加工一下既可得到源码。和逆到和原作者的代码一模一 样。
另外,Interface Builder的nib文件,可以直接编辑,无论是否是编译过的版本。利用它可以轻易定位到任何按钮绑定的过程和控件绑定的属性。
这导致Mac下的破解几乎没有难度。任何一个Windows下的cracker,花2小时入个门,啥都挡不住他了。
这几天对几个知名软件的分析,也尝试着制作了这几个软件的Keygen。写Keygen的同时还顺便学习了一些Objective C。现在看着汇编写Objective C的源码基本上是没有问题了。折腾几天下来算是小有成就感。
当然,这仅仅是一个开始。还有更多东西要学,毕竟我才刚刚接触Mac。将来如果有机会,可能会写一篇Mac OS X的逆向分析教程。从编译后二进制文件的角度详细阐述一下Math-O和Objective C的内部原理。这些基本上都理解得差不多了。
结束语
我热爱我的工作。我也为我的兴趣爱好而骄傲。我的一家人:老婆、爸爸妈妈,外加两只猫都很支持我。我别无所求。我很快乐。
(完)
Doskey Lee
2009-08-08 凌晨3点
无法学习,只能膜拜
对大佬的经历,彻底无语~~
用ida5.5调试雪豹,基本上没断下来过,linux可以,老大是咋调试的?是我的ida或者是mac的版本不对吗?老大指点指点啊
IDA5.5的调试器无法在Snow Leopard上用的。必须要IDA 5.6以上的版本才支持Snow Leopard。或者你换回Leopard也可以,IDA5.5支持。