2020-02-11 Android逆向入門的一點(diǎn)心得

為什么要學(xué)習(xí)安卓逆向

....安卓發(fā)展一直都挺好崖咨,逆向也是屬于興趣吧陪毡,覺(jué)得比較高大上,話不多說(shuō)轮锥,開(kāi)始進(jìn)入正題

一矫钓、環(huán)境的搭建

學(xué)習(xí)安卓逆向第一步必須先把環(huán)境搭建好,這是你學(xué)習(xí)安卓逆向的開(kāi)始交胚,環(huán)境搭建好后表示正式邁入安卓逆向份汗。

Eclipse搭建安卓開(kāi)發(fā)環(huán)境

Eclipse搭建NDK開(kāi)發(fā)環(huán)境

Android 模擬器配置以及ROOT

二、JAVA層的逆向

1.程序反編譯

常用工具:APKToolKit蝴簇、 ApkIde 杯活、JEB?。

2.smali語(yǔ)法

關(guān)于smali語(yǔ)法熬词,最基本的要求是能看懂旁钧。意思就是,能在不借助java代碼的前提下互拾,熟練的快速的看出某一段smali語(yǔ)句對(duì)應(yīng)的功能

3.簡(jiǎn)單的逆向分析

熟練掌握smali語(yǔ)法之后歪今,可以嘗試逆向分析一些簡(jiǎn)單的程序,樣本等等颜矿。當(dāng)然了寄猩,現(xiàn)在很難找到適合初學(xué)者逆向分析的應(yīng)用。在這里骑疆,建議初學(xué)者自己開(kāi)發(fā)程序田篇。切記一開(kāi)始

便去找某某游戲,某某最新樣本來(lái)進(jìn)行分析箍铭,一方面泊柬,對(duì)于新手來(lái)說(shuō),收獲不大诈火。另一方面兽赁,會(huì)大大打消你的學(xué)習(xí)積極性。學(xué)習(xí)要循序漸進(jìn),那些難啃的樣本程序以后多的是機(jī)會(huì)啃刀崖!

4.常見(jiàn)靜態(tài)分析手法

a:信息收集

一個(gè)apk惊科,前期對(duì)其的一些信息收集是很有必要的,別拿到一個(gè)apk就馬上反編譯看代碼去了蒲跨。注意抓住重點(diǎn)译断。打蛇打七寸。首先關(guān)注其字符串信息或悲,服務(wù),廣播等等

b:關(guān)鍵位置定位

定位堪唐,是一個(gè)技術(shù)活巡语。這里面有很多的奇淫巧計(jì),需要大家練習(xí)淮菠。

通過(guò)“特征函數(shù)”定位男公,比如說(shuō)控件的事件函數(shù)onXXXClick, Show(),如果你要找網(wǎng)絡(luò)方面的信息HttpGet、HttpPost合陵、HttpUriRequest枢赔、socket等等,追蹤隱私IMSI拥知、IMEI,敏感操作踏拜,發(fā)送短信、撥打電話等等

c:活用logcat

logcat在之前還未出現(xiàn)動(dòng)態(tài)調(diào)試smali的時(shí)候低剔,可謂是逆向分析者們手中的一大利器速梗。logcat中包含了程序原有的一些調(diào)試信息,這些往往是不夠用的襟齿。這便有了“smali注入”

d:smali注入

通過(guò)向反編譯之后的代碼中插入自己的代碼姻锁,重打包之后,使程序運(yùn)行之后猜欺,在log中打印出目標(biāo)函數(shù)的參數(shù)位隶,返回值等我們想知道的任何東西。這樣开皿,就達(dá)到了半動(dòng)態(tài)調(diào)試apk的作用涧黄。

smali注入對(duì)smali語(yǔ)法的功能要求得稍微高一點(diǎn),而且會(huì)遇到很多不確定因素副瀑。需要多多嘗試弓熏。

5.常見(jiàn)動(dòng)態(tài)調(diào)試手法

越到后面,單純的靠靜態(tài)分析是滿足不了逆向分析人員的需求的糠睡。便出現(xiàn)了動(dòng)態(tài)調(diào)試技術(shù)挽鞠。

a:Eclipse + Apktool動(dòng)態(tài)調(diào)試apk

支持單步調(diào)試,動(dòng)態(tài)查看寄存器的值。但是不能在系統(tǒng)函數(shù)下斷點(diǎn)信认。

b:Netbeans + Apktool動(dòng)態(tài)調(diào)試apk

同上

c:jdb

支持調(diào)試的基本功能材义,可以在配置文件中預(yù)下斷點(diǎn),批量下斷點(diǎn)嫁赏,給系統(tǒng)函數(shù)下斷點(diǎn)其掂,缺點(diǎn)是沒(méi)有界面,不支持查看寄存器的值潦蝇,時(shí)常跑著跑著就飛了

