調(diào)試有一個(gè)相當(dāng)不好的名聲。我的意思是像棘,如果開(kāi)發(fā)人員對(duì)程序有完整的了解稽亏,就不會(huì)產(chǎn)生任何的漏洞,他們不會(huì)在第一時(shí)間進(jìn)行調(diào)試缕题,對(duì)嗎截歉?
不要這樣想。
任何軟件都會(huì)有漏洞烟零。你的產(chǎn)品經(jīng)理要求再多的測(cè)試也無(wú)法避免這個(gè)問(wèn)題瘪松。事實(shí)上,將調(diào)試看成破碎物品修復(fù)的過(guò)程實(shí)際上是一種有害的思維方式锨阿,會(huì)在心理上阻礙你的分析能力宵睦。
相反,你應(yīng)該將調(diào)試看成更好地理解程序的過(guò)程墅诡。這是一個(gè)微妙的差異壳嚎,但如果你真的這樣想,之前調(diào)試的煩惱都會(huì)消失末早。
同樣的負(fù)面含義也可以用在逆向工程軟件烟馅。你可能會(huì)想到盜竊銀行賬戶(hù)和信用卡的蒙面黑客,但是對(duì)于本書(shū)來(lái)說(shuō)然磷,逆向工程實(shí)際上只是在沒(méi)有源代碼的情況下進(jìn)行調(diào)試 —— 這又可以幫助你更好地理解程序或系統(tǒng)郑趁。
逆向工程本身沒(méi)有任何問(wèn)題。 事實(shí)上姿搜,如果調(diào)試是一個(gè)游戲寡润,那么逆向工程只是在“困難”的設(shè)定下進(jìn)行調(diào)試 —— 如果你已經(jīng)玩了一段時(shí)間缺脉,這將是一個(gè)非常有趣的設(shè)定。
在本書(shū)中悦穿,你將會(huì)意識(shí)到調(diào)試是一個(gè)令人愉快的過(guò)程,它可以幫助你更好地理解軟件业踢。 你不僅可以學(xué)習(xí)更快地發(fā)現(xiàn)漏洞栗柒,還可以了解其他開(kāi)發(fā)人員是如何解決類(lèi)似的問(wèn)題的。 你還將學(xué)習(xí)如何創(chuàng)建自定義且強(qiáng)大的調(diào)試腳本知举,幫助你快速找到任何你感興趣的項(xiàng)目的答案瞬沦,無(wú)論是在你自己的代碼中 —— 還是其他人的。