Windows笔记 – 用Notepad截下开机启动程序(补充)

有时候电脑被病毒侵蚀太过严重了,就算是要在电脑上进行去毒工作也非常困难,电脑变得太慢。

可以使用Notepad截下电脑开机时,所自动启动的程序,而不让它进入到记忆体内,进而可以允许技术员有充足时间,可以更加快速的处理完毕中毒的电脑。下面的指令必须要在指令符(Command Prompt)中输入,重启电脑后才见到效果。

截下程序的指令:(把自动启动程式转到notepad启动)
ftype exefile=notepad.exe %1

还原截取指令:(把自动启动程式还原)
ftype exefile=%1 %*

原理是Windows电脑在启动时必须先经历CMOS -> MBR -> Shell -> Explorer -> Run Programs的必定流程。上述指令会让Explorer在Run Program时把notepad当成是预设的启动程式,而把Run Program交由notepad来启动。由于Notepad只处理纯文字,所以这时候会变成有很多个Notepad窗口弹出,每个窗口就代表一个Run Program的程式,内容大部分会是乱码,不必理会。

25 Replies to “Windows笔记 – 用Notepad截下开机启动程序(补充)”

  1. “原理是Windows电脑在启动时必须先经历CMOS -> MBR -> Shell -> Explorer -> Run Programs的必定流程。”
    这句话来源在哪儿?
    看起来非常有问题…

    你这该不会是教别人一直用notepad来打开binary file吧?
    如果是的话,那么我就老实地说吧:这方法简直蠢极了… 不止帮不了,反而还会害了别人…

    1. 你的补充版好像没什么更改…

      这个不是“比较高级”的手法。这样做反而会把应该run的exe file都给截下来!这就是我说这方法害别人的理由!即使要还原也很难…

      其实还有很多更好,更“高级”的方法。
      但如果你还坚持说这是“高级的手法”,那么我也不谈这个了… 因为我已经说了要说的…

      还有这个
      “CMOS -> MBR -> Shell -> Explorer -> Run Programs”
      是出自哪儿?

    2. 这的确是较上级的方法,
      每当电脑病毒太严重的附在Exe file里,就只有靠这个方法来阻止病毒运作,然后有充足的时间将他们删除/清理。
      病毒通常都会潜伏在“应该”run的exe file里面,既然应该run,你run了病毒也会一起启动,这样的话,病毒怎样都清理不掉。阻止了以后,通常我们会使用“RUN”功能来启动我们要用到的软件,或者直接使用 Command Prompt来执行。
      我修理电脑这么多年,原来只会这样的“低级”方法,
      我还真的是愧对于那些付钱的顾客们啊!
      顺便向你请教,你有什么更“更高级”的方法和我们分享呢?大家可以讨论看看。

      至于CMOS -> MBR -> Shell -> Explorer -> Run Programs的原理,
      你可以做个简单的实验:
      1.首先,先把你主机板上的CMOS给刷坏掉或者把晶片拔出来,然后看看你电脑启动的到吗?
      2.接下来,恢复CMOS,再进DOS把MBR给修改掉,然后看看你进到Windows吗?
      3.把MBR回复,再进去DOS,然后把Windows\system32目录下的Shell32.dll和shell.dll删除,重启电脑看你能顺利启动windows吗?
      4.接下来的Explorer更简单,按下Ctrl+Alt+Del,然后把Explorer给End process,你会发现所有Program都会因为关闭了Explorer而消失,重新run回explorer后,Program又会跑完出来了。

      这就是所谓的流程。

    3. “病毒通常都会潜伏在“应该”run的exe file里面”
      如果是exe file被virus infect的话,那么最好的方法就是先把重要的文件备份(除了exe file之外),然后就reformat!
      这我不需要说原因,因为如果你真的知道polymorphic virus infection的话,都知道我为什么这么说。用Notepad把它截下来,也就是先用Notepad.EXE run那些virus的code… 完全做不到你所说的 “每当电脑病毒太严重的附在Exe file里,就只有靠这个方法来阻止病毒运作”,而且接下来的这个“通常我们会使用“RUN”功能来启动我们要用到的软件,或者直接使用 Command Prompt来执行。”也变成无稽之谈。

      至于你说的流程,解释不了我觉得有问题的地方…
      首先我不是指不用经过CMOS,而是有个更正确的“东西”才到MBR,那就是BIOS。

      至于接下来还有问题的,就是Shell -> Explorer这儿
      Explorer本身就是Shell,写成这样不就是误导别人?其他在MBR至Windows开始run default shell之前的,我当作老大跳过了,所以那些就对我来说不是个问题。

      至于其他的“方法”,我记得我在很久以前就给了你们Link说哪儿可以学这些东西。你可以去那边参考。不方便说因为内容是保密的…

    4. 我们大家的着眼点都不一样,真的要辩下去会没完没了。不过,有讨论就是知识增长的机会,我们继续来吧~:)

      首先,我和猪猪都是从服务顾客的方面考量。

      有很多时候顾客把电脑带到我们面前时,并不会把应该保存好好的驱动带来,有的甚至早不懂得丢到哪个角落了,要Format可得先花好几个小时来找出驱动程序。

      而为他们做备份可是不得已的情况之下才会做的事情。对于商务来说,时间就是金钱。现在的硬盘最少都是以40GB来计算,而且所谓的“重要文件”分分钟就是一大堆的MP3、Movie、游戏记录等等,要花费更加大量的时间来慢慢找。再者,顾客的记忆也是有限制的,别说万一我们忘了备份某个“重要资料”,就算是顾客当其时忘了告诉我们这些是重要的资料,在Format后他们依然是可以一口咬定说曾经说过,而问题多多。

      Format一台电脑,在目前市价最多只能收取RM80~150之间的情况下,是不符合经济效益的做法。所以一般上我们会先考虑用其他方法把问题解决,而Format则是最后没办法之下才采用的手段。

      再来说到CMOS,我真的想不起有哪台电脑是CMOS或BIOS独立运作的,所以一般上都会以CMOS来概括两者。这是工作上的习惯问题。

      对于Shall和Explorer其实是完全分开的两回事。Shall是指整个系统的背后运作部分,如运算、记忆体操作、Services等等工作。而Explorer这里则指视窗界面,就是用户所能接触得到的部分。近期所发表的OS,全部都是使用完全分离的方法来设计的,所以在Vista或更新的OS上,我们不会再有Explorer崩溃就整个系统当掉的情况出现。

      最后我只能说,在学校中很多时候我们得到的知识,是前人规范下来的产物,或者可以说是告诉我们“什么东西应该要怎样做”,是基础和规范。但实际工作时,我们很可能会面对不一样的情况,而有时候往往所需要使用的方法是和所读到的背道而行。

    5. 我是从“服务大众”方面着想。你要知道你在这里写的东西是给别人看的,所以不能写一些别人可能不会懂的东西。不然如果他们直接做而不知道如何复原,又找不到其他人帮忙时,到最后也只是reformat。也因为是给别人看的,所以如果给我看到会误导别人的文章时,我也希望别人可以纠正。

      我不会因为对方的电脑因为中了Trojan罢了就叫他reformat。
      如果你看回我写的,我指要reformat的是Polymorphic virus infection,而不是全部的infection都reformat。对付virus infection时要reformat也是情非得已的… 你自己到各个网站看看Virus infection的传染方式就可以知道为什么我建议reformat了(尤其是现在较出名的Virut和Sality)。

      至于CMOS和BIOS,CMOS是Hardware,而BIOS是建在CMOS里的Software(或是应该说Firmware?)。我很注重用词,而且你也不能说Processor从Hardware那儿得到指令去看MBR;这就好像说“Processor会一直服从Harddisk给的指令”一样。。。

      “Shall是指整个系统的背后运作部分,如运算、记忆体操作、Services等等工作。”
      (我假设你是指 shEll,不是shAll)
      错!那不是Shell的工作,你反而像是说到Kernel去了。
      Shell是给用户和Kernel interact的工具,也可以说是Command Interpreter。本身不会执行命令,也没有直接做运算的工作(除了predefine command之外),而是需要用户的Input。
      你到registry看时就可以看到Microsoft已经把default shell设置成Explorer.exe。

      最后我也要说,我在这里学的东西,接近没有一样是从学校学来的,而且学校也不会教大家如何对付恶意软件之类的。我个人有大约两年的malware removal方面的经验(虽然里面有一年是training罢了)。所以我也知道如何帮别人去除malware,知道哪种方法才会是最好的。
      只是不同的是,我做的是自愿工作,不收钱。

    6. 根据tanpang的回复,
      我想老大你可以辞掉你在无敌的 IT Manager这个职位了,
      我也可以辞掉我在公司IT support cum warehouse senior executive这个职位了,反正我们都只会些最Basic的东西,还有什么脸做这些职位啊 >”< 顺便叫Norton啊,AVG这些公司关闭吧,或者把CEO炒掉,叫tanpang上位,哈哈哈哈哈哈!

    7. tan pang,你与人沟通方面的对话程式需要改善。
      如果你还继续这样与人沟通的话,我就老实地说吧:这方法简直蠢极了… 不止帮不了,反而还会害了你自己…

    8. 如果质疑我的能力,那还不用紧;即使不更改,那我也只希望其他人可以看到我的留言。但现在却已经变成了针对我的骂战…

      我在这儿只是想讨论Computer Security方面的东西,“蠢极了“也是针对这方法说的,不是针对老大!但现在却扯到我的沟通方式去了??

      老大之前说的 “有讨论就是知识增长的机会,我们继续来吧~:) “让我还想继续跟他讨论,但既然这里已经不再是讨论Computer Security的东西,那么我就当作我已经说完了我要说的东西。至于什么沟通方式的,学我的人不如学老大更好。

    9. @tan_pang:其实我在Title就说明白了,这是笔记。我只是用来记载自己学到的事物,这不是评论,也不是教导他人如何去处理什么事情,也不是一个Howto。至于谁看得明白与否,这对我来说是不在考虑范围内的。自己的笔记是写给自己看的东西,如果有人想要了解清楚或指出谬误之处,我万分欢迎。

      Shell(不是shall,感谢指正我的笔误),在这我的解释并没错误,的确是用于处理上面的工作,而Kernel的工作则是处于更加低阶的部分,例如与硬体的沟通。Explorer这里的工作只是一个操作转换界面,一个让用户操作的界面。你所说的Registry中的设置,其实就是告诉Shell在运作时用什么方式和用户沟通。

      完整的一般电脑启动流程是:
      Power On -> CMOS/BIOS -> MBR -> Boot Manager -> Kernel -> Shell/Service -> Command/Window Manager -> Auto Run

      有关清除病毒的手法之类的,我们也已经有过多次的讨论了。但由于各别的观念、手法、认知等等都不可能一样,所以在这我就不想再继续讨论下去了。举个简单的例子:有人说Kaspersky好,但也有人说它是废物。我们无法要求所有人都认同我们的见解,所以在此打住。

      @猪猪:说一个公道话,你这样说是稍微偏激了。

      讨论问题时,每人都有自己的一套,既然别人不相信所提出的,有所异议这也是正常的。保持平常心,嗯?

      @玉石:谢谢你的留言。在一个讨论的空间内,我们应该不要去衡量某人的沟通方式之类,这是非常针对性的。每个人都有自己的一套,如果沟通方面真的非常有问题,我会非常不客气的把它删除。如果要让别人知道自己的一些短处,或许在私下说会比较理想吧?

    10. 谢谢解释,但我已经没心情辨了…

      只是有些东西补充,是用了这个command之后的还原法:

      在用了这个command之后,如果使用者刚好把该Command Prompt给关掉了,那么他就再也没有办法把cmd.exe开回,执行复原指令。

      如果发生上述情况,那么他还是有一个用CLI的还原法,那就是run: COMMAND.COM
      COMMAND.COM是DOS环境下的shell,因为extension是COM,所以不受影响。

      然后输入的指令是
      ftype exefile=”%1″ %*

      那开关引号只是“保险”。因为有些exe有空格,那么用开关引号就可以把它给放在%1这个variable里…
      (但是,这是我个人的想法,我还没测试过没有开关引号的command)

    1. 抱歉,由于是工作上学习到的一个小笔记,记录时稍微粗略了,没考虑到不熟悉电脑系统运作的朋友能否消化。

      还好猪猪的回应用比较轻易明白的方法,希望你能够从中学习到一些技巧。的确如同我说的,这并不是一般人会运用的方法。只是在特定时候需要使用到时,却非常有效。

      🙂

  2. 老大
    我是電腦白癡
    看了你的文章后
    我更白癡了
    我…我…
    T.T

Comments are closed.