2011-09-29 115 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實驗是最優選按我的經驗..