首页
社区
课程
招聘
[原创]菜鸟文章--Windows Commander破解教程
发表于: 2006-1-6 20:10 5361

[原创]菜鸟文章--Windows Commander破解教程

qduwg 活跃值
35
2006-1-6 20:10
5361
题目:Windows Commander破解教程
软件版本:4.53
文件大小:1.30MB
适用平台:Win9x/NT
软件简介:对于文件与路径的寻找、复制、移动都相当方便。可直接阅读Hex、Binary 或纯文本格式的文件,功能

远胜于资源管理器。
工具:TRW,FI(或者PEID),OD
难度:易(keyfile保护)
引子:今天看了2篇关于这个软件的破解,一时兴起拿这个Windows Commander 开刀,首先拿FI或者PEID查看这个

软件是用ASpack2.1压缩过的,我参考其他大侠在精华3的文章,用TRW脱壳,下pnewsec命令却没有反应,泄气。

看到那些作者能够顺利脱壳,真是羡慕。不知为什么会这样呢?精华3的6篇文章有5篇(其中3篇是一个作者写的,

重复出现的)关于这个软件的4.52版本的注册破解,都是这么描述的,看来我是例外???我纳闷极了。用

ASpackDIE脱壳后总是提示出错“该程序执行了非法操作,即将关闭。”而且接着出第二个提示框“本次操作由于

这台计算机的限制被取消,请与系统管理员联系”。我Faint!不知怎么回事,这个AspackDIE看来无法使Aspack

类型的壳Die掉!!我只有自己想其他出路了。我先用TRW载入这个程序,F10跟踪直到跳到一个新Section,我一看

地址是549f2c,根据经验应该有跨两个节的跳转才对,但是没有发现,因为看到代码里面许多CALL指令都是调用的

40xxxx处的程序,而且用F10跟踪,发现很快程序就执行起来了。我没有找到第二个跨段跳跃。据说可以用“冲击

波”可以找到真正的入口点,我手头还没有这个工具。我先SUSPEND再说,用Prodump转存一下这个程序,用PEID

一看,依然是带壳的。我就尝试用Prodump去壳吧,选择Unpack,选择Aspack2.00类型,然后选择刚才转存的程序

文件,一会儿提示可以保存了,说明脱壳成功,我赶紧用PEID查看一下,果然没有壳了!!用Delphi写的,成功之

路开始第一步了!:)我的脱壳方法可能是独树一帜的吧。:)
1. 去掉脱壳后的错误提示
首先运行一下脱壳的程序如何,结果随便操作几下,大概过3秒钟提示“The wincmd file is

corrupted,possible virus!Wincmd will close.”此刻Ctrl+N唤出TRW,下断点bpx messageboxA,F5退出TRW

,再次运行程序,被TRW拦住。按F10直到返回主程序处,我们发现这个提示框来自4DF186,通过向上查看,这个

CALL所在的函数来自4DEE2C处的跳转。如下代码:
004DF145   > 68 41050000    PUSH 541      //函数入口点
004DF14A   . 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
004DF14D   . E8 DA2BF4FF    CALL WINUN2.00421D2C
004DF152   . 50             PUSH EAX
004DF153   . E8 B868F2FF    CALL <JMP.&USER32.KillTimer>
*
*略去无用代码
*
004DF17D   . 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
004DF180   . E8 A72BF4FF    CALL WINUN2.00421D2C
004DF185   . 50             PUSH EAX
004DF186   . E8 D568F2FF    CALL <JMP.&USER32.MessageBoxA>
004DF18B   . 6A 00          PUSH 0           //我们会停在此处,上面的这个CALL就是出现那个提示框的

