《加密與解密》是一本逆向必讀書籍。本書以軟體逆向為切入點,講述了軟體安全領域相關的基礎知識和技能,可以說是安全人士必讀書籍之一了。《加密與解密》(第四版)國慶後將出版上市,許多朋友非常關注這本書,在這裡簡單談談閱讀這本書之前,需要哪些基礎知識。
很多人都想學習加解密,這東西剛入門時會讓人沉迷進去,可以飯不吃、覺不睡。出現這種現像,也許是解密滿足了人們的獵奇心理吧。但掌握這方面技術,對自身的提高確實有好處:可以透過跟蹤軟體,提高自己的除錯技能,並且能瞭解他人程式思路,使自己寫出更好的程式。研究解密技術有助於掌握一些系統底層知識,系統底層知識絕對是構造起大型軟體的堅實基礎。許多開發人員的發展,都經歷了這一鍛鍊過程。
大多數人可能認為解密是一門高深的學問。造成這種原因是以前這方面的技術資料缺乏,從而將“解密”這一技能“神”化了。初學者一般不知從何下手,由於沒方向,花費了大量時間和精力,走了不少彎路。這裡就給對這方面感興趣的讀者指明一個方向。
討論前,先了解一下計算機中的程式。高階語言編寫的程式,會編譯成機器語言在CPU中執行,如Visual
C++等。由於機器語言與組合語言是一一對應的,因此就可將機器語言轉化成組合語言,這個過程稱之為反彙編。而組合語言可能讀性是比較好的,這樣就可分析程式流程,解析其功能了,這個過程就是解密(俗稱破解)。也就是說,解密的基礎是建立在組合語言級別上的,因此想涉足這一領域的朋友,組合語言一定得學好。
組合語言是大學計算機的必修課,這方面的書籍非常多,例如基普·歐文的《組合語言:基於x86處理器》、王爽的《組合語言》等。雖然大多數書籍以16位彙編為講解平臺,但對理解彙編指令功能而言依然有益。
等彙編學好了,此時一般的逆向文章己能看懂了,但為了水平提高的更快些,建議再掌握Win32程式設計。Win32程式設計就是API方式的Windows程式設計,學習Windows API將使您更深入地瞭解Windows工作方式。此類書籍有Charles Petzold著的《Windows程式設計》(以VC來講解)等。
有了上面這些基礎,你就能看懂一些逆向文章了,也能看懂《 加密與解密(第四版)》這本書了。
讀者在閱讀本書的內容後,很容易就能在逆向分析、漏洞分析、安全程式設計、病毒分析等領域進行擴充套件。這些知識點的相互關聯,將促使讀者開闊思路,使所學融會貫通,領悟更多的學習方法,提升自身的學習能力。
軟體的加密與解密是一個迷人的研究領域,它幾乎可以與任意一種計算機技術緊密結合――密碼學、程式設計語言、作業系統、資料結構。而由於這樣或者那樣的原因,對於這一領域的關注程度一直還處於低溫狀態。而這本書相信會為更多對知識懷有渴望的朋友多開闢一條走向這個領域的道路,並且進而推動這個領域的不斷髮展。
上述三本書的京東連結,可以直接微信掃描如下二維碼購買: