已經找到幾種解決在SOFTICE中在第一條指令中斷的方法,希望大家找到更多更好的.多謝看雪兄的提示. (980字)

看雪資料發表於2000-07-23

1、根據看雪兄的提示,用ProcDump找到壓縮程式的入口點所在的Section,修改其characteristics為E000020,就成功了。不過要注意對有其自身的程式碼檢查功能的程式。跟蹤時注意跳轉。對Asprotect壓縮過的程式不行。

2、以上方法不行的話,再試試這種方法
以下為步驟:
1、用ProcDump修改該程式的入口點所在的Section為E000020。(其實這步不要好象也行)
2、用ProcDump修改程式的入口點,使其減一。比如:ProcDump顯示Entry Point:0005B001就改為0005B000。
(如果新的入口點不和原入口點在同一Section會出現什麼問題??請高手賜教。Asprotect壓縮過的程式剛好為我們留了一個位元組的空間。)
3、用HIEW修改新的入口點的這一個位元組的內容為0xCC。(就是int 3)
4、用SoftICE的Loader裝入程式,Ctrl-D中斷,設定I3HERE ON。(以前我就是沒有設定I3HERE ON所以不成功)
5、Load。中斷在入口。剛剛好。呵呵....
這種方法我剛發現。有效性有多大還請大家一起試一下。我試了試對Asprotect壓縮過的程式可以。這種方法的思路來自一位高手的一篇以前的SOFTICE for DOS中對DOS4GW中斷的文章。我把它移植到M$中來。不過中斷後別忘了設定I3HERE OFF免得麻煩。

相關文章