• 6

[求救] 希望有人能解出來

我的看法是這跟硬體無關,但跟軟體絕對有關係!

從圖上的錯誤訊息看來是IE執行到0x4fdc50a(這是16進位的記憶體位址)的指令碼時出現錯誤

上面寫這條指令參考的0x00000000該地址不能為READ意思是0x00000000這位址的記憶體無法讀取

如果對Windows程式有研究的話,就會知道每個程式執行時都會分配4GB的記憶體空間從0x00000000到0xFFFFFFFF(0x代表16進位)

不過這4GB的記憶體是虛擬的,也就是說不管你電腦裝多少記憶體,每個進程都會分配到4GB的記憶體

而這4GB(0x00000000~0xFFFFFFFF)的記憶體中前面64KB(0x00000000~0x0000FFFF)

跟最後64KB(7fff0000h~7fffffffh)是系統保留的,程式沒有權限存取!!

所以當妳的程式執行到讀取或是寫入0x00000000這個地址時就會發生違規存取!!

例如這條指令:MOV EAX,DWORD Ptr [ESI]

如果ESI暫存器因為某種問題變成0的話,就會變成讀取0x00000000這個記憶體的值並把它存到EAX暫存器

就會發生違規存取,然後程式就崩潰(crash)了!

發生這種現象的原因大部分都是成是本身的BUG,程式中被當作指標的暫存器出現異常造成違規存取

不過就IE這種已經非常成熟的程式來說,幾乎是不太可能會發生這種錯誤(微軟的工程師應該不可能會犯這種錯吧)

最有可能的原因就是程式本身遭到外掛修改,如果是我的話,因為對組合語言比較了解

所以會拿起OllyDBG(簡稱OD)來"幫IE除錯",只要查看0x4fdc50a前面的指令然後再看暫存器的值就知道是什麼問題了!

不過最好的解決方式還是重新安裝IE吧!

建議大家用IE時用"原廠"的IE就好,不要隨便"改裝"

原廠的總是不會有問題的,反而是改裝的比較容易有問題唷!(汽車也是一樣的)
  • 6
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?