2020-04-26 漫談爬蟲工程師如何入門Android逆向

背景:爬蟲工程師對逆向的需求及安卓逆向發(fā)展前景淺析

這篇文章寫給Python爬蟲工程師們,互聯(lián)網(wǎng)寒冬的就業(yè)壓力越來越大,流量越來越涌向移動端,爬蟲和反爬的攻防不斷升級,這一切的一切,都讓我們不得不學習新技能,才能保持競爭力和養(yǎng)家糊口(一群單身狗,掙的錢連自己都養(yǎng)不活) 。

App逆向不斷出現(xiàn)在爬蟲工程師的日程表里,可是到底該怎么入門App逆向?

這篇文章就是漫談App逆向的學習,主要分成三個部分。

**1. 指出一些自學的誤區(qū)

2. 推薦一些入門的學習資料

3.推薦一些長期的學習資料 **

這篇文章的目標讀者是計劃學習Android逆向的爬蟲er,他們可能有如下特征:

幾乎沒有Java基礎

幾乎沒有Android基礎

對Android逆向的思路和工具缺少了解

下文會一一解答這些困惑和焦慮,但適合每個人的學習模式也各有不同,可以選擇性的實踐。本文對Android逆向老手幫助不大,但如果老手愿意在評論區(qū)分享經(jīng)驗和教訓,給過來人一些指點,我表示衷心的感謝。

一、自學Android逆向的誤區(qū)和陷阱

1.1. 不要試圖熟練掌握Java編程和Android開發(fā)后再開始學習逆向

如果你才十五歲,有大把時間可以學習和泡妹,那我收回這話??囱┱搲环?2歲踏上逆向之旅的天才少年,他們可以恣意的吸收知識,全部隨著自己的興趣和心意在逆向世界中遨游。而你呢,你可能不再年輕,并且即將或已經(jīng)踏上工作崗位,準備讓Android逆向成為你的加分項和一塊跳板,那么我認為你有更優(yōu)的方式學習Android逆向。而不是耗費數(shù)個月甚至更久的時間沉迷開發(fā),最后磨損掉興趣,放棄逆向的學習,嘆一句“逆向真難,行不通的”。

Java是一門復雜精妙 的語言,但你又不是要當Java開發(fā)工程師???

Android應用開發(fā)充滿魅力,新技術(shù)迭出,但你又不是要做Android工程師???


你可能很想反駁,那我不懂Java,不懂Android怎么可能搞得了逆向,佛系逆向?隨緣逆向?別別別,這可行得通,我指的只是入門時不必精通Java和Android。原因有一堆,但我認為最主要的原因在于——開發(fā)和逆向的關注點不同。

我們先羅列一下Android面試和實際應用開發(fā)中出現(xiàn)的一些技術(shù)關鍵詞

而我們破解時需要關注什么?尤其是對爬蟲的逆向需求來說,簡而言之,我們在破解加密字段如何生成,那我們的關鍵詞是這些

開發(fā)人員需要開發(fā)和實現(xiàn)App的各種功能、關注數(shù)十個廠商上百個機型的適配、Apk體積的優(yōu)化,App性能的優(yōu)化,更吸引用戶的UI,更友好的bug解決機制(熱修復),而我們破解,一般來說,需要關注應用的網(wǎng)絡通信、加解密、安全防護。開發(fā)和逆向的目標和目的不同,所以你并不需要對開發(fā)的那一套了然于胸,才能開始破解。

除此之外,App的安全問題只是Android開發(fā)的眾多議題之個。一部分Android開發(fā)人員,甚至連反編譯App的流程和工具都只是聽聞過而已,尤其是對于小廠/一般App,安全問題它們能投入的精力十分有限,這個原因十分好理解。

狗仔和偷拍只是明星成名之后才會煩惱的事,而十八線女星正在下雨的橫店乞討著生活,App也是這樣,如果你搞的不是大廠App(騰訊系/阿里系/今日頭條系等)、超級App(支付寶/微信/抖音/快手等),或者特殊用處的App(買票/支付/網(wǎng)商等),那么開發(fā)人員給App弄個市面上常見的加固,搞個so層的加密,已經(jīng)是它們防護的上限,可能這些不算太簡單,但難也難得有限。因為App的用戶留存率和開發(fā)人員的溫飽才是他們最重要的議題。

所以,你不必花太多時間了解和實踐紛繁復雜的Android開發(fā)知識,只需要看兩本Java入門書,Android入門書,就可以開始學習逆向了,各種技術(shù)和知識可以在逐漸深入的過程中學習。

1.2. 不要好高騖遠

這一點非常重要,上來就想學如何解密復雜的so、如何脫殼,ollvm,vmp或者擼抖音,小紅書,美團這種成熟且大型的應用……

先跟著一些優(yōu)良的入門教程和視頻,打好基礎訓練思路,從簡單的demo開始,一步一個腳印。

1.3. 不要收集過多的資料 & 分辨資料的時效性

比較久遠的實戰(zhàn)/破解/逆向文就不要去看了,逆向這個圈子本來就比較封閉和遲緩,應用開發(fā)和保護的技術(shù)日新月異。此時建議【易錦大學安卓逆向系統(tǒng)班入門課!】

