[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-7EJfyi76-1617950848926)(//upload-images.jianshu.io/upload_images/6098829-361adbbf30a02ff9.png?imageMogr2/auto-orient/strip|imageView2/2/w/640/format/webp)]
臨近年關,又到了面試求職高峰期,最近有很多網友都在求大廠面試題。正好我之前電腦裡面有這方面的整理,于是就發上來分享給大家。
這些題目是網友去百度、小米、樂視、美團、58、獵豹、360、新浪、搜狐等一線網際網路公司面試被問到的題目。熟悉本文中列出的知識點會大大增加通過前兩輪技術面試的幾率。
網上的都是按照公司劃分的,想找具體某一方面的知識點有點不好找,我這裡就根據知識點分門别類的整理了一下,想看哪一塊可以快速找到,希望可以幫助大家,祝大家求職順利。
第一階段: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 IOC架構設計等資料
oid%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)**
領取擷取往期Android進階架構資料、源碼、筆記、視訊。進階UI、性能優化、架構師課程、NDK、混合式開發(ReactNative+Weex)微信小程式、Flutter全方面的Android進階實踐技術,群内還有技術大牛一起讨論交流解決問題。