函数。
004DF18D   . 68 60F00000    PUSH 0F060
004DF192   . 68 12010000    PUSH 112
004DF197   . 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
================================================
往上寻找蛛丝马迹,发现这个CALL所在的函数来自004DEE2C 的跳转。
004DEE10   > 83E8 09        SUB EAX,9
004DEE13   . 0F84 3E060000  JE WINUN2.004DF457
004DEE19   . 48             DEC EAX
004DEE1A   . 0F84 EA060000  JE WINUN2.004DF50A
004DEE20   . 48             DEC EAX
004DEE21   . 0F84 8B060000  JE WINUN2.004DF4B2
004DEE27   . 2D 36050000    SUB EAX,536      //与536h比较,如果相等则没戏。
004DEE2C   . 0F84 13030000  JE WINUN2.004DF145      //此跳转跳到上述函数处。把此指令换成6个NOP。
004DEE32   . E9 68070000    JMP WINUN2.004DF59F   
004DEE37   > 6A 02          PUSH 2
004DEE39   . 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
004DEE3C   . E8 EB2EF4FF    CALL WINUN2.00421D2C
004DEE41   . 50             PUSH EAX
004DEE42   . E8 C96BF2FF    CALL <JMP.&USER32.KillTimer>
================================================
2.去除操作后立刻退出问题
虽然程序启动后不出现那个错误提示框了,可是如果进行一下操作,比如删除文件什么的,接着就退出了。还有不

少猫腻在里头。打开trw然后下bpx messageboxA断点,F5退出,启动Windows Commander,我们找一个软件功能

试一下,比如我们打开File菜单,执行Combine File命令,被TRW拦住,F12退出TRW,接着弹出一个提示框,点击

OK,再次被拦下。按2次F12,1次F10跟踪到如下地方:
004E8272  |> A1 ECC25400    MOV EAX,DWORD PTR DS:[54C2EC]
004E8277  |. 2D B9230000    SUB EAX,23B9   // 与23B9比较,相等则OK,否则没戏。
004E827C  |. 74 0A          JE SHORT WINUN2.004E8288  //通往光明之路。改74->EB
004E827E  |. B8 01000000    MOV EAX,1
004E8283  |. E8 7CC2F1FF    CALL WINUN2.00404504   //调用此CALL则over.
004E8288  |> E8 7780F6FF    CALL WINUN2.00450304
004E828D  |. 33C0           XOR EAX,EAX
004E828F  |. 5A             POP EDX
004E8290  |. 59             POP ECX
004E8291  |. 59             POP ECX
004E8292  |. 64:8910        MOV DWORD PTR FS:[EAX],EDX
004E8295  |. 68 B8824E00    PUSH WINUN2.004E82B8
004E829A  |> 8D85 E0FDFFFF  LEA EAX,DWORD PTR SS:[EBP-220]
004E82A0  |. E8 4BB3F1FF    CALL WINUN2.004035F0
004E82A5  |. 8D85 E4FDFFFF  LEA EAX,DWORD PTR SS:[EBP-21C]
004E82AB  |. E8 40B3F1FF    CALL WINUN2.004035F0
004E82B0  \. C3             RETN
================================================
3.去除NAG窗口问题。这是一个KEYFILE保护程序。我们下bpx createfileA断点,启动程序被拦住,用pmodule命

令回到主程序空间,结果失败,程序接着运行了。没有办法,只有按F12达23次,然后按F10经过一个“世纪”的旅

行,最后还有一个漫长的消息循环过程,最后你会来到这里:
0043C9A3  |. 50             PUSH EAX
0043C9A4  |. 8B45 F4        MOV EAX,DWORD PTR SS:[EBP-C]
0043C9A7  |. 50             PUSH EAX
0043C9A8  |. 6A 00          PUSH 0
0043C9AA  |. 8B45 E8        MOV EAX,DWORD PTR SS:[EBP-18]
0043C9AD  |. 50             PUSH EAX
0043C9AE  |. 8B45 EC        MOV EAX,DWORD PTR SS:[EBP-14]
0043C9B1  |. 50             PUSH EAX
0043C9B2  |. 8B45 FC        MOV EAX,DWORD PTR SS:[EBP-4]
0043C9B5  |. 50             PUSH EAX       //如果在此处下断点重新运行程序,你d eax可以看到文件名

