flutter实战!一个Android应届生从上海离职,深度好文
開頭
Android開發中,熱修復技術被越來越多的開發者使用,市面上也出現很多成熟的開源框架。但對大部分開發者來說,熱修復依然是一個既熟悉又陌生的詞。僅僅知道熱修復的作用,會使用框架,那樣意義并不大。我們還要知道熱修復的原理,這樣不管框架如何變化,只要基本原理不變,我們都可以快速掌握它,或者自己動手寫一個適合項目的熱修復框架。
第一階段:Android 基礎知識回顧:
- 回顧Android 開發編程,深入理解Android系統原理和層次結構,深入分析Handler源碼和原理;
- 回顧Java,C/C++,Kotlin、dart 在Android開發中必用的語言,熟悉一下幾種語言混淆后的特性;
- 回顧Android IPC和JNI的底層原理和熱更新技術回顧Native開發要點,使用C++結合NDK完成Android Native開發;
- 回顧Android開發中常用的 AMS、PMS、WMS原理和App啟動中服務加載的流程;
- 回顧Android開發中必用的 Google的MVVM框架:DataBinding+LiveData+ViewModel;
- 回顧Android開發中必用的 Google的MVP框架:Dagger2;
- 回顧Android開發必用的網絡架構:Okhttp3+RxJava2+Retrofit2+Rxdownload4+Rxcache+Glide;
Android 逆向基礎知識:
- 熟悉Android逆向工具的使用,如apktool,IDA,dex2jar,JEB,Androidkiller,Androguard等;
- 深入分析APK中包含的各文件格式,分析Android系統源碼中解析APK的相關代碼;學習和熟悉smali語言(重點);
- 仿微信寫一個APP,并利用工具逆向出apk內的代碼,并對比源碼分析。
入門知識總結和實戰(逆向入門):
- 知識梳理,常用工具安裝,adb命令與Linux常用命令,常見登錄邏輯分析;
- 分析ELF可執行程序,調式ELF可執行程序;ARM匯編與寄存器,ARM反匯編速成,ARM指令機器碼,常用ARM指令集;
- 反編譯ELF文件與ObjDump,ELF文件解析與readelf,ELF文件解析與010Editor,深入分析ELF文件結構;IDA靜態分析,IDA動態調式;
- 簡易計算器實現及分析(練習);
- 字符串加密與解密,冒泡排序算法分析;
- 關鍵android_server文件檢測,IDA調試端口檢測;
- ELF可執行程序加載so庫,DEX解析與dexDump,DEX解析與010Editor;
- 實現自己的Dex解析工具與GDA(練習);
- Androidkiller動態調試smali代碼插件,AS+smalidea調式smali代碼;
- Log注入實現免注冊,如何定位關鍵代碼,去除java層簽名驗證,去除廣告和彈窗(實戰);
- 推薦閱讀《AndroidXXXXXX……》隨便找本系統源碼講解的書看看吧;
Android 基礎算法和安全協議:
- 密碼學,對稱加密算法,非對稱加密算法,散列函數;
- 數字簽名,數字證書,SSL證書檢測,協議與安全協議;
- 了解服務器端與客戶端通信協議分析;
- 使用Charles抓登錄封包和驗證碼,協議構造與Java層MD5算法,動態調式smali代碼與sign字段;
- 協議構造類與SO層DESCBC算法,協議關鍵字段SIGN與SO層MD5算法,動態調試協議字段,動態調式協議關鍵字段SIGN;
- 協議關鍵字段pwad和sign,動態調式協議字段拼接與MD5加密,分析so層OpenSSLSHA1算法;
- 封包加密與反編譯失敗,使用方法跟蹤分析加密;java層逆向分析,分析so層TEA算法;
- 練習:抓取驗證碼和登錄封包,分析協議關鍵字段與RSA算法,證書與RSA原理及源碼分析;
- 對稱加密AES、PBE與CRC算法,數字簽名RSA、DSA算法;
第二階段:Android 逆向進階學習:
- Android 系統結構深入分析,自定義 ClassLoader,自定義注解和元注解原理分析;
- 了解AndroidNDK,靜態注冊,動態注冊,SO加載分析,
- App保護策略去除霸哥磁力搜素APK簽名驗證,一鍵去除簽名驗證,靜態代{過}{濾}理,動態代{過}{濾}理Hook Activity啟動函數,
- Hook簽名驗證函數介紹xposed框架:Xposed框架:
- 繞過驗證碼注冊Xposed框架:
- 登陸劫持Xposed框架:
- 篡改IMEI信息介紹CydiaSubstrate框架:
- Java層Hook:
- 篡改系統文字顏色Java層Hook:
- 修改方法返回值繞過登錄Java層Hook:
- 篡改游戲金幣Java層Hook:
- 篡改主機名和端口號
- Native層Hook:
- ADBI框架:ELFARMHOOK框架內存摳取Dex文件過反調試技巧C++游戲
- 逆向練習:動態調試2048純算法游戲,Zygote+Hook使2048游戲秒過關;
Android NDK與JNI全面剖析:
- so動態庫的介紹
- JNI動態注冊和靜態注冊
- NDK Build 工具介紹
- Cmake工具介紹
- JNI.h介紹
- Android 源碼工具和技巧
- ijkplayer 源碼分析及原理講解
- AndFix 源碼分析及原理講解
- Java調用so庫的動態流程解析
- NDK實現增量更新
- 案例:NDK實現換臉等工業級圖像識別
- 案例:NDK文件實現拆分和加密處理
Android 加固防護和脫殼簡介:
- DEX文件、ODEX文件與OAT文件;
- XML文件與ARSC文件;
- 分析App加固的產生及背景,最初加固方式,加固技術的發展;
- HOOK制作脫殼機,定制自己的脫殼系統;
- DexClassLoader動態加載分析,DEX自解析重構技術;
- 三代梆梆加固原理分析;愛加密加固原理分析;
- 360加固與脫殼機,360加固VM與置換表;
- 輔助脫殼機,IDA動態調式脫愛加密殼;
- IDA動態調式脫360殼,IDA動態調式脫SO殼;
- 脫360殼-dex2oat,脫360殼-drizzleDumper;
- 百度加固DD大法,百度加固VM與置換表;
- 阿里加固與脫殼機,騰訊樂固;
- ARSC資源保護與注解;
- 脫殼神器ZjDroid:
- 捕魚達3加固技術總結;
Android 脫殼與反脫殼分析:
- Android脫殼中的思路,技巧elf結構詳解:
- 動態運行庫so文件的文件組成結構elf結構詳解:
- 加載so文件的流程elf文件變形與保護,elf文件修復分析,so加殼文件修復常用調試檢測方法與過檢測方法
- Android源碼定制添加反反調試機制Android dvm 脫殼,Dalvik dex處理分析IDA脫殼腳本編寫,Odex修復方法,
- IDAOdex修復腳本編寫
進階知識總結和企業級實戰(逆向進階):
- 病毒分析與脫殼學習,用Ransomware類和木馬類進行學習;
- 手動脫殼《王者X耀》練習;
- 從0開始打造自己的破解代碼庫;
第三階段:Android 漏洞分析和挖掘:
- 學習常見的漏洞類型和原理。例如堆溢出,棧溢出,UAF等,可以參考漏洞分析相關書籍;
- 關注Android Security Bulletin,根據提供的diff分析漏洞成因;
- 學習并調試以前的經典漏洞;
- 學習漏洞挖掘fuzzing思路,參考書籍推薦《Android安全XXXX》;
- 病毒分析與病毒脫殼實戰;
Android 虛擬機技術、系統源碼分析、刷機機制介紹、制作ROM刷機包:
- ASP代碼注入式寫法;
- Android 免root進行hook;
- Android虛擬機原理,Android多開原理講解;
- 在apk內部寫一個虛擬機,在apk內安裝apk;
- 虛擬機適配Android 10和64位系統;
- 從0開始開發自己的虛擬機庫;
- 最完善的刷機工具 :魔趣 ROM;
- 最完善的刷機工具 :Devices - TWRP;
最后我還整理了很多Android中高級的PDF技術文檔。以及一些大廠面試真題解析文檔。需要的朋友都可以點擊GitHub直接獲取方式
Android高級架構師之路很漫長,一起共勉吧!
%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)直接獲取方式**
[外鏈圖片轉存中…(img-G13LVIA5-1612338610376)]
Android高級架構師之路很漫長,一起共勉吧!
總結
以上是生活随笔為你收集整理的flutter实战!一个Android应届生从上海离职,深度好文的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android中多渠道打包的三种方式
- 下一篇: jq 数组不重复_jquery删除数组中