1.4. 不要自負,覺得Android逆向很簡單

在理想的狀態(tài)下,Android app的逆向工作者需要非常熟悉java和C/C++ 語言,有開發(fā)大型或成熟Android軟件的經(jīng)驗,熟悉Android底層和App運行原理,簡而言之,最好是一個成熟老練的android高級工程師。但是,這并不意味著我們必須得到這個地步才能開始Android逆向的旅程。你應該先從一個比較系統(tǒng)的角度盡可能了解Android逆向的全貌,然后摘取那些"低垂的果實",跟著教程去使用一些成熟的工具,學習思路,完成幾次破解。然后在問題中不斷去學習和補充知識。如果你想要準備好一切在上路,也是可以的,萬流如海,殊途同歸,只不過你要忍受漫長的枯燥學習期罷了。

二、Android逆向入門的資料和基礎

這些書和內(nèi)容都是非常好的,

一、基礎

1.Java

《Java 核心技術(shù) 卷一》公認經(jīng)典

2.Android

《第一行代碼(第2版)》

這本書寫的很好,是公認的Android入門書。你可以認認真真照著例子全部敲一遍,也可以只走馬觀花了解一邊App的開發(fā)流程,看完本書,你會明白一個Android App是怎么從無到有。

3.加解密

《Java 加密與解密的藝術(shù) (第二版)》

講了如何使用Java實現(xiàn)各種各樣的加密,這本書可看可不看。

接下來就可以開始Android逆向之旅了,這是最簡單的配置,按照需求,你后續(xù)可以學習這些東西。

二、Android逆向書籍和資料

1.《Android 軟件安全權(quán)威指南》

白色的封面,我愛叫它白皮書。Android逆向入門需要的方方面面,它都涉及到了。

這本書適合按照需求找章節(jié)看,如果按照順序看,你可能會死在第三章“Dalvik可執(zhí)行格式與字節(jié)碼規(guī)范”

我重新排一下序,同時,我建議易錦大學工具安裝教程去配置工具環(huán)境(需要工具聯(lián)系qq:3251901516)??梢匝b了java開發(fā)環(huán)境后,用jadx或者jeb萬金油直接擼,但如果你喜歡敲命令行,用無大礙,下面的閱讀順序只是我個人喜好,讀者自行甄別和選擇。

第一、二章——環(huán)境搭建和如何分析Android程序,瀏覽即可。

第三、第四章——Dalvik可執(zhí)行格式與字節(jié)碼規(guī)范和Android文件格式,瀏覽即可,內(nèi)容很重要,但不是入門的內(nèi)容。

第五章——靜態(tài)分析Android app,這也是很多培訓課程的第一課,我個人也認為這個應該先看,而且寫的很好。

第六章——動態(tài)分析Android應用,寫的很好,但6.1的動態(tài)分析框架我沒有用過,似乎有些老舊不太好用,讀者可以試試。

第十章——Hook與注入,Xposed+Frida是這一章節(jié)的重點,F(xiàn)rida是目前最流行的動態(tài)插樁工具。

第一十章節(jié)——軟件保護技術(shù),講的很全面。

章節(jié)七八九是Native層的內(nèi)容,我把它劃分到下一部分,入門單單指Java層,章節(jié)十二是軟件殼的內(nèi)容,也是進階的內(nèi)容。

2.《Android應用安全防護和逆向分析》

黃色封面,我叫它黃皮書,這本書的內(nèi)容也充實有料,和白皮書一樣,也是面向Android開發(fā)/安全人員,門檻比較高。我個人也是建議按照模塊看,按照順序看的話小心坑。

全書分成三個部分,防護篇和工具篇都講的很好。這本書也是必備。

這兩本書是引路明燈,但光看這兩本書,是遠遠不夠的,你需要真正的實戰(zhàn),還有看書也是比較枯燥的,如果條件允許的話建議去報班系統(tǒng)學習,有老師帶,看視頻比看書好的多,書籍的話更多是幫助你一些提升,但是對于自學能力不強的不建議!

最后再大家附帶一張安卓逆向工程師前景大致圖。不止是爬蟲行業(yè),其他編程行業(yè)逆向安全也會等著你!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 一個投資品,能夠幫我們有效的在退休時擁有百萬資產(chǎn),基金。 認識基金: 基金就是由一家基金公司收集很多投資者的錢,匯...
    北國南鄉(xiāng)閱讀 167評論 0 0
  • “微檣,我把公司道德模范申報放到你桌上了?!毙∷丶被鸹鸬卣f,看她一臉的狂躁,鼻孔里都快急出火來了。 ...
    微檣閱讀 2,130評論 46 93
  • 今天晚上鲆叔在微信群召開了一場《八戒蟐蛾》電影說明會,這場說明會讓人腦洞大開。 投資電影?這是我之前想都沒有想過的...
    小牛媽媽日記星球閱讀 326評論 0 3
  • Day2/21 #27#李凝珊#佛山 【書籍名稱】《 擁抱你的內(nèi)在小孩》 【閱讀感受】 1. 書本很燒腦,比較不好...
    sumkids03閱讀 136評論 0 0

友情鏈接更多精彩內(nèi)容