按:这是 Doskey 兄去年八月发来的稿子,迟迟未发,歉甚。今天有读者来信询问工具癖系列的下落,是以为覆。—— 编者
我叫 Doskey,认识我的人都叫我 Dos。武汉人,目前在北京。1980 年代生人,电脑爱好者,也喜欢游戏和摄影。1992 年拥有第一台 PC,于是和电脑结下不解之缘。
1994 年开始自学编程,开头是我的爱好,现在成为工作。1996 年开始上网,算是国内 80 后中比较早的网民。从最早使用的 MS-DOS 3.30 到现在的 Windows 7,我以为自己永远都会是 M$ 支持者。直到拥有了第一台 Mac 后,我的观点彻底改变了。
硬件
1992 年底,老爸给我买了第一台 PC,配置是 AMD 80386 DX-40,4 MB 内存,210 MB 硬盘,512 KB 显存的 Trident 9000c 显卡(8900 阉割版),和一台杂牌 14 寸 .39 彩显。那时用的操作系统是 MS-DOS 3.30 – 5.0。1994 年,老爸给我买了第一台 2x 光驱和一块准 16 位声卡,系统升到了 MS-DOS 6.0 和 Windows 3.2 中文版。随后,1996 年,我的电脑升级到 Cyrix 686-166 (133 Mhz),32 MB 内存,4x 索尼光驱,和 Windows 95。接着是 1999 年升级 Intel Pentium MMX 233,并且买了一块 8.4 GB 的硬盘,系统还是 Windows 95。2002 年读大学后,自己赚钱买的第一台机器是 Pentium 4 1.7G 512 MB 内存,40 GB 硬盘,使用 Windows 98、2000和后来的 XP 与 2003。2004 年得到了第一份工作,公司给我配了一台华硕笔记本(不是自己的,型号不记得了),这也是我的第一台笔记本。那时开始,我用的软硬件基本都是主流的了。2007 年 1 月第一次跳槽,自己买了联想 ThinkPad X60 高配,这是自购的第一台笔记本。然后就是今年 7 月买了新的 MacBook Pro。
现在,奔腾四 1.7GHz 这台我老妈在用,每天都在网上 QQ 游戏和 PPStream。X60 的电池坏了,屏幕灯管也坏了,修过后我老爸在用。我自己在用 MacBook Pro,老婆在用索尼 TX16C。(准备给她换 MacBook Air 了。:))
心路历程
小时候家里条件不好,除了第一台电脑,用的基本上都是过时的硬件。老爸带我入门,之后所有的电脑知识都是自学的。以前父母一直在身后支持我。现在又多了一个老婆支持。:)
小学开始学 C、BASIC。初一过等级考试二级 C,后自学了 PASCAL。高中自学 C++、汇编,被学校评为电脑方面的重点培养对象,随后爱上了软件破解。对逆向分析(二进制 -> 源码)一往情深。大学时一直在做破解、逆向分析方面的工作赚钱,后来和朋友一起开发网游外挂。大学还差半年毕业就出来工作了。也是一直从事逆向分析方面的工作。
2004 年开始做 Windows 驱动开发,之后一直致力于Windows 下的主动防御、防火墙和磁盘级安全产品设计与开发。曾为奇虎开发了 360 保险箱,为 COMODO 开发了 DiskShield 等产品。目前仍然效力于 COMODO 中国研发中心,带领一个十几人团队开发一款 Windows 下的重量级磁盘安全产品。顺便透露一个内部消息,听 COMODO 的行政总裁 Mr. Melih 说,目前 COMODO 已经在路线图上计划了 Mac OS X 上的互联网安全产品。我们拭目以待吧 :)。
PC 篇
DOS 年代
就像自我介绍中说的。我是从 MS-DOS 3.30 开始使用的。MS-DOS 3.30 的分区大小限制是 32 MB,210 MB 的硬盘得要分好多个分区,这个印象最深了。那个时候还很小,只知道打游戏。最喜欢的当然是大富翁 2,我玩的第一个中文游戏。后来有了光驱,可以去买 25 RMB 一张的 D 盘。都是那种游戏大杂烩。慢慢的,我也学会如何改游戏。最早用 GB4、Debug+GameTools 3.0。后用来用 Game Wizard 2.0,这可是当时改游戏的神器。后来出现了 FPE,它彻底改变了游戏修改的规则。:D 当然,除了这些修改工具,我还会使用 PC Tools 5.0,这个是静态修改利器。不管是否用来改游戏,当年人手一份的吧。常用的软件很多,什么都尝试过,记得比较清楚的有这些:诺顿的 DOS 工具箱,NDD、NC 等。看图利器 QPEG、SEA 2.0 等。中文系统,某神人用 debug 写的 2.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 这个庞然大物。我当时有两块 200 MB 左右的硬盘。最后在第一块硬盘上用 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.6 k 的。记得很清楚是,内置 modem 占用 IRQ,会导致声卡和其他硬件无法使用,但它是我仅有的一个 modem。
那时候的浏览器是 Win95 中的 IE 3.51 和后来出的 IE 4.0,也有尝试过 Windows 3.1 下的网景浏览器。不说网景,因为那时候对它不熟悉,只知道它是一个浏览器、邮件客户端、HTML 编辑器三合一的奇怪客户端。IE 4.0 真是个庞然大物,40 多 M。我用 3 KB/s 的速度从微软网站下载回来。然后我的机器跑不动,只好删除。最后还是使用 IE 3.51,用它用了很久很久。要知道,当时上网是 15 RMB 一小时,加上一小时电话费可就更贵了。还好我家里的电话是包月的。后来换了 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 MB 内存,跑 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 篇
今年七月,我拥有了自己的第一台 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 打造的迷你超级拖拽工具。超级好用。
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 图标就更好了。
视频播放使用 QuickTime、Real Player 和 VLC。BT 客户端使用 uTorrent。文本编辑器装了个 TextMate。IM 安装了 MSN、QQ 和 Skype。系统整理装了 OnyX,照片处理还是用 Lightroom。
我还安装了 iStat menu 和 iStat Pro。我很喜欢它的界面和功能。开发工具也是必装的,Xcode、IDAPro for mac、反汇编工具 otx。
特别篇
其实本来不太想写这些,希望你不要觉得 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,花两小时入个门,啥都挡不住他了。
这几天对几个知名软件的分析,也尝试着制作了这几个软件的 Keygen。写 Keygen 的同时还顺便学习了一些 Objective-C。现在看着汇编写 Objective-C 的源码基本上是没有问题了。折腾几天下来算是小有成就感。
当然,这仅仅是一个开始。还有更多东西要学,毕竟我才刚刚接触 Mac。将来如果有机会,可能会写一篇 Mac OS X 的逆向分析教程。从编译后二进制文件的角度详细阐述一下 Math-O 和 Objective C 的内部原理。这些基本上都理解得差不多了。
结束语
我热爱我的工作。我也为我的兴趣爱好而骄傲。我的一家人:老婆、爸爸妈妈,外加两只猫都很支持我。我别无所求。我很快乐。 :) (完)
29 Comments so far
Leave a comment
Fields in bold are required. Email addresses are never published or distributed.
Some HTML code is allowed:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
URLs must be fully qualified (eg: http://apple4.us),and all tags must be properly closed.
Line breaks and paragraphs are automatically converted.
Please keep comments relevant. Off-topic, offensive or inappropriate comments may be edited or removed.
作者阅历很丰富啊,可惜工具篇幅少了些。
好啊,这是真正的黑客精神。源自本初的热情。
希望能在这儿看到作者的逆向分析教程。
同为武汉人,顶你~
惭愧,作为同龄人我是上了大学才开始折腾电脑 :(
我也是96年上网的
Comodo也有些认识人
楼主交个朋友吧 我msn: jarod at live dot com
其实我天天在用DOSKey。
因为天天得用DOS,不得不把DOSKey挂上。省时间。
这年头,linux都泛滥了,还是回去鼓捣amiga吧,不图其他的,就是为了那个范儿
大牛,求带啊~~~~
酷啊
可爱的小子 可爱的年代
一個如些資深的軟件工作者,竟然造 keygen,可悲!
disasm 相信每個喜歡電腦的人都玩過。破解的樂趣,不說自明。但 keygen?!
除了傷害軟件作者的感情,它還能帶來什麼?
早幾年我到大陸工作,問一班國內的同事,大家可以告訴我中國那麼多出色的 programmer 卻極少出色的軟件的原因嗎?
没有答案。
今天看到這里,留下一句可悲。保重。
作者真名 李 丁 盼,
quote:
一個如些資深的軟件工作者,究竟造 keygen,可悲!
disasm 相信每個喜歡電腦的人都玩過。破解的樂趣,不說自明。但 keygen?!
除了傷害軟件作者的感情,它還能帶來什麼?
早幾年我到大陸工作,問一班國內的同事,大家可以告訴我中國那麼多出色的 programmer 卻極少出色的軟件?
没有答案。
今天看到這里,留下一句可悲。保重。
(11楼): Horace Ho @ 2010-03-14,23:55
只能说作者是一个热衷于当一个Cracker的资深软件爱好者,并不能称其为资深的programmer,甚至不能称之为programmer,所以楼上的无需感言,中国的软件业需要的是一批真正德才兼备高瞻远瞩的伟大程序员的崛起,而不是仅仅因为Crack了几个国外软件就沾沾自喜的Cracker!
可悲的其实并不是作者本人,而是目前国内软件业的整体态势,不利于普通程序员的成长,更无法培养真正伟大的程序员,甚至连生存都很艰难!
以上仅代表本人观点,如有雷同,纯属意外
两个小错误:
1、世界上没有5.13i汉字系统,那个叫2.13系列,不止有i,还有h等,而且并不完全是debug敲出来的。
2、UCDOS也不是金山的,金山的是SPDOS,UCDOS是希望公司的产品。
还是踏踏实实的学技术的好,Crack固然有技术含量,但是背后的深层技术呢?RAD很快,但是明白每一行代码最后是如何变成cpu指令的才更能理解优化原理对么?
呵呵。我是本文作者。看了楼上几位的评论,我也有些话想说。
破解是通俗的叫法。各位说的破解,包括:脱壳、算法分析,做Keygen/爆破等步骤。
文中我提到的破解,我更愿意叫它逆向分析/逆向工程。就是上面所说的算法分析这个步骤。
我和我的同事都是从事Windows平台安全方面研究的。我和我的团队中的产品也是Windows平台的桌面安全产品。做安全产品,并不简单的给你需求,然后写写代码就完了。分析需求,写写代码那是做一般应用的。做安全产品,逆向分析是我们工作中必不可少的技能。毕竟Windows是闭源的操作系统。我们在做产品的同时,研究各种漏洞、研究操作系统、对抗木马/蠕虫/病毒。逆向分析是必要的技术手段。当然,在某些的情况下,我们也会研究竞争对手的产品。研究别人的实现原理、核心算法等。取长补短。
可以逆向分析并不等于没有创新。我们这边每天都有不同的想法,好的Idea必将被实现。
当然,我也不否认我早年以金钱为目,做过破解和外挂之类的程序。这个事出有因,我在此不多说。但是盗亦有道,可以说我没去碰过国产软件。现在,破解圈子里的朋友基本上都去做反病毒、反外挂、安全相关的工作了。例子我就不多举例了。
关于Keygen,这个是个人爱好,从来没流出过。这个类似Keygenme。去年我研究了很多知名的国内外软件,功能不说,软件本身的安全程度并不高。不仅限于注册算法,有的程序甚至有严重的安全漏洞。我在这里不说是哪个程序,我已经直接联系过作者了。
另外,该用正版的我必定购买正版。更何况我自己也是做软件的。我也不希望我的产品被其他人非法使用。
关于国内软件行业的大环境,我不想过多评价。各位看官自己心里有数。
就说这么多,希望各位看下留情。
谢谢。
= =MF的帖子被挖坟了
@Chakane048 呃。。谁挖的?
@阿龙 多谢更正。另,那个年代,刚刚接触到RAD确实让人欣喜。毕竟之前没见过这种开发模式。而且Delphi写某些程序有先天的优势(如数据库等)。虽然现在几乎不用它们了,但是还是很怀念的。
很多人喜欢Crack相关的技术,如果不是纯粹的做Crack,很多人的发展应该逃不出这个圈子。最后就是做反病毒、反外挂、或者安全相关。也有人走上,做木马、病毒、rootkit的。
我们这群人还是很热衷于新技术的。但是因为年龄不小了,再加上国内软件行业的大风向标。慢慢的,我们都从做技术转为做产品、带团队。再过几年,可能我也会有自己的公司。
如果可以,我也愿意做一辈子技术。研究自己喜欢的东西是多么开心的事情。但是现在,我们对技术的热爱程度赶不上现在的小孩儿了。现在的90后的技术高手也很多,各大安全公司招聘这种“童工”的现象也很严重。这到底是毁人呢。呵呵。
这是……“工具”癖?我怎么感觉是个炫耀贴?
从使用firefox的习惯基本能看出来是windows使用者还是Mac使用者,习惯装 easy drag to go之类的肯定是Windows使用者,Mac使用者基本都是cmd或者ctrl+click。
twhirl是我用过最噩梦的客户端,每次点按钮都要分辨两秒钟。
阿龙,谢谢。你说的两个错误已经更正。
怀旧太多,mac太少。
同意14,15,21,22,25楼。
希望作者能更多地开发软件造福人类而不是破坏别人的成果,谢谢
才看到17楼回复……我觉得既然事后解释,还不如把解释放在文章里……
软件业需要作者这样的,钻研电脑这种工具的专家,同时也需要创造工具的专家和使用工具的专家。中国太缺少后两者,所以大家比较敏感,好像前者就不重要了,也不是的,都需要。
刚刚进入软件这一行业,现在为曾经浪费的大学时光有些后悔,看到lz才曾经的软硬件环境下有了如此的成绩,更是有些后悔,希望现在还不算晚。
让我想到很多。以前上网自己偷偷把电话线剪掉,连上贺氏的猫。高春晖,telekbird,gb4,大航海。。帖子让我想起n多90年代和电脑有关的话题。