- C++反匯編與逆向分析技術(shù)揭秘(第2版)
- 錢林松 張延清
- 1897字
- 2021-09-27 17:05:05
序一
人類社會在經(jīng)歷了機(jī)械化、電氣化之后,進(jìn)入了一個嶄新的信息化時代。
在信息化時代,電子信息產(chǎn)業(yè)成為世界第一大產(chǎn)業(yè)。信息就像水、電、石油一樣,與所有行業(yè)和所有人息息相關(guān),成為一種基礎(chǔ)資源。信息和信息技術(shù)改變著人們的生活和工作方式。離開計算機(jī)、網(wǎng)絡(luò)、電視和手機(jī)等電子信息設(shè)備,人們將無法正常生活和工作。
在信息化時代,計算機(jī)系統(tǒng)集中管理著政治、軍事、金融、技術(shù)、商務(wù)等重要信息,控制著軍事裝備、航空航天、工業(yè)系統(tǒng)等重要設(shè)施,因而計算機(jī)系統(tǒng)成為不法分子的主要攻擊目標(biāo)。計算機(jī)系統(tǒng)本身的脆弱性和網(wǎng)絡(luò)的開放性,使得計算機(jī)系統(tǒng)的安全成為世人關(guān)注的社會問題。
當(dāng)前的形勢是,一方面信息技術(shù)與產(chǎn)業(yè)空前繁榮,另一方面危害信息安全的事件不斷發(fā)生。敵對勢力的破壞、網(wǎng)絡(luò)戰(zhàn)、病毒等惡意軟件侵害、黑客攻擊、利用計算機(jī)犯罪、網(wǎng)上有害信息泛濫、個人隱私泄露等,對信息安全構(gòu)成了極大威脅。因此,信息安全的形勢是嚴(yán)峻的。
信息論的基本觀點告訴我們:系統(tǒng)是載體,信息是內(nèi)涵,信息不能脫離系統(tǒng)而孤立存在。因此,我們應(yīng)當(dāng)從信息系統(tǒng)角度來看待和處理信息安全問題。任何信息系統(tǒng)都由硬件、軟件和數(shù)據(jù)構(gòu)成,要確保信息系統(tǒng)安全就必須確保硬件安全、軟件安全和數(shù)據(jù)安全。軟件安全成為信息系統(tǒng)安全的重要方面。不能確保軟件安全,就無法保證信息系統(tǒng)安全,也就不能保證信息安全。“軟件定義一切”充分反映出軟件在信息社會中發(fā)揮的巨大作用。然而,只有軟件是安全的,軟件設(shè)計的一切才可能是安全的。如果軟件是不安全的,則軟件設(shè)計的一切肯定是不安全的。這就進(jìn)一步說明軟件安全的重要性。
因為軟件在靜態(tài)時表現(xiàn)為數(shù)據(jù),在動態(tài)執(zhí)行時表現(xiàn)為行為,所以軟件安全既包含靜態(tài)時的數(shù)據(jù)安全,也包含動態(tài)時的行為安全。軟件安全主要包括正確性(無差錯)、穩(wěn)定性、可靠性、完整性、行為預(yù)期性和行為可控性等方面。可見,軟件安全是十分復(fù)雜的,確保軟件安全是困難的。
軟件工程告訴我們,提高軟件安全性的一種方法是對軟件進(jìn)行測試。其中包括知道源代碼的“白盒”測試和不知道源代碼的“黑盒”測試。如果能夠在“黑盒”測試時設(shè)法掌握軟件的部分代碼,對于提高測試效果是極有利的,這就需要對軟件進(jìn)行逆向分析。
對軟件進(jìn)行逆向分析,是通過閱讀其反匯編代碼,推斷其數(shù)據(jù)結(jié)構(gòu)、體系結(jié)構(gòu)和程序設(shè)計思路,進(jìn)而判斷是否侵犯別人的知識產(chǎn)權(quán),是否有錯誤,是否有后門,是否有惡意行為,等等。顯然,這對于學(xué)習(xí)先進(jìn)軟件技術(shù),確保軟件安全性是極重要的一種方法。
經(jīng)驗告訴我們,平均1000行代碼中就可能有一個漏洞。如果漏洞被壞人利用,造成的損失將是難以估量的!顯然,在這種情形下,軟件逆向分析對確保我國信息安全是可以發(fā)揮積極作用的。
從方法論上來看,網(wǎng)絡(luò)空間安全學(xué)科的方法論包含以下四個步驟。
1)理論分析。
2)逆向分析。
3)實驗驗證。
4)技術(shù)實現(xiàn)。
其中逆向分析是網(wǎng)絡(luò)空間安全學(xué)科特有的研究方法。據(jù)此,軟件逆向分析符合網(wǎng)絡(luò)空間安全學(xué)科的方法論。因此,軟件逆向分析技術(shù)是網(wǎng)絡(luò)空間安全學(xué)科所有科教工作者都應(yīng)掌握并應(yīng)用的。
目前國內(nèi)由于缺少軟件逆向分析技術(shù)的教材和師資,只有少數(shù)大專院校開設(shè)了軟件逆向分析的課程。多數(shù)院校的信息安全、網(wǎng)絡(luò)空間安全、計算機(jī)等專業(yè)對軟件逆向分析技術(shù)還沒有給予足夠的重視。社會迫切需要更多軟件逆向分析技術(shù)的教材和資料,要培養(yǎng)大批軟件逆向分析技術(shù)的師資和技術(shù)人員。
2011年作者錢林松在機(jī)械工業(yè)出版社出版了著作《C++反匯編與逆向分析技術(shù)揭秘》。該書受到廣大讀者的喜愛。一轉(zhuǎn)眼十年過去了,軟件逆向分析技術(shù)有了許多新發(fā)展,社會也有了許多新需求。為了滿足社會的需求與讀者的渴望,錢林松又推出了著作《C++反匯編與逆向分析技術(shù)揭秘(第2版)》。本書推陳出新,新增了許多新技術(shù)、新工具和新應(yīng)用,并重新設(shè)計了所有的示例。書中內(nèi)容新穎、案例豐富、敘述清楚、技術(shù)實用。相信這本新書一定能夠得到廣大讀者的厚愛,為推進(jìn)我國軟件逆向分析的技術(shù)進(jìn)步和人才培養(yǎng)做出新貢獻(xiàn)!
錢林松是我國軟件領(lǐng)域一個自學(xué)成材的傳奇式“武林高手”。他中專放射物理專業(yè)畢業(yè),酷愛計算機(jī)軟件,專攻軟件逆向分析技術(shù),經(jīng)歷了從中專到武漢大學(xué)碩士學(xué)位,從業(yè)余愛好到專業(yè)開發(fā),從打工到自主創(chuàng)業(yè),從國內(nèi)到國外再到國內(nèi)的發(fā)展歷程。在產(chǎn)品開發(fā)方面,他在美國公司通過逆向分析改進(jìn)產(chǎn)品,獲得北美分子影像學(xué)會展(AMI)一等獎。在軟件逆向分析人才培訓(xùn)方面,他已經(jīng)培訓(xùn)了一千多名專業(yè)人才,并在清華大學(xué)的培訓(xùn)班講課一年。2020年,他成為武漢大學(xué)兼職教師,走上國家一流網(wǎng)絡(luò)安全學(xué)院的講臺。
最后預(yù)祝《C++反匯編與逆向分析技術(shù)揭秘(第2版)》獲得成功!衷心感謝機(jī)械工業(yè)出版社和每一位讀者!
武漢大學(xué)國家網(wǎng)絡(luò)安全學(xué)院 張煥國
2021年8月15日于武漢大學(xué)珞珈山
- Boost.Asio C++ Network Programming(Second Edition)
- Data Visualization with D3 4.x Cookbook(Second Edition)
- FuelPHP Application Development Blueprints
- PostgreSQL Cookbook
- Android 7編程入門經(jīng)典:使用Android Studio 2(第4版)
- jQuery從入門到精通 (軟件開發(fā)視頻大講堂)
- INSTANT CakePHP Starter
- Julia Cookbook
- 深入淺出PostgreSQL
- 持續(xù)輕量級Java EE開發(fā):編寫可測試的代碼
- TMS320LF240x芯片原理、設(shè)計及應(yīng)用
- 從零開始學(xué)Python網(wǎng)絡(luò)爬蟲
- Building Serverless Web Applications
- Java高級程序設(shè)計
- JavaScript前端開發(fā)基礎(chǔ)教程