Wincmd.key。
0043C9B6  |. E8 8586FCFF    CALL <JMP.&KERNEL32.CreateFileA>
0043C9BB  |. 8945 E4        MOV DWORD PTR SS:[EBP-1C],EAX  //回到这个地方来。
0043C9BE  |. 837D E4 FF     CMP DWORD PTR SS:[EBP-1C],-1
0043C9C2  |. 75 16          JNZ SHORT WINUN22.0043C9DA     //此处可改可不改。关键在下面。
0043C9C4  |. E8 5F6BFCFF    CALL WINUN22.00403528
0043C9C9  |. 8D80 0C000000  LEA EAX,DWORD PTR DS:[EAX+C]
0043C9CF  |. 50             PUSH EAX
0043C9D0  |. E8 7B87FCFF    CALL <JMP.&KERNEL32.GetLastError>
0043C9D5  |. 5A             POP EDX
0043C9D6  |. 8902           MOV DWORD PTR DS:[EDX],EAX
0043C9D8  |. EB 0D          JMP SHORT WINUN22.0043C9E7
0043C9DA  |> E8 496BFCFF    CALL WINUN22.00403528
按F10继续赶路吧,我们会到这里来:
004CCDAE   . 8D85 60FAFFFF  LEA EAX,DWORD PTR SS:[EBP-5A0]
004CCDB4   . 8D95 70FEFFFF  LEA EDX,DWORD PTR SS:[EBP-190]
004CCDBA   . B9 10000000    MOV ECX,10
004CCDBF   . E8 685CF3FF    CALL WINUN22.00402A2C   //此函数处理KEY文件。
004CCDC4     0F84 AE000000  JE WINUN22.004CCE78     //如果为0则OK 。修改此处为JMP,              

                                                      即E9AF00000090
004CCDCA   . 33DB           XOR EBX,EBX
004CCDCC   . 33D2           XOR EDX,EDX
004CCDCE   . 55             PUSH EBP

继续赶路,我们还会遭遇第二个地方校验。如下:
004CD1C9   8D85 60FAFFFF    LEA EAX,DWORD PTR SS:[EBP-5A0]
004CD1CF   8D95 60FEFFFF    LEA EDX,DWORD PTR SS:[EBP-1A0]
004CD1D5   B9 10000000      MOV ECX,10
004CD1DA   E8 4D58F3FF      CALL WINUN23.00402A2C      //此函数处理KEY文件。
004CD1DF     74 02          JE SHORT WINUN22.004CD1E3  //此处须跳,改为EB 02即JMP。否则下面的标

志被清除就OVER。
004CD1E1   33DB             XOR EBX,EBX     //或者把这个指令改为mov ebx,1(B301)
004CD1E3   8B85 FCFEFFFF    MOV EAX,DWORD PTR SS:[EBP-104]
004CD1E9   E8 D65AF3FF      CALL WINUN23.00402CC4
004CD1EE   8B85 F8FEFFFF    MOV EAX,DWORD PTR SS:[EBP-108]
004CD1F4   E8 CB5AF3FF      CALL WINUN23.00402CC4
004CD1F9   8B85 F4FEFFFF    MOV EAX,DWORD PTR SS:[EBP-10C]
================================================

后记:我研究这个软件好几天没有进展,:)当然也参考了几位大侠以前的教程,觉得有些描述的含糊。我自己尝试

了一把,这个软件非常奇怪。以前也从来没有遇到过这样的情况。我的指导思想是,破解软件不在乎新与旧,关键

在于增长经验。破解的多了经验就自然丰富起来了。比如这个软件,执行一个功能后立即退出了,怎么下断点是个

技巧。
另外,我在反汇编过程中使用了OD,的确不错,不过也有其不便之处,和SICE比起来真是尺有所短,寸有所长,不

能说哪个更好。我认为能够解出软件就是好工具。我在用ULTRAEDIT修改软件时,自己想当然的认为4CCDC4处的指

令应该改为0FEB AE000000,就是所谓JMP了,结果我保存了多次最后执行都是出现地址异常错误,我百思不得其解

。最后用OD的Binary Edit功能进行修改,一看原来是我想错了,正确的指令应该是E9 AF000000 90,因为字节数

不够,故补90。就这个小地方折腾我好长时间,最后才发现问题。但多失败不是坏事,说明经验不足,更需要磨练

了:)!

感谢您花费宝贵时间阅读这篇破文!能够对菜鸟有点启发的话,我就认为足矣了。
送菜鸟一副对联:

破文不在长短,能够讲清晰就中;
软件不在新旧,可以供练手则成。

我认为破解分这么几个阶段:
1.初级菜鸟:暴力破解软件,给软件打补丁。一时还找不出注册码算法。
2.中级菜鸟:能够通过跟踪找出注册码算法,但是可能编程功底不行,写不出注册机。
3.高级菜鸟:能够根据算法,写出注册机。
4.初级高手:能够破解比较复杂的安装软件序列号并写出注册机来(如破解用RSA,BLOWFISH等加密算法加密的软

件),实时校验序列号,用VB等写的软件等。
5.中级高手:破解软件狗等比较复杂算法的保护。
6.高级高手:破解硬件狗保护,对系统底层了解非常透彻如操作系统的保护模式下的任务调度。

以上全是一家之言,由于上网相对不方便,没有了解更多的信息,如果存在孤陋寡闻现象也属可以理解!希望高手

多多写出美文指导菜鸟。

QduWg

2006年1月6日下午3:00

qduwg@163.com

[培训]科锐软件逆向54期预科班、正式班开始火爆招生报名啦!!!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2506
活跃值: (1050)
能力值: (RANK:990 )
在线值:
发帖
回帖
粉丝
2
执行功能后退出的话可以试试这些断点:
bpx ExitProcess 或 bpx TerminateProcess 或 bpx ExitThread
希望能向构造出keyfile上发展,对老兄的勤奋深表敬佩!
2006-1-6 20:58
0
雪    币: 389
活跃值: (912)
能力值: ( LV9,RANK:770 )
在线值:
发帖
回帖
粉丝
3
呵呵,梁肇新的话用在破解上了.
[转帖] 1.2 高手是怎样练成的 (梁肇新<<编程高手箴言>>)

1.2.1  高手成长的六个阶段
程序员怎样才能达到编程的最高境界?最高境界绝对不是你去编两行代码,或者是几分钟能写几行代码,或者是用什么所谓的可视化工具产生最少的代码这些工作,这都不是真正的高手境界。即使是这样的高手,那也都是无知者的自封。

我认为,一个程序员的成长可分为如下六个阶段。

第一阶段

此阶段主要是能熟练地使用某种语言。这就相当于练武中的套路和架式这些表面的东西。

第二阶段

此阶段能精通基于某种平台的接口(例如我们现在常用的Win 32的API函数)以及所对应语言的自身的库函数。到达这个阶段后,也就相当于可以进行真实散打对练了,可以真正地在实践中做些应用。

第三阶段

此阶段能深入地了解某个平台系统的底层,已经具有了初级的内功的能力,也就是“手中有剑,心中无剑”。

第四阶级

此阶段能直接在平台上进行比较深层次的开发。基本上,能达到这个层次就可以说是进入了高层次。这时进入了高级内功的修炼。比如能进行VxD或操作系统的内核的修改。

这时已经不再有语言的束缚,语言只是一种工具,即使要用自己不会的语言进行开发,也只是简单地熟悉一下,就手到擒来,完全不像是第一阶段的时候学习语言的那种情况。一般来说,从第三阶段过渡到第四阶段是比较困难的。为什么会难呢?这就是因为很多人的思想转变不过来。

第五阶级

此阶段就已经不再局限于简单的技术上的问题了,而是能从全局上把握和设计一个比较大的系统体系结构,从内核到外层界面。可以说是“手中无剑,心中有剑”。到了这个阶段以后,能对市面上的任何软件进行剖析,并能按自己的要求进行设计,就算是MS Word这样的大型软件,只要有充足的时间,也一定会设计出来。

第六阶级

此阶段也是最高的境界,达到“无招胜有招”。这时候,任何问题就纯粹变成了一个思路的问题,不是用什么代码就能表示的。也就是“手中无剑,心中也无剑”。

此时,对于练功的人来说,他已不用再去学什么少林拳,只是在旁看一下少林拳的对战,就能把此拳拿来就用。这就是真正的大师级的人物。这时,Win 32或Linux在你眼里是没有什么差别的。

每一个阶段再向上发展时都要按一定的方法。第一、第二个阶段通过自学就可以完成,只要多用心去研究,耐心地去学习。

要想从第二个阶段过渡到第三个阶段,就要有一个好的学习环境。例如有一个高手带领或公司里有一个好的练手环境。经过二、三年的积累就能达到第三个阶段。但是,有些人到达第三个阶段后,常常就很难有境界上的突破了。他们这时会产生一种观念,认为软件无非如此,认为自己已无所不能。其实,这时如果遇到大的或难些的软件,他们往往还是无从下手。

现在我们国家大部分程序员都是在第二、三级之间。他们大多都是通过自学成才的,不过这样的程序员一般在软件公司也能独当一面,完成一些软件的模块。

但是,也还有一大堆处在第一阶段的程序员,他们一般就能玩玩VB,做程序时,去找一堆控件集成一个软件。

现在一种流行的说法是,中国软件人才现在是一个橄榄型的人才结构,有大量的中等水平的程序员,而初级和高级程序员比较少。而我认为,现在中国绝大多数都是初级的程序员,中级程序员很少,高级的就更少了。所以,现在的人才结构是“方塔”形,这是一种断层的不良结构。而真正成熟的软件人才结构应该是平滑的三角形结构。这样,初级、中级、高级程序员才能充分地各施所长。三种人才结构对比如图1.1所示。

1.2.2  初级程序员和高级程序员的区别
一般对于一个问题,初级程序员和高级程序员考虑这个问题的方法绝对是不同的。比如,在初级程序员阶段时,他会觉得VB也能做出应用来,且看起来也不错。

但到了中级程序员时,他可能就不会选择VB了,可能会用MFC,这时,也能做出效果不错的程序。

到高级程序员时,他绝对不是首先选择以上工具,VB也好,VC也好,这些都不是他考虑的问题。这时考虑的绝对是什么才是具有最快效率、最稳定性能的解决问题的方法。

软件和别的产品不同。比如,在软件中要达到某个目标,有n种方法,但是在n种方法中,只有一种方法或两种方法是最好的,其他的都很次。所以,要做一个好的系统,是很需要耐心的。如果没有耐心,就不会有细活,有细活的东西才是好东西。我觉得做软件是这样,做任何事情也是这样的,一定要投入。

程序员到达最高境界的时候,想的就是“我就是程序,程序就是我”。这时候我要做一个软件,不会有自己主观的思路,而是以机器的思路来考虑问题,也就是说,就是以程序的思考方式来思考程序,而不是以我去设计程序的方式去思考程序。这一点如果不到比较高的层次是不能明白的。

你设计程序不就是你思考问题,然后按自己的思路去做程序吗?

其实不是的。在我设计这个程序的时候,相当于我“钻”入这个程序里面去了。这时候没有我自己的任何思维,我的所有思维都是这个程序,它这步该怎么走,下步该怎么走,它可能会出现什么情况。我动这个部分的时候,别的部分是否要干扰,也许会动一发而牵全身,它们之间是怎么相互影响的?

也只有到达这个境界,你的程序才能真正地写好,绝对不是做个什么可视化。可视化本身就是“我去设计这个程序”,而真正的程序高手是“我就是程序”,这两种方法绝对是不同的。比如,我要用VB去设计一个程序,和我本身就是一个程序的思维方式,是不一样的。别人也许觉得操作系统很深奥,很复杂,其实,如果你到达高手状态,你就是操作系统,你就能做任何程序。

对待软件要有一个全面的分析方法,光说理论是没有用的。如果你没有经过第一、第二、第三、第四这四个阶段,则永远到达不了高境界。因为空中楼阁的理论没有用,而这些必须是一步一步地去做出来。

一个高级程序员应该具备开放性思维,从里到外的所有的知识都能了解。然后,看到世界最新技术就能马上掌握,马上了解。实际上,技术到达最高的境界后,是没有分别的。任何东西都是相通的,只要你到达这个境界以后,什么问题一看就能明白,一看就能抓住最核心的问题,最根本的根本,而不会被其他的枝叶或表象所迷惑,做到这一步后才算比较成功。

