cestlavie88
首先,逆向分析是一門技術(shù),也是一門藝術(shù)。其次,安卓逆向同樣可細(xì)分為應(yīng)用層APK逆向、安卓設(shè)備框架、內(nèi)核驅(qū)動等逆向、基于安卓的硬件產(chǎn)品逆向等。此處假定樓主說的是第一種逆向。應(yīng)用層的逆向分析根據(jù)需求的不同,又可細(xì)分成APK流程逆向與功能逆向。流程逆向通常是指簡單的對APK運行流程進(jìn)行分析,此類分析通??梢允褂脤PK置于沙盒環(huán)境中運行捕捉并查看運行結(jié)果。這種逆向需求通常不是很多,典型的工種有殺軟廠商的病毒分析工程師。功能逆向相比流程逆向則困難得多。但需求比較普遍。實際逆向分析過程中對功能實現(xiàn)的理解,在很大程度上取決于逆向人員相關(guān)的軟件開發(fā)知識。比如,分析Android程序的JAVA代碼就需要掌握基本的Android軟件開發(fā)的知識。分析so庫的代碼就需要了解C/C++相關(guān)的so庫開發(fā)的知識。除了基本開發(fā)相關(guān)的能力外,逆向分析人員還需要具備以下知識:ARM/X86/MIPS匯編語言-分析so庫時可能需要閱讀大量的反匯編代碼。常見逆向分析工具的使用-JDGUI/IDA PRO/APKTOOL/JEB/DEX2JAR常用的安卓程序調(diào)試與反調(diào)試手段-調(diào)試器檢測與反檢測/脫殼/反混淆常用的加密與解密算法-好的逆向分析人員需要有快速識別常見加密解密算法的能力最后,就是多動手,多動手練習(xí)是掌握逆向分析技術(shù)最好的方法。
jettyjiang
你好,安卓逆向一般指的是做安卓逆向開發(fā),職位也類似于正向開發(fā)的JAVA程序員;但是需要具備很多的知識儲備,JAVA正向開發(fā),底層的C,匯編語言,了解各種協(xié)議算法加解密,會脫殼加固,比較多哈。但是這類資深大牛的工資都是年薪計算的;正向開發(fā)的人員相對飽和,逆向工程師的需求也很大。通俗的給你總結(jié)就是,可以做做軟件的破解與防破解,游戲的破解與防破解,你可以看到很多的大牛都做過游戲輔助這種東西,畢竟攻與防是相互的,所以方向在于自己。難的肯定難學(xué),但是堅持下來的都是王者!
優(yōu)質(zhì)工程師考試問答知識庫