移動安全入門指南

2021-09-12 02:04:08 字數 2871 閱讀 2867

以前花了將近一年多的時間學習移動安全,期間也遇到了各種坑,特別是學習android加固的知識,由於android加固技術門檻比較高,在網上想要找到系統的資料還是很困難的,一些相關的入門資料也比較少。在這裡,我也把自己以前學習的經歷和遇到的坑做一些總結,希望能給一些剛入門移動安全行業的同學一些參考,避免入坑。

首先,在剛剛學習一門技術之前,需要對這門技術有乙個整體的認識,也就是知道它涉及到哪些知識、有哪些分類。如果一開始就鑽研某個技術細節,很容易陷入牛角尖,越學越苦逼。下面是我以前整理的移動安全領域的乙個詳細知識分類,想入門移動安全領域的同學,可以實現對每乙個大分類下的技術事先都大概了解下,至少知道每乙個方向的技術是做什麼的。

對移動安全有了乙個大致的了解以後,接下來的這一步就很關鍵,要怎麼入門?有什麼好的入門資料或書籍可以開始學習?遵循乙個怎樣的學習順序?

最近的一本書當然是《android軟體安全與逆向分析》,這個也是我入門學android安全的第一本書籍,很不錯,可以讓初學者對android安全有乙個快速的了解。

當學習完這本書以後,就對android移動安全有乙個初步的認識。接下來,就可以開始去乙個個收集學習android已經**過得各種漏洞,可以從以下幾個方面來整理常規漏洞方面的知識。

而以後想要做漏洞掃瞄的同學,就需要收集整理每個漏洞關於上述方面的各個資訊。我本人也花了很多時間去收集這些漏洞資訊,詳細的可以參考我分享的github專案:移動安全檢測清單。我在收集這些常規漏洞資訊的同時,也同步開發android漏洞掃瞄工具,最終做了兩次迭代開發,終於有乙個成品:01hackcode.com,檢測的效果完全不比商業版本的差。

單純看網上的資料,可能會覺得比較零散不系統,這裡也推薦一本書,裡面有很多實踐動手環節,更注重實戰:《android安全攻防實戰》

在收集完這些android檢測清單後,由於發現,還想要進一步深入研究android安全,很有必要對android的底層技術有乙個深入的了解。這也是我為什麼開始學習android加固和android安全機制方面的底層知識,而且這個對android作業系統底層原始碼和虛擬機器的原理機制要有深入的了解,對喜歡刨根問底的同學還是很有必要學習的。

《android安全攻防權威指南》可以說是這方面的權威書籍,但是一開始馬上就看這本書,會比較吃力,裡面涉及到很多比較深的知識。並不建議馬上開始就看這本書,最好是對android的安全機制和底層知識有一定了解以後再閱讀這本書會比較容易些,當然希望挑戰的同學也可以直接拿這本書去啃。這本書比較適合想要專門從事漏洞挖掘的同學,特別是底層的系統漏洞挖掘,這本書可以說是必讀書籍。

如果想要學習加固方面的知識,這方面的資料會比較少,因為很多都是商業產品,這種核心技術一般是不會輕易公開的,這也是我學習android加固比較困難的。但我看現在,這方面的資料比起我2年前可以說是豐富了很多。而要學習android加固,下面這些書籍和資料很不錯。特別是《android dalvik虛擬機器結構及機制剖析》第1、2卷,非常不錯,對dalvik虛擬機器剖析得非常透徹,這兩本書我是來回啃了好幾遍,書都快被我翻爛了。大家可能會想,現在不都是art虛擬機器了嗎,有必要去學習dalvik這種落後的技術嗎?但要知道技術是相通的,學習了一門技術,對另一門技術入門還是很快的。

在學習android加固的知識,有兩個很重要的知識點要掌握好,分別是:dex檔案結構和so檔案結構,這兩個可以說非常基礎非常重要,最好的話,可以直接寫乙個簡單的dex檔案和so檔案解析,這對後面深入學習android加固也是有幫助的。我本人也是通過自己動手實現了dex檔案和so檔案解析工具,對這兩方面的知識有乙個很深入的了解。下面這兩個工具就是我寫的dex檔案和so檔案解析工具。

除了上面兩本書,還有3分資料也很不錯,也值得反覆去鑽研

elf 檔案格式分析—滕啟明

elf for the arm architecture

想要徹底弄懂android加固原理,需要對linker的原理機制要徹底弄懂,剛開始學習,建議從《程式設計師的自我修養》這本書開始學起,比較通俗易懂,雖然不是講android的so載入過程。但是原理還是一樣的。其次就是我在上面介紹的android dalvik虛擬機器結構及機制剖析》這兩本書。還有一本古董級別的書是專門講解linker和loader這方面的知識—《鏈結器和載入器》

基本上漏洞挖掘和android加固方面比較好的資料,我覺得上面是差不多夠了,能夠把上面這些資料和書籍啃透,就已經很厲害了。其餘的就是在學習過程中一遍看一邊查資料,同時也可以關注一些大牛的動態。想要成為大牛,就去關注android安全方面大牛的是怎樣學習的,都研究些什麼。

最後,介紹一些移動安全常用的工具:

移動Web應用開發入門指南 視覺篇

智慧型移動裝置由於發展歷史短,但更新速度快,從而導致移動裝置的物理屬性差異巨大,其中一部分物理屬性影響視覺,另一部分影響到互動 相容或效能。對人類來說,至少有80 以上的外界資訊通過視覺獲得,視覺是人和動物最重要的感覺,所以,咱們從視覺開始說起。看乙個案例 訪問m.3600.com首頁,首頁焦點圖,...

python入門指南 Python 入門指南

python 入門指南 release 3.6.3 date dec 10,2017 python 是一門簡單易學且功能強大的程式語言。它擁有高效的高階資料結構,並且能夠用簡單而又高效的方式進行物件導向程式設計。python 優雅的語法和動態型別,再結合它的解釋性,使其在大多數平台的許多領域成為編寫...

入門指南 雷射切管快速入門指南

本文是有關管材和雷射管切割的思考的快速入門指南。要求 首先,需要確定對管材尺寸的要求。考慮以下問題 將要加工的管材最大和最小直徑是多少?切割這些管材需要多大功率?它們是薄壁還是厚壁?原材料和成品零件的長度是多少?這些要求將確定所需的雷射切割機型別。管材切割基礎知識 儘管板材和管材是用相似的材料製成的...