d:andbug

沒(méi)用過(guò)

e:JSwat Debugger

jdb的界面版吧~

f:IDA

ida6.6以后就可以動(dòng)態(tài)調(diào)試apk了款熬。用得不多

三、Native層的逆向

目前來(lái)說(shuō)攘乒,基本上都把核心部分放在了native層贤牛。只有充分學(xué)習(xí)對(duì)這部分的逆向分析才能有更好的發(fā)展。

1.Native的開(kāi)發(fā)

要想學(xué)好逆向则酝,首先得會(huì)編寫native程序殉簸。熟練常見(jiàn)的系統(tǒng)api以及開(kāi)發(fā)流程等等

2.Native層相關(guān)機(jī)制的學(xué)習(xí)

這部分需要去分析源代碼中jni的部分內(nèi)容

3.靜態(tài)分析

這部分靜態(tài)分析沒(méi)什么技巧,唯一需要的就是對(duì)匯編指令的掌握程度沽讹!載入IDA般卑,自己看匯編指令即可,要想靜態(tài)分析出一些信息來(lái)爽雄,需要分析人員有很高的匯編語(yǔ)言功底蝠检。非一日之功!

4.動(dòng)態(tài)分析(重中之重)

動(dòng)態(tài)分析主要是利用IDA來(lái)實(shí)現(xiàn)盲链,具體的分析手法不是一點(diǎn)點(diǎn)篇幅能說(shuō)清楚的蝇率,這方面的教程網(wǎng)上也有很多了。這里就不再贅述刽沾。

四本慕、進(jìn)階篇之源碼分析

和windows平臺(tái)上的逆向差不多,要想更深入的學(xué)習(xí)下去 侧漓,了解這個(gè)系統(tǒng)的一些原理锅尘,底層上的東西是很有必要的 。android給我們提供了很大的便利布蔗。它是開(kāi)源的藤违。

分析android源代碼我一般使用:SourceInsight!支持函數(shù)高亮纵揍,任意索引顿乒,唯一的缺點(diǎn)是不支持UTF-8,不過(guò)這相對(duì)于它的優(yōu)點(diǎn)來(lái)說(shuō)泽谨,都不算是事兒~

五璧榄、應(yīng)用之加固與脫殼

1. 了解dex文件整體加密特漩、Dex代碼抽取加密。

2. 了解so文件整體加密骨杂、函數(shù)加密涂身、區(qū)段加密、加殼搓蚪、混淆蛤售。

3. 分析通用脫殼機(jī)的實(shí)現(xiàn)原理及應(yīng)用場(chǎng)景。

4. 了解主流加固特點(diǎn)及對(duì)應(yīng)的脫殼技巧妒潭。

六悴能、總之重要一點(diǎn)

學(xué)習(xí)貴在堅(jiān)持!?注重基礎(chǔ)杜耙,一定要把Java層和Native層搞懂搜骡。

學(xué)習(xí)中不要糾結(jié)細(xì)節(jié),要學(xué)會(huì)抓大放小

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末佑女,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子谈竿,更是在濱河造成了極大的恐慌团驱,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件空凸,死亡現(xiàn)場(chǎng)離奇詭異嚎花,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)呀洲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門紊选,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人道逗,你說(shuō)我怎么就攤上這事兵罢。” “怎么了滓窍?”我有些...
    開(kāi)封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵卖词,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我吏夯,道長(zhǎng)此蜈,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任噪生,我火速辦了婚禮裆赵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘跺嗽。我一直安慰自己战授,他們只是感情好页藻,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著陈醒,像睡著了一般惕橙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钉跷,一...
    開(kāi)封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天弥鹦,我揣著相機(jī)與錄音,去河邊找鬼爷辙。 笑死彬坏,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的膝晾。 我是一名探鬼主播栓始,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼血当!你這毒婦竟也來(lái)了幻赚?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤臊旭,失蹤者是張志新(化名)和其女友劉穎落恼,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體离熏,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡佳谦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了滋戳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钻蔑。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖奸鸯,靈堂內(nèi)的尸體忽然破棺而出咪笑,到底是詐尸還是另有隱情,我是刑警寧澤府喳,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布蒲肋,位于F島的核電站,受9級(jí)特大地震影響钝满,放射性物質(zhì)發(fā)生泄漏兜粘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一弯蚜、第九天 我趴在偏房一處隱蔽的房頂上張望孔轴。 院中可真熱鬧,春花似錦碎捺、人聲如沸路鹰。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)晋柱。三九已至优构,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間雁竞,已是汗流浹背钦椭。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留碑诉,地道東北人彪腔。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像进栽,于是被迫代替她去往敵國(guó)和親德挣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容