《逆向工程核心原理》讀後感

11月22日 看完了第一部分,雖然是翻譯的,但語言非常流暢,讀起來很舒服。有了之前看過的那些書的基礎,這一部分看得非常快,而且感覺作者設置的學習曲線比較平緩,知識屏蔽也比較到位,有一種在看王爽彙編語言的感覺。

11月23日 看完第13章“PE格式”,這是我第3次看PE的內容,之前分別是《程序員的自我修養》《加密與解密》,我發現《程序員的自我修養》同本書一樣也強調通過自己寫一個PE格式解析器來加強對PE頭的理解。因此後續應當先寫個簡易版本的程序來解讀PE,確認自己真的掌握了再往下閱讀。

11月25日 看完了第二部分,初步用工具查看了一下PE文件,直觀感覺了一下RAV與文件偏移的換算。大體是看RVA屬於哪一節,如果比最小一個節的VA還小,則直接與文件偏移相同。知道在哪個節後,用節的偏移baseRAV減去節對應的文件偏移,得到 k,然後 RVA-k = 文件偏移。這裏有2個名詞的縮寫正好一樣,需要注意:節頭部的VA,其實這是頭部的RVA。並不是 baseOffset + RVA = VA 的這一個。

後面又看了UPX和UPack的內容,感覺脫殼本身還是很講究經驗與彙編功底的。

11月26日 看完第25章 這幾章的內容都是DLL的注入,感覺看了這個都不用再去看Win編程聖經的書了。書中分別介紹了鉤子、創建遠程線程、註冊表、直接修改PE這四種DLL的注入。另外DLL的卸載感覺比注入還麻煩一些。

11月28日 看完了代碼注入的章節。感覺這些不是“破解”範疇的內容,更符合打補丁的需要。不過本書的目標也不是爲了破解這種灰色內容,而是漏洞分析、修復、功能增強等。書中將彙編注入到程序中是比較風騷的操作,果然是越底層能玩的花樣越多,又有誰能想到以Call方法來入棧參數呢。

11月29日 看完第44章。這些章節都是以注入爲基礎,講解了各種鉤子技術,並說明了鉤子應當如何調試。看了這些才知道隱藏進程是如何實現的,不然以前用OD時插件時,知其然,不然其所以然。後面還講解了一些64位的知識,包括Wow64是個什麼東西,這作者寫書確實心細。

11月30日 看完第48章 這裏的內容主要是講TEP、TIB、SEH、PEB等內容,以前這些陌生的術語,終於能明白是怎麼一回事,另外還知道了FS[0x030]到底是要做什麼,之前逆向一個Delphi程序時老是見到這個FS段

12月1日 看完第52章動態反調試,後面的高級反調試及隨後的第八部分(調試練習)都是比較難的內容,第49章講IA32彙編指令也跳過沒閱讀。不管怎麼樣,總算是讀完了一遍。後面找靶場練習看看這段時間的學習成果。

在結束語中,作者用圍棋與象棋來對比開發與逆向,認爲逆向比較講究套路。其中還說到計算機在圍棋領域下不過人類,因爲人類有創意(2012年書)。可惜的是,沒多久AlphaGo橫空出世,天才也下不過計算機了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章