从程序员本身来说,如果它到达这一步以后,他就已经形成了开阔的思维。他有这种开放性思维的话,他就能做战略决策,这对他将来做任何事情都有好处。事实上,会做程序后,就会有一种分析问题的方法,学会怎么样把问题的表象剖开,看到它的本质。这时你碰到任何具体的问题,只要给点时间,都能轻而易举地解决。实际上,对开发计算机软件来说,没有什么做不了的软件,所有的软件都能做,只是看你有没有时间,有没有耐心,有没有资金做支撑。

这几年,尤其是这两三年,估计到2005年前,中国软件这个行业里面大的软件公司就能形成。现在就已经在形成,例如用友,它上市后,地位就更加稳固了。其他大的软件企业会在这几年内迅速长大。这时候,包括流通渠道、经销商的渠道也会迅速长大。也就是说,到2005年以后,中国软件这个行业的门槛比现在还要高很多,与美国不会有太大的差别。此时,中国软件才真正体现出它的威力来。如果你是这些威力中的一员,就已经很厉害了。

别人可能知道比尔・盖茨是个谈判的高手,是卖东西的高手,其实,比尔・盖茨从根本上来说是个程序高手,这是他根本中的根本。他对所有的技术都非常敏感,一眼就看到本质,而且他本身也能做程序,时常在看程序。现在他不做董事长,而做首席设计师,这时他就更加接近程序的本质。因为他本身就有很开阔的思维,又深入到技术的本身,所以他就知道技术的方向。这对于一个公司,对他这样的人来说,是非常重要的。

如果他判断错误一步,那公司以后再回头就很难了。计算机的竞争是非常激烈的,不能走错半步。很多公司以前看上去很火,后来就销声匿迹了,就是因为它走错一步,然后就不行了。为什么它会走错?因为他不了解技术的本质在哪里,技术的发展方向在哪里。

比尔・盖茨因为父母是学法律的,所以他本身就很能“侃”,很有说服力,而他又是做技术的,就非常清楚技术的方向在哪里,所以他才能把方向把握得很准确,公司越来越大。而别的公司只火一阵子,他却火了还会再火。就算微软再庞大,你如果不把握好软件技术的最前沿,一样也会玩完。就像Intel时刻把握着CPU的最新技术,才能保证自己是行业老大。技术决定它的将来。

所以,程序员要能达到这样的目标,就要有非常强的耐心和非常好的机遇才有可能。事实上,现在的机会挺好的,2005年以前机会都非常大,以后机会会比较小。但是,如果有耐心的话,你还是会有机会的,机会都是出在耐心里。我记得有句话说“雄心的一半是耐心”,我认为雄心的三分之二都是耐心。如果你越有野心,你就越要有耐心,你的野心才有可能实现。如果你有野心而没有耐心,那都是胡思乱想,别人一眼就能看穿。最后在竞争中,对手一眼就看到你的意图,那你还有什么可竞争的?

1.2.3  程序员是吃青春饭的吗
很多人都认为程序员是三十岁以前的职业,到了三十岁以后,就不应再做程序员了。现在的很多程序员也有这种想法,我觉得这种想法很不对。

在20世纪80年代末到90年代初,那时软件还没有形成行业,程序员不能以此作为谋生的手段时,你必须转行,因为你年轻的时候不用考虑吃饭的问题,天天“玩”都可以,但是以后就不可能了。

据我了解,微软里面的那些高手,几乎都是四五十岁的,而且都是做底层的。他们是上世纪70年代就开始“玩”程序的,所以对于整个计算机,他们是太清楚了。现在有些人主观臆断地希望微软第二天倒闭就好了,但那可能性太小了。因为那些程序员是从CPU是4004的时候开始,玩到现在奔腾IV,没有哪一代东西他们没有经历过。

你知道他们现在正在玩什么吗?现在正在玩64位的CPU。你说你普通的程序员,有这个耐心吗?没有这个耐心,你绝对做不了,你也绝对当不了高手。他为什么能做?因为他不仅是玩过来的,而且他还非常有耐心,每一步技术他都跟得上,所以对他来说,没有任何的难度和压力。

因为计算机技术没有任何时候是突变的。它的今年和去年相差不会很大,但是回过头来看三年以前的情况,和现在的距离就很大。所以说,如果你每年都跟着技术进步的话,你的压力就很小,因为你时刻都能掌握最新的技术。但是,如果你落下来,别说十年,就是三年,你就赶不上了。

