2011年11月27日 星期日

[開始][執行][cmd]無法執行DOS命令

[開始][執行][cmd]無法執行DOS命令 2006.03.21-DOS-cmd-exe-do-not-work
  • 安裝某些程式之後_會修改到DOS的執行_
  • 不知道是何時發生_也不知道是何程式造成!!!???
  • 1.[開始][執行]CMD[確定]_會出現DOS對話框[C:\\WINDOWS\system32\cmd.exe]
              ping 192.168.8.10---------不會有任何反應
              即使使用CD.. CD.. 指令回到dos的根目錄_下指令依然不接受_也不執行
  • 2.使用PATH指令_將出現 [Path=c:\Program Files\Comon Files\Installshield\]_因為這樣所以無法指向 cmd.exe 的執行
  • 3.所以在[開始][控制台][系統][進階][環境變數]之下設定
           在上面的[****的使用者變數][新增]
             編輯使用者變數[變數名稱]dospath  [變數值]c:\\WINDDOWS\system32
             按[確定]
 
             *******您可看到_原先存在之變數 [Path=c:\Program Files\Comon Files\Installshield\]******
 
          在下面的[系統變數][新增]
            編輯使用者變數[變數名稱]dospath  [變數值]c:\\WINDDOWS\system32
            最後按[確定]_再按[確定]_離開[系統內容]
 
          電腦重新啟動
  • 4.完成!!!!!!!

    又一辦法:
    近来碰到了个新的问题,在进行网络测试时,发现CMD命令提示符无法使用。刚开始输入后直接一闪就没有了,后来提示“CMD”被管理员禁用。
       在网上找了很多方法,现对解决方法做如下总结:
    1、可以在注册表中将其重新启动,依次单击“开始\运行”命令,然后在打开的“运行”对话框中输入 “regedit”,打开“注册表编辑器”窗口,并定位到HKEY_CURRECT _USER\Software\Policies\Microsoft\Windows\ system,接着在右侧窗口找到DisableCMD并双击将其值修改为0或者直接删除该键值即可,关闭“注册表编辑器”窗口,回到系统中就可以打开命 令提示符窗口了。
    2、通过组策略来修改:如果只想禁用"cmd.exe",在gpedit.msc--->“用户配置-管理模板-系统”,就把"阻止访问命令提示符"设为"启用。相反,设置为禁止就可以使用运行CMD命令了。
    3、如果想禁止某个程序不想让别人打开,可以通过组策略来完成;如下:
    运行“gpedit.msc”命令打开组策略控制台,在里面展开“用户配置-管理模板-系统”,将右侧 “只运行许可的Windows应用程序”策略选为“已启用”,在对话框中点“允许的应用程序列表” 旁的“显示”按钮,在弹出的“显示内容”中点“添加”后输入允许运行的应用程序名称,例如
    输入“QQ.exe”,则只能运行QQ程序。试图运行其他未被允许的程序,一律弹出“……限制被取
    消。请与系统管理员联系。”的对话框。这样组策略都被禁用了。
     
    又一辦法: 
    可能某种原因,安装某个软件后,打CMD进入DOS下,输入所有命令(如:PING IPCONFIG 等)都说不是内部命令或外部命令,这个是某些程序吧你的PATH值给改动了,解决办法如下:
    我的电脑右键--属性--高级--环境变量--系统变量中找到“PATH”,值,修改成一下变量值就OK
    %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
     

    無法打開CMD和注冊表的解決

    前天中電腦中毒后我再次打開電腦,在運行框中輸入CMD,不是吧,系統居然提示找不到CMD文件,如下圖示:
    點擊確定又會彈出另外一個框:

      原以為是系統變量設置出了問題,直接打開我的電腦,進入C:\WINDOWS\SYSTEM32\目錄下,找到CMD.EXE直接運行,也是這樣的情況!

      馬上進入到C:\WINDOWS\SYSTEM32\DLLCATCH\目錄下,運行CMD.EXE文件,也是同樣的提示:

       運行command命令,雖然能彈出提示符狀態,但是幾乎所有的命令都不能用。用 GHOSTEXP.EXE 把原來備份中的CMD.EXE提取出來 把 %SYSTEM% 和 %SYSTEM%\DLLCATCH 下的CMD.EXE文件覆蓋掉,雙擊運行之后仍然是這樣的提示。准備退出來的時候突然發 現在C:\WINDOWS下有一個CDE.EXE.EXE莫非這個就是原來的CMD.EXE文件,隻是被修改了名字換了個地方,但是雙擊之后仍舊不能運 行。

      注:%system%指的是C:\WINDOWS\SYSTEM32或者是C:\WINNT\SYSTEM32目錄。更多的請參考:系統exe文件關聯被修改,如何恢復exe文件關聯

      糟了,中毒了,用?吧查,什麼病毒都沒查出來,具體的什麼病毒都不知道,看來隻能自己找資料手動解決這個問題了。很有可能就是一些病毒修改了注冊表,於是在運行框中輸入REGEDIT,居然彈出現面的提示:

      連注冊表業打不開了,會不會是系統的EXE文件關聯被修改了,這個需要通過修改注冊表來恢復。但是注冊表現在又打不開,用記事本編輯注冊表文件,再導入不就可以了麼?

    於是打開記事本文檔,在裡面輸入以下內容(目的是允許當前用戶運行cmd命令):

    ============================================

    Windows Registry Editor Version 5.00

    [HKEY_CLASSES_ROOT\exefile\shell\open\command]

    @="\"%1\" %*"

    ============================================

    保存為cmd.reg(文件名可以任意),運行導入,結果彈出下面提示:

    看來這個也不能用了,會不會是自己編輯注冊表文件的時候輸錯了呢?帶著這個疑問,我打開了另外一個注冊表文件,也是同樣的提示:


    看來是病毒的原因了。

    想通過批處理命令來對注冊表操作,隨便找了一個批處理命令雙擊,也不行:


    頭都有點大了,不知道該這麼辦了,突然想起來EXE文件雖然不可以運行,但是COM文件中應該可以運行吧!於是進入 C:\WINDOWS\ 把 regedit.exe 改名為 regedit.com 雙擊運行,即可打開注冊表編輯器。

    這下就可以修復文件關聯了,具體的操作請參考:系統exe文件關聯被修改,如何恢復exe文件關聯一文。

    EXE文件關聯修復之后,問題依舊,看來問題沒有那麼簡單,不是EXE文件關聯,那能是什麼原因呢?

    會不會是因為用戶權限被修改的原因呢(在注冊表中可以設置禁止用戶運行批處理文件和CMD),於是打開注冊表編輯器,進入HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System

    新 建一個雙字節值項DisableCMD(如果沒有的話,有的話直接修改其值就可以了,但要注意的是必須是雙字節值,不是的話需要刪掉重建),將其值設 為 0 (這裡的作用就是使用戶可以運行cmd和批處理文件),當然它也有其它的參數:修改其值為2,則命令解釋器和批處理文件都不能夠被運行﹔如果隻是 禁止命令解釋器的運行,而運行批處理文件的運行,則修改DisableCMD的值為1。這些大家可以自行試試!

    當然也可以通過下面的注冊表文件導入方法來實現(前提是等到注冊表修復之后):

    ============================================

    Windows Registry Editor Version 5.00

    [HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System]

    "DisableCMD"=dword:00000000

    ============================================

    雖然權限也設置過了,但是問題依舊沒有解決。真的有點不知道該怎麼辦了?嗚嗚…………

    雖然還沒找到徹底解決的辦法,但是可以先給大家提供一個臨時解決的辦法,將系統中的CMD.EXE,REGEDIT.EXE,MSCONFIG.EXE文件的擴展名都改為COM基本上就可以暫時使用了!隻不過要在運行框中輸入命令時要帶上COM擴展名。



    找 了這麼久,終於找到原因了,原來是中了映像劫持病毒了,對於這種病毒隻需要把映像劫持給關了就行了,可以通過修改注冊表來實現:把 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion \Image File Execution Options]項刪除即可。

    好了,問題解決了,你改名的那些文件也該改過來了(把 COM 改回 EXE ),嘎嘎~~關於映像劫持方面的問題,過兩天會給大家貼出來的!

     

