查看單個文章
舊 2007-07-13, 09:19 PM   #3 (permalink)
mini
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:98 | 在線時長:10165小時 | 升級還需:32小時級別:98 | 在線時長:10165小時 | 升級還需:32小時級別:98 | 在線時長:10165小時 | 升級還需:32小時級別:98 | 在線時長:10165小時 | 升級還需:32小時級別:98 | 在線時長:10165小時 | 升級還需:32小時級別:98 | 在線時長:10165小時 | 升級還需:32小時級別:98 | 在線時長:10165小時 | 升級還需:32小時級別:98 | 在線時長:10165小時 | 升級還需:32小時
註冊日期: 2002-12-07
文章: 13490
精華: 0
現金: 26853 金幣
資產: 3024783 金幣
預設

可看出 ntdll與卡巴相沖
一般來說會選擇重開機再試一次
再不行換個卡巴版本

要追蹤程式狀況的話
windbg 不能分析 dll
所以這裡建議用功能比較強的 OllyDbg
打開 ntdll.dll 後可發現其啟始地址就是 7c920000
既然 ExceptionAddress 是 7c930de3
哪請 goto那一個地址
可看到 機械碼是 CMP DX,WORD PTR DS:[EAX]
此時不知當時的 EAX暫存器 的內容
所以 ...

至於
ExceptionCode: c0000005 (Access violation)
的 c0000005 是什麼意思呢 ?
後面的刮號就告知了 Access violation
那什麼是Access violation錯誤 (違法存取)?
這裡從 google 得知 :
當你運行程式得到了一個AV(Access Violation)錯誤的時候,這意味著你的程式正在試圖訪問一塊不再有效的內存(記憶體),請注意我所提到的「不再」有效。大多數的情況下,出現這個錯誤要麼是因為你試圖訪問一塊已經被釋放的內存,要麼是想使用一個還未創建對象的指針(指標)。

所以
CMP DX,WORD PTR DS:[EAX] 為何出錯就明了一半了
因為 DS:[EAX] 這個位址已屬於 不可存取區域了
那可發現到一行
READ_ADDRESS: 02990580 (翻成十六進位是 2DA1F4)
原來就是指 EAX
也就是 資料節區 0x2DA1F4 是不可存取的(不存在的)
大概就是這樣...
(要繼續下去的話 還要分析 prloader.dll)

※DS 是資料節區暫存器,程式中較有意義的資料都放在此,比如字串、數值...
不可存取 有可能是 保護位址 或 EAX提供錯誤的位址

說真的
這種東西是給系統分析員用的
看你程式哪裡怎麼樣 什麼的...
當然也有人是拿來做破解 什麼的...

先申明一下
以上都是臨時自己揣測,是否正確 ...
mini 目前離線  
送花文章: 2054, 收花文章: 8068 篇, 收花: 26921 次
回覆時引用此帖