如果你一旦赶不上,就会觉得非常吃力;如果你赶不上,你就会迷失方向;如果你迷失了方向,你就觉得计算机没有味道,越做越没劲。当你还只是有个思路的时候,别人的产品都做出来了,因为你的水平跟别人相差太远,人家早就想到的问题,你现在才开始认识。水平越高,他就看得越远,那么他的思维就越开阔;水平越低,想的问题就越窄。

64位CPU是这个十年和下个十年最重要的技术之一,谁抓住这个机会,谁就能抓住未来赚钱的商机。CPU是英特尔设计的,对这一点他肯定清楚。举例来说,如果从64位的角度来看现在的32位,就像从现在的角度去看DOS。你说DOS很复杂吗?当你在DOS年代的时候,你会觉得DOS很复杂。你说现在的Windows不够复杂吗?Windows太复杂了,但是你到了64位的时候再去看Windows,就如同现在看DOS一样。

整个64位系统的平台和思维方式、思路都比现在更开阔,打个比方说,现在的Windows里面能开n个DOS窗口,每个DOS窗都能运行一个程序。到达64位的时候,操作系统事实上能做到开n个X86,开n个Windows 98,然后再开n个Windows 95都没有问题,系统能做到这一步,甚至你的系统内开n个Windows NT都没有关系。这就是64位和32位的差别。所以,微软的那些“老头”,四、五十岁的那几个做核心的人,现在正在玩这些东西。你说微软的技术它能不先进吗?是Linux那几个玩家能搞定的吗?

微软的技术非常雄厚,世界计算机的最新技术绝对集中在这几个人手里。而且这几个人的思维模式非常开阔,谁都没有意识到的东西他早就开始做了。现在64位的CPU都出来一二年了,你说有什么人去做这些应用吗?没有,有的就是那几个UNIX厂商做好后给自己用的。

所以,追求技术的最高境界的时候,实际上是没有年龄限制的。对我来说,现在都三十三了,我从来没有想过退出这行,我觉得我就能玩下去,一直玩到退休都没有问题。我要时刻保持技术的最前端,这样的话对我来说是不困难的,没有任何累的感觉。

很多人说做程序不是人干的事情,是非人的待遇。这样,他们一旦成立一个公司,做出一点成绩,在辉煌的时候马上就考虑退出。因为他们太苦了,每天晚上熬夜,每天晚上烧了两包烟还不够,屋子里面简直就缺氧了,好像还没有解决问题。

白天睡觉,晚上干活,那当然累死了,这是自己折腾自己。所以,做程序员一定要有一种正常的心态,就是说,你做程序的时候,不要把自己的生活搞得颠三倒四的。如果非得搞得晚上烧好多烟才行,这样你肯定折腾不到三十岁,三十岁以后身体就差了。

事实上,我基本上就没有因为做程序而熬夜的。我只经历过三次熬夜,一次是在学校的时候,1986年刚接触计算机时,一天晚上跟一个同桌在计算机室内玩游戏,研究了半天,搞着搞着就到了天亮,这是第一次。然后在毕业之前,在286上做一个程序。还有一次就是超级解霸上市前,那时公司已吹得很大了,那天晚上没法睡觉。

一般来说,我也是十二点钟睡觉,第二天七点就起了。所以说,只有具有正常的生活、正常的节奏,才有正常的心态来做程序员,这样,你的思路才是正常的,只有正常的东西才能长久。搞疲劳战或者是黑白颠倒,时间长久后就玩不转了,玩着玩着就不想玩了。

只要你不想玩,不了解新技术,你就会落后,一旦落后,你再想追,就很难了。

-------------------------------------------
2006-1-6 21:21
0
雪    币: 475
活跃值: (1130)
能力值: ( LV9,RANK:1410 )
在线值:
发帖
回帖
粉丝
4
哈哈,非常感谢这篇文章。精彩极了!
2006-1-6 21:45
0
雪    币: 296
活跃值: (265)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
5
OD+脱壳插件也不错,可以少用一些工具
2006-1-6 22:01
0
游客
登录 | 注册 方可回帖
返回