-
1 # 東華84412076
-
2 # 東華84412076
首先說說07e這個程式碼,根據網路資訊很可能是病毒感染或者記憶體不穩定。
然後藍色畫面變綠屏是有兩個原因的系統相關檔案被修改(下面我會轉一篇修改這方面的文章),另外一個是顯示屏連線故障,一般是資料線故障或者介面故障(這個可以透過重啟,看看有沒有變化,看看有沒有螢幕現實是否有不穩定的情況)
說說我的分析:
如果確認現實連線沒問題,其他介面顏色正常的情況下
檢查拆除記憶體進行清理,重新安裝
用防毒軟體掃描病毒確認是否中毒。
希望你能解決。
準備工作
我們要修改核心程式碼,首先就是要開啟修改記憶體中的核心程式碼的功能。Windows在小於2GB記憶體的系統上用4KB的記憶體頁來儲存核心程式碼,這樣比較方便設定合適的頁保護屬性。比如核心資料頁應該允許讀取和寫入訪問,而核心內碼表就只應該允許讀取和執行訪問。為了提高虛擬地址翻譯的速 度,Windows在資源充足的系統上使用大記憶體頁(4 MB)。這就是說如果有程式碼和資料同時儲存在一個記憶體頁裡,這個記憶體頁就必須允許讀取、寫入和執行訪問。所以為了確保你可以編輯記憶體頁,你可以建議 Windows使用大記憶體頁。如果你的系統是Windows XP或者Server 2003,並且記憶體小於256 MB,或者是Windows Vista或更高版本且記憶體小於2 GB,在HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management下建立一個名為LargePageMinimum,型別為REG_DWORD,資料為1的登錄檔值:
為了讓你不必在Windows自動重啟前手忙腳亂地衝到朋友面前炫耀你的成果,你可以關閉自動重啟。在Windows XP和Server 2003系統中,右鍵單擊“我的電腦”,選擇“高階”選項卡,單擊“啟動和故障恢復”中的“設定”按鈕。在Windows Vista及更高版本中,右鍵單擊開始選單中的“計算機”選擇“屬性”,單擊“高階系統設定”,選擇“高階”選項卡,單擊“啟動和故障恢復”中的“設定” 按鈕。最後,取消選擇“自動重新啟動”複選框:
如果你在用64位 Windows Vista或更高版本,你需要用除錯模式啟動系統,這樣才可以用核心偵錯程式的“本地除錯”模式。你可以在開機的時候按F8然後選擇“除錯模式啟動”或者在“系統配置”工具中選擇“除錯”複選框:
下面重啟並以管理員身份執行偵錯程式(如果開了UAC,以管理員身份執行)。在File選單中開啟“Symbol Search Path”對話方塊,輸入這個字串:srv*c:\symbols*http://msdl.microsoft.com/download /symbols(c:\symbols 可以是任意本地目錄,用於給偵錯程式存放快取的符號),這樣就可以將偵錯程式符號路徑指向微軟符號伺服器。下面在File選單中開啟“Kernel Debugging”對話方塊,單擊“Local”選項卡,按“確定”按鈕:
接下來的步驟會因你的系統版本而有所不同。
32位Windows XP和Windows Server 2003
這些系統上顯示藍色畫面的函式是KeBugCheck2。你要找的是這個函式把顏色值傳遞給填充螢幕背景的函式InbvSolidColorFill的地方。輸入“u kebugcheck2”命令來顯示函式開頭,然後繼續輸入“u”命令顯示更多的記憶體頁,直到你看到對InbvSolidColorFill的呼叫為止。 (在輸入一次“u”之後,你只要一直按回車就可以重複這個命令了)。你大概要顯示30-40個記憶體頁才能看到這個呼叫:
在這個呼叫之前,你會看到一個帶有引數4的指令(“push 4”),如上圖。選擇地址行並按下Ctrl+C以複製這個指令的地址。接下來在偵錯程式命令視窗中輸入“eb ”,然後按Ctrl+V貼上這個地址,然後輸入“+1”,然後按回車。偵錯程式會進入記憶體編輯模式,並從那個顏色程式碼的地址開始編輯。現在你可以選顏色了,1是紅色,2是綠色,你還可以試試別的顏色。只要輸入數字然後按兩次回車就可以儲存修改並退出編輯模式。退出後你的螢幕應該是這個樣子:
64位Windows以及32位Windows Vista及更高版本
在這些版本的Windows裡,畫藍色畫面的函式叫KiDisplayBlueScreen。輸入“u kidisplaybluescreen”然後一直輸入“u”命令顯示函式的記憶體頁,直到你找到對InbvSolidColorFill函式的呼叫為止。 在32位Windows上,你可以按上一節給出的方法來編輯顏色值。在64位系統上,InvbSolidColorFill前的那個指令是傳遞顏色的指 令,所以複製它的地址並輸入“eb <地址>+4”進行編輯。偵錯程式會進入記憶體編輯模式,然後你就可以修改它的值(比如1是紅色,2是綠色):
檢視結果
你現在可以準備讓系統藍色畫面了。如果你用的是64位系統,那可能已經藍色畫面了。這是因為Kernel Patch Protection會發現這些修改,然後使系統藍色畫面。這樣做可以避免一些第三方軟體廠商考慮用修改核心程式碼的方式實現某些功能。不過,系統最多可能會延遲7分鐘才藍色畫面。要想隨時藍色畫面,可以執行Notmyfault工具(你可以從《Windows Internals》的相關頁面中下載到),然後按下“Do Bug”按鈕(為避免資料丟失,請確保你儲存了所有檔案並關閉了其它程式):
然後你就會得到一個自選顏色的藍色畫面了,比如我選的紅屏:
節日藍色畫面
為了增添節日氣氛,我還要生成一個節日主題的藍色畫面:不僅要修改背景色,還要修改文字顏色。在64位Windows Vista及更高版本下,找到緊跟InvbSolidColorFill函式呼叫的InvbSetTextColor,並找到將文字顏色傳給該函式的指令 “move ecx, 0Fh”:
0Fh引數表示白色,但你可以用同樣的方法改成別的顏色。使用“eb”命令,傳入該指令的地址加1。在下圖中我設定成了紅色(也就是1):
這就是我弄出的很有喜慶氣氛的藍色畫面:
原文連結:http://www.ipc.me/change-bluescreen-to-other-color.html
回覆列表
首先說說07e這個程式碼,根據網路資訊很可能是病毒感染或者記憶體不穩定。
然後藍色畫面變綠屏是有兩個原因的系統相關檔案被修改(下面我會轉一篇修改這方面的文章),另外一個是顯示屏連線故障,一般是資料線故障或者介面故障(這個可以透過重啟,看看有沒有變化,看看有沒有螢幕現實是否有不穩定的情況)
說說我的分析:
如果確認現實連線沒問題,其他介面顏色正常的情況下
檢查拆除記憶體進行清理,重新安裝
用防毒軟體掃描病毒確認是否中毒。
希望你能解決。
準備工作
我們要修改核心程式碼,首先就是要開啟修改記憶體中的核心程式碼的功能。Windows在小於2GB記憶體的系統上用4KB的記憶體頁來儲存核心程式碼,這樣比較方便設定合適的頁保護屬性。比如核心資料頁應該允許讀取和寫入訪問,而核心內碼表就只應該允許讀取和執行訪問。為了提高虛擬地址翻譯的速 度,Windows在資源充足的系統上使用大記憶體頁(4 MB)。這就是說如果有程式碼和資料同時儲存在一個記憶體頁裡,這個記憶體頁就必須允許讀取、寫入和執行訪問。所以為了確保你可以編輯記憶體頁,你可以建議 Windows使用大記憶體頁。如果你的系統是Windows XP或者Server 2003,並且記憶體小於256 MB,或者是Windows Vista或更高版本且記憶體小於2 GB,在HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management下建立一個名為LargePageMinimum,型別為REG_DWORD,資料為1的登錄檔值:
為了讓你不必在Windows自動重啟前手忙腳亂地衝到朋友面前炫耀你的成果,你可以關閉自動重啟。在Windows XP和Server 2003系統中,右鍵單擊“我的電腦”,選擇“高階”選項卡,單擊“啟動和故障恢復”中的“設定”按鈕。在Windows Vista及更高版本中,右鍵單擊開始選單中的“計算機”選擇“屬性”,單擊“高階系統設定”,選擇“高階”選項卡,單擊“啟動和故障恢復”中的“設定” 按鈕。最後,取消選擇“自動重新啟動”複選框:
如果你在用64位 Windows Vista或更高版本,你需要用除錯模式啟動系統,這樣才可以用核心偵錯程式的“本地除錯”模式。你可以在開機的時候按F8然後選擇“除錯模式啟動”或者在“系統配置”工具中選擇“除錯”複選框:
下面重啟並以管理員身份執行偵錯程式(如果開了UAC,以管理員身份執行)。在File選單中開啟“Symbol Search Path”對話方塊,輸入這個字串:srv*c:\symbols*http://msdl.microsoft.com/download /symbols(c:\symbols 可以是任意本地目錄,用於給偵錯程式存放快取的符號),這樣就可以將偵錯程式符號路徑指向微軟符號伺服器。下面在File選單中開啟“Kernel Debugging”對話方塊,單擊“Local”選項卡,按“確定”按鈕:
接下來的步驟會因你的系統版本而有所不同。
32位Windows XP和Windows Server 2003
這些系統上顯示藍色畫面的函式是KeBugCheck2。你要找的是這個函式把顏色值傳遞給填充螢幕背景的函式InbvSolidColorFill的地方。輸入“u kebugcheck2”命令來顯示函式開頭,然後繼續輸入“u”命令顯示更多的記憶體頁,直到你看到對InbvSolidColorFill的呼叫為止。 (在輸入一次“u”之後,你只要一直按回車就可以重複這個命令了)。你大概要顯示30-40個記憶體頁才能看到這個呼叫:
在這個呼叫之前,你會看到一個帶有引數4的指令(“push 4”),如上圖。選擇地址行並按下Ctrl+C以複製這個指令的地址。接下來在偵錯程式命令視窗中輸入“eb ”,然後按Ctrl+V貼上這個地址,然後輸入“+1”,然後按回車。偵錯程式會進入記憶體編輯模式,並從那個顏色程式碼的地址開始編輯。現在你可以選顏色了,1是紅色,2是綠色,你還可以試試別的顏色。只要輸入數字然後按兩次回車就可以儲存修改並退出編輯模式。退出後你的螢幕應該是這個樣子:
64位Windows以及32位Windows Vista及更高版本
在這些版本的Windows裡,畫藍色畫面的函式叫KiDisplayBlueScreen。輸入“u kidisplaybluescreen”然後一直輸入“u”命令顯示函式的記憶體頁,直到你找到對InbvSolidColorFill函式的呼叫為止。 在32位Windows上,你可以按上一節給出的方法來編輯顏色值。在64位系統上,InvbSolidColorFill前的那個指令是傳遞顏色的指 令,所以複製它的地址並輸入“eb <地址>+4”進行編輯。偵錯程式會進入記憶體編輯模式,然後你就可以修改它的值(比如1是紅色,2是綠色):
檢視結果
你現在可以準備讓系統藍色畫面了。如果你用的是64位系統,那可能已經藍色畫面了。這是因為Kernel Patch Protection會發現這些修改,然後使系統藍色畫面。這樣做可以避免一些第三方軟體廠商考慮用修改核心程式碼的方式實現某些功能。不過,系統最多可能會延遲7分鐘才藍色畫面。要想隨時藍色畫面,可以執行Notmyfault工具(你可以從《Windows Internals》的相關頁面中下載到),然後按下“Do Bug”按鈕(為避免資料丟失,請確保你儲存了所有檔案並關閉了其它程式):
然後你就會得到一個自選顏色的藍色畫面了,比如我選的紅屏:
節日藍色畫面
為了增添節日氣氛,我還要生成一個節日主題的藍色畫面:不僅要修改背景色,還要修改文字顏色。在64位Windows Vista及更高版本下,找到緊跟InvbSolidColorFill函式呼叫的InvbSetTextColor,並找到將文字顏色傳給該函式的指令 “move ecx, 0Fh”:
0Fh引數表示白色,但你可以用同樣的方法改成別的顏色。使用“eb”命令,傳入該指令的地址加1。在下圖中我設定成了紅色(也就是1):
這就是我弄出的很有喜慶氣氛的藍色畫面:
原文連結:http://www.ipc.me/change-bluescreen-to-other-color.html