2011-09-29 87 views
0

是否有可能通过任何方式重命名DOS的内部命令?首先,我这样做是为了了解DOS的内部和可能性。到目前为止,我已经将内部命令CLS更改为XLX(在Windows XP上)。但命令名称XLX未执行。我附上2张截图供参考。最重要的是,这整个活动只是我的好奇心。重命名MS-DOS内部命令

debugged the command.com file and changed the CLS to XLX debugged the command.com file and changed the CLS to XLX

+1

这是顺便说一下,不是MS-DOS。现在还没有相当长一段时间:-)它可能看起来像它,但它在封面下非常不同。 – paxdiablo

回答

5

你运行的shell不是DOS,也不是command.com;如窗口标题所示,它是cmd.exe,这是完全不同的程序。如果您的运行的是 DOS命令解释程序,那么您的更改实际上可能会起作用 - 这可能也可能不像从cmd shell运行command那样容易。

+1

@mjb键入“command”,按回车。 – hobbs

2

它看起来像你只改变了含文档关于CLS命令字符串。我会怀疑是否有另一个“CLS”字符串。

很难确切知道,因为command.com是封闭的源码软件。你可以做的一件事是使用调试或其他调试器(ollydebug是一个免费的GUI调试器)来跟踪当你运行CLS时发生的情况,并找到command.exe决定执行cls命令的条件跳转。

+2

不,它看起来像在B426的字符串表中占据了另一个明显的位置。当然,可能还有一个不太明显的形式,如if(* c =='C'&& *(c + 1)=='L'&& *(c + 2)=='S ')'或类似的...但是比如果你问我更大的担忧是mjb实际上并没有运行他正在修改的代码。 – hobbs

+1

@hobbs:是的,这就是为什么我upvoted你的评论。 :)说了逆向工程封闭源码软件时,如果一条道路无法正常工作,调查所有途径通常是有帮助的。 – teambob

+0

@teambob您的回答肯定会引导我深入探索。非常感谢调试建议。 – mhb

0

COMMAND将尝试运行CMD的内部命令,至少在Vista上。 要查看差异,请尝试启动COMMAND,然后尝试命令VER。 COMMAND/C VER会给出不同的结果,所以如果你做得对,你应该尝试“COMMAND/C XLX”。我不知道这是否会起作用。

0

改变内部命令mgiht造成危险yoiur注册表内容..所以我建议你将资料或虚拟机上的备份后oerform实验是最优选按我的经验..