羽夏殼世界——序
阿新 • • 發佈:2022-04-07
寫在前面
此係列是本人一個字一個字碼出來的,包括程式碼實現和效果截圖。 如有好的建議,歡迎反饋。碼字不易,如果本篇文章有幫助你的,如有閒錢,可以打賞支援我的創作。如想轉載,請把我的轉載資訊附在文章後面,並宣告我的個人資訊和本人部落格地址即可,但必須事先通知我。
前言
在學逆向分析的時候,你常常會聽到或者遇到被稱之為給程式加殼這個東西。那麼殼是什麼?它的實現原理是啥?加殼的目的是什麼?
在Win
系統上,PE
結構是逆向的基礎,也是實現加殼的理論基礎,那麼PE
結構是啥?它和逆向相關的細節有啥?它們又有啥聯絡?
對於以上疑問,本系列教程將會逐個解答。
知識儲備
學習本教程需要一些的基礎儲備和熱情毅力,畢竟這個是自學,沒有人來監督你。需要的基礎和能力要求如下:
- 一門程式語言(由於實現會使用
PE
結構體,這些在C/C++
標頭檔案之中,並且有大量的指標記憶體操作,故會在實現篇用C++
) - Intel 彙編基礎
- 具有看
彙編
如C語言
,看C語言
如彙編
的能力 - 對於
位(bit)
具有明確的認識 - 一定的毅力和時間
- Intel 硬編碼的基礎(最好會,否則在某些篇章理解可能稍微有點困難)
如果想具有看彙編
如C語言
,看C語言
如彙編
的能力,可以參考我的 羽夏看C語言系列教程 ,也可以看別的教程,否則後面的學習可能十分痛苦。因為在實現篇裡面用到了大量彙編的知識。
目錄
從入門到入土
- 羽夏殼世界——序(本篇將會介紹)
基礎篇
- 羽夏殼世界——基礎篇
- 羽夏殼世界——基礎篇概述
- 羽夏殼世界—— PE 結構(上)
- 羽夏殼世界—— PE 結構(下)
- 羽夏殼世界—— 基礎篇小結
實現篇
- 羽夏殼世界——實現篇
- 羽夏殼世界——實現篇概述
- 羽夏殼世界——異或加密的實現
- 羽夏殼世界——壓縮程式碼的實現
- 羽夏殼世界——匯入表加密的實現
- 羽夏殼世界—— TLS 及其加密的處理
- 羽夏殼世界——花指令的實現
- 羽夏殼世界—— 實現篇小結
完結撒花
- 羽夏殼世界——結語
可參考資料
- 《加密與解密》第十四章 ,段鋼著
- 本人部落格園博文: 羽夏筆記——PE結構(不包含.Net)
- 部落格園博文: PE檔案結構解析 , 作者:諸子流
- CSDN 博文: PE檔案結構 ,作者:洋蔥汪
有關該專案原始碼
等本人全部實現完畢後,會使用AGPL-3.0
協議將程式碼開源在GitHub
上。也就是說,任何人不得使用裡面的任何程式碼進行商用。如果有人在我的程式碼基礎上繼續實現一些功能,也必須使用該協議開源。該程式碼目前有近2000
行,程式碼註釋佔了一小部分,主要是彙編生成的邏輯佔了一大部分,其次是PE
檔案的解析。
本專案花了本人相當的精力,如果有閒錢的話,歡迎支援。
下一篇
羽夏殼世界——基礎篇