何謂映像劫持(IFEO)?(包含說明與解決方式)

一、有可能會發生的狀況:

當您要執行A程式時卻執行B程式,而更改A程式的檔名後卻又可以正常執行(例如要執行Skype.exe,但是卻執行msnmsgr.exe,這就表示 Skype 程序被 msnmsgr 給劫持

二、什麼是映像劫持(IFEO)?

所謂的映像劫持(IFEO)就是 Image File Execution Options 其實應該稱為(Image Hijack)是位於註冊表的

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\

三、被劫持

雖然映像劫持是系統自帶的功能,對一般用戶來說根本沒什麽用的必要,但是就有一些病毒通過映像劫持來做文章,表面上看起來是執行了一個正常的程序,實際上病毒已經在後台執行了。

大部分的病毒和木馬都是通過加載劫持啟動項來執行的,也有一些是註冊成為劫持服務來啟動,他們主要通過修改登錄檔來實現這個目的,主要有以下幾個機碼:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsCurrent\Version\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsCurrent\Version\RunOnce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsCurrent\Version\RunServicesOnce

映像劫持病毒主要通過修改登錄檔中的:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\(被病毒劫持的檔案)
Debugger = (病毒檔案)

Image File Execution Options的參數有下列,但是會產生問題的只有「Debugger」參數

ApplicationGoo
Debugger
PageHeapFlags
DisableHeapLookAside
DebugProcessHeapOnly
PageHeapSizeRangeStart
PageHeapSizeRangeEnd
PageHeapRandomProbability
PageHeapDllRangeStart
PageHeapDllRangeEnd
GlobalFlag
BreakOnDllLoad
ShutdownFlags

若是沒有被病毒劫持的電腦就只有下列機碼:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Your Image File Name Here without a path
Debugger = ntsd -d

若是被劫持就如同下列:病毒 123.exe 要劫持 svchost 程序,就會新建一個 svchost.exe 的機碼值,並在下列的 debugger 值修改為 Debugger = 123.exe(通常位於 C:\Windows\System32\底下)

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\svchost.exe
Debugger = 123.exe

病毒實際修改範例:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\avp.exe(劫持卡巴的執行檔,這樣一來卡巴就無法正常執行)
Debugger = ntsd -d

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\360Safe.exe
Debugger = ntsd -d

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Your Image File Name Here without a path
Debugger = ntsd -d

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\zhudongfangyu.exe
Debugger = ntsd -d

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\党葩馱撿.exe
Debugger = ntsd -d

四、玩劫持

1、禁止某些程序的執行

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\qq.exe]
Debugger=123.exe

把上面的代碼保存爲norun_qq.reg,雙擊導入注冊表,每次雙擊執行QQ的時候,系統都會彈出一個框提示說找不到QQ,原因就QQ被重定向了。如果要讓QQ繼續執行的話,把123.exe改爲其安裝目錄就可以了。

2、偷梁換柱惡作劇

每次我們按下CTRL+ALT+DEL按鈕時,都會跳出「工作管理員」視窗,想不想在我們按下這些鍵的時候讓它跳出「系統設定」視窗:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe]
Debugger=C:\WINDOWS\pchealth\helpctr\binaries\mconfig.exe

並把以上的內容儲存檔案為【task_cmd.reg】並執行,這樣按下CTRL+ALT+DEL按鈕,就會跳出「系統設定」視窗

3、讓病毒迷失自我

同上面的道理一樣,如果我們把病毒程序給重新定義了,是不是病毒就不能執行了,答案是肯定的。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sppoolsv.exe]
Debugger=123.exe
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\logo_1.exe]
Debugger=123.exe

上面的機碼是以金豬病毒和威金病毒為例,這樣即使這些病毒在系統啟動項裡面,即使隨系統執行了,但是由於映象劫持的重定向作用,還是會被系統提示無法找到病毒檔案(這裏是logo_1.exe和sppoolsv.exe)。

五、防劫持

1、權限限制法:

執行「regedit.exe」開啟「登錄編輯程式」尋找下列機碼:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\

在此機碼上點選右鍵選擇(使用權限(P)...),將 Administrator 和 SYSTEM 使用者的完全控制和讀取權限,修改為「拒絕」。

2、快刀斬亂麻法

執行「regedit.exe」開啟「登錄編輯程式」尋找下列機碼:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\,把「Image File Execution Options」機碼刪除即可。

3、防止重生

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\【病毒名.exe】]
"Debugger"="【病毒名.exe】"
regedit /s kill.reg &del /q kill.reg

修改【病毒名.exe】為你想禁止的病毒檔案名稱,並把以上的內容儲存檔案為【kill.bat】並執行,這樣此病毒就不會在您的系統中執行。

轉載自: 張貼者: 愛伯特