❶ 怎麼對android app實現逆向分析
首先,逆向分析是一門技術,也是一門藝術。
其次,安卓逆向同樣可細分為應用層APK逆向、安卓設備框架、內核驅動等逆向、基於安卓的硬體產品逆向等。此處假定樓主說的是第一種逆向。
應用層的逆向分析根據需求的不同,又可細分成APK流程逆向與功能逆向。
流程逆向通常是指簡單的對APK運行流程進行分析,此類分析通常可以使用將APK置於沙盒環境中運行捕捉並查看運行結果。這種逆向需求通常不是很多,典型的工種有殺軟廠商的病毒分析工程師。
功能逆向相比流程逆向則困難得多。但需求比較普遍。實際逆向分析過程中對功能實現的理解,在很大程度上取決於逆向人員相關的軟體開發知識。比如,分析Android程序的java代碼就需要掌握基本的Android軟體開發的知識。分析so庫的代碼就需要了解C/C++相關的so庫開發的知識。除了基本開發相關的能力外,逆向分析人員還需要具備以下知識:
ARM/X86/MIPS匯編語言-分析so庫時可能需要閱讀大量的反匯編代碼。
常見逆向分析工具的使用-JDGUI/IDA PRO/APKTOOL/JEB/DEX2JAR
常用的安卓程序調試與反調試手段-調試器檢測與反檢測/脫殼/反混淆
常用的加密與解密演算法-好的逆向分析人員需要有快速識別常見加密解密演算法的能力
最後,就是多動手,多動手練習是掌握逆向分析技術最好的方法。
❷ 關於安卓逆向你需要知道的工具及網站
關於安卓逆向你需要知道的工具及網站
把最近接觸到的安卓逆向相關的工具和網站總結下,供需要者拿去使用,還有不全和遺漏後續會不斷完善。
工具篇章
模擬器(動態調試需要用真機)
安卓原生模擬器:Android Studio自帶的
夜神:今天開始嘗試這個模擬器,發現在ida掛載進程時出現了問題,掛不上,架構為x86,不能用ida調試。 地址https://www.yeshen.com/
逍遙:還未使用 地址http://www.xyaz.cn/
藍疊(bluestack): 地址http://www.bluestacks.cn
雷電模擬器
apk反編譯套件工具
jeb:今天開始嘗試這個工具 地址https://www.pnfsoftware.com/
YouGais:以前我一直使用這個,沒有官網地址,免費版功能受限
打包及簽名工具
apktool:apk拆包打包工具 地址https://ibotpeaches.github.io/Apktool/install/
jd-gui:java反編譯工具 地址http://jd.benow.ca/
aotusign:自動簽名工具,沒有官網網路即可
native文件反編譯工具
ida:靜態分析、動態分析,免費版功能受限 地址https://www.hex-rays.com/
gdb:http://ftp.gnu.org/gnu/gdb/
輔助調試工具
adb:通向手機或模擬器的橋梁,綠色小程序。最常用的就是查看logcat,進入手機shell等。 地址http://adbshell.com/downloads
ddms:android SDK中自帶工具。該工具可以查看手機模擬器的進程,選中需要監控的進程後,會出現綠色小蜘蛛圖標,同時後面會出現8700埠號。
jdb:jdk目錄下自帶的與安卓進程連接的程序,常與ddms配合用於動態調試
xposed:需要安裝框架+模塊,還有對應的xposed市場。可以在常用市場搜索安裝。bluestack中安裝後變磚了,夜神中安裝正常。
十六進制文件編輯工具
UltraEdit:十六進制文件編輯工具
010Edit:還沒有用過
winhex:印象中很久前用過
android開發工具
Android Studio
Eclipse
Aide(手機版開發工具)
其他
解壓縮軟體:winrar、7zip等等都可以,將apk改名為zip就能直接打開
社區資料篇章
論壇及社區
看雪論壇:https://bbs.pediy.com/forum-161.htm
freebuff:http://www.freebuf.com/articles/terminal
還有吾愛破解、知乎、、CSDN等等都有相應版塊內容及文章可供學習。
arm指令
官方文檔pdf:
https://silver.arm.com/download/ARM_and_AMBA_Architecture/AR570-DA-70000-r0p0-00rel2/DDI0406C_C_arm_architecture_reference_manual.pdf
在線編譯網站
c到匯編在線轉換
https://gcc.godbolt.org/
匯編到操作碼在線轉換
http://armconverter.com/
❸ MC到底是什麼的簡稱呢
「MC」的原義Micphone Controller,也就是「控制麥克風」的人。也就是控制人們跳舞心情的人,製造氣,氛喜怒哀樂。基本以說唱為主也就是所謂的RAP。所以有許多的人饒舌歌手都會給自己的藝名前面加個「MC」什麼什麼的,比如台灣著名Rap團體Mc HotDog 和前幾年很出名的MC Hammer。經過多年的傳承,現在的MC需要具備多方面的能力,比如要能帶動氣氛,能主持、能RAP、能即興饒舌(free style)。他不只是表演者,也兼俱了Hip Hop文化的訊息傳達者的功能,所以從他的表演內容和形式尚可分不同域及派別的表演型態,例如東岸、西岸、非主流等。當然,一個具有鮮明個人色彩的MC,更能進一步的帶動口頭禪、音樂以及服裝的流行,這點也可以由那麼多的黑人歌手代言服飾品牌窺見一二。在國內,當MC是很不容易的,因為國內尚沒有那麼多的製作人水持這種表演類型,頂多在PARTY上看見表演會覺得新鮮,但是以目前情歌滿天飛的情形看來,要發動Rap的市場比較難。從R&B著手會容易得多。但是目前能在自己的作品中加入一些旋律及唱功的MC,在國內少之又少。其實,大部份的MC還是希望大家能以「玩」的角度出發,才是黑人音樂真正的元素。唯有充滿喜感、快樂。才能在目前「情歌至上」的音樂市場中,求得發揮的空間。
mc是魔獸世界裡的副本代用詞。
WOW中的MC介紹
MC,也就是「熔火之心」,是中文WOW1.5.2中的最高級Raid副本,需要40人共同努力,(在WOW1.6.1中開放了黑暗之巢,也是40人副本)裡面任何一個小怪都有超越普通副本BOSS的的實力,裡面的BOSS,更沒有白給的,幾乎每個都需要整個團隊的配合和努力。擊敗他們,不僅僅能獲得無數史詩物品獎勵(紫色裝備,包括職業套裝),更重要的是,讓團隊成員體驗到團隊配合的快樂以及驕傲和自豪。
通過以下指令可以查看MC副本刷新時間 /raidinfo
MC刷新時間是6天,從你的隊伍殺掉任意一個BOSS開始計算刷新時間(當然了一般都是先殺第一個BOSS,魯西弗隆),
同隊中任何一個人的副本記錄都會影響到整個團隊,也就是說,這次組隊如果殺掉了1個BOSS,那麼40人中的任意一個人,加入到另外一個團隊,然後團隊進的副本被殺掉的BOSS都不會出現。
·在Flash中一種組件的類型.電影剪輯(movie clip)也被簡稱為MC
·MC也是司儀,節目主持人Master of Ceremonies
·MC也是Made in china的簡稱,意為中國製造
·MC也是member of Congress (美國)國會議員
·MC也是Menstrual Cycle指女性的月經
·MC做前綴也指「我的」,如」mcbed「即我的床
MC也可以在flash中指影片剪輯的意思:Flash中一種組件的類型.電影剪輯(movie clip). mc是指影片剪輯,是FLASH的核心三個元件之一!選中圖片,再按F8即可轉換成MC,CTRL+F8即可創建MC。幾乎所有的東西都可以轉換成MC,而且可以多種元件進行嵌套。
MC 還是海軍陸戰隊的簡寫全稱Marine Corps
MC還是天後mariah carey的簡稱
Mc 在英文名字中表示「...之子」
MC在貿易學表示的是邊際成本。
MC也是Micro Computer的簡稱,即《微型計算機》雜志的英文縮寫。
《微型計算機》是一本專注於電腦硬體技術與產品,以電腦硬體玩家為主要受眾人群,全面報道電腦硬體市場與產品的普及性雜志,在市場動態、新產品、新技術、技術評測、經驗共享、理性消費等多方面詳細報道各種硬體產品,以其客觀公正的技術評測、深入透徹的市場分析和行業報道,成為業界最具影響力、最權威的電腦硬體雜志,是讀者把握電腦新硬體、新技術的首選雜志。
MC就是最能帶動氣氛的那個人,但這不一定是黑人。「MC」的原義Micphone Controller,也就是「控制麥克風」的人。所以有許多的人饒舌歌手都會給自己的藝名前面加個「MC」什麼什麼的,比如前幾年很出名的MC Hammer。經過多年的傳承,現在的MC需要具備多方面的能力,比如要能帶動氣氛,能主持、能RAP、能即興饒舌(free style)。他不只是表演者,也兼俱了Hip Hop文化的訊息傳達者的功能,所以從他的表演內容和形式尚可分不同域及派別的表演型態,例如東岸、西岸、非主流等。當然,一個具有鮮明個人色彩的MC,更能進一步的帶動口頭禪、音樂以及服裝的流行,這點也可以由那麼多的黑人歌手代言服飾品牌窺見一二。在國內,當MC是很不容易的,因為國內尚沒有那麼多的製作人水持這種表演類型,頂多在PARTY上看見表演會覺得新鮮,但是以目前情歌滿天飛的情形看來,要發動Rap的市場比較難。從R&B著手會容易得多。但是目前能在自己的作品中加入一些旋律及唱功的MC,在國內少之又少。其實,大部份的MC還是希望大家能以「玩」的角度出發,才是黑人音樂真正的元素。唯有充滿喜感、快樂。才能在目前「情歌至上」的音樂市場中,求得發揮的空間。
❹ 什麼是android apk加固
加固的過程中需要三個對象:1、需要加密的Apk(源Apk)2、殼程序Apk(負責解密Apk工作)3、加密工具(將源Apk進行加密和殼Dex合並成新的Dex)主要步驟:我們拿到需要加密的Apk和自己的殼程序Apk,然後用加密演算法對源Apk進行加密在將殼Apk進行合並得到新的Dex文件,最後替換殼程序中的dex文件即可,得到新的Apk,那麼這個新的Apk我們也叫作脫殼程序Apk.他已經不是一個完整意義上的Apk程序了,他的主要工作是:負責解密源Apk.然後載入Apk,讓其正常運行起來。
❺ Android逆向工程師是做什麼的
必須掌握的技能
1、負責安卓程序的加解密和數據傳輸分析、拆解、逆向等工作;
2 、逆向APK,了解運行過程;
3 、Andorid本地提權獲得root許可權;
4 、熟練掌握軟體逆向靜態分析、動態調試、代碼跟蹤等;
5 、熟悉Android開發,了解打包、反編譯、破解流程;
6 、so破解。
目前了解的如下:
1,加解密:這就很多了,一般都是遇到後再折騰解密,而且解密代碼和秘鑰一般都在代碼裡面。
2,Andorid本地提權獲得root許可權,一般真機是用recovery刷機包,但是病毒提權是怎麼樣的
目前掌握的一種提權的是像輸入命令行一樣輸入su並且用pm提權
還有一種是修改init.rc文件
3,ida動態調式和代碼跟蹤
4,打包,編譯和破解的流程是什麼樣的?
5,so破解:一般就是破殼。各種殼(360,娜迦等等)
加殼的另一種常用的方式是在二進制的程序中植入一段代碼,在運行的時候優先取得程序的控制權,做一些額外的工作。大多數病毒就是基於此原理。加殼的程序經常想盡辦法阻止外部程序或軟體對加殼程序的反匯編分析或者動態分析,以達到它不可告人的目的。這種技術也常用來保護軟體版權,防止被軟體破解。
6,了解反破解的技術
目前掌握的技術有:
1,反模擬器
2,反靜態代碼分析器如:反jeb
應該也是有很多反ida的,也就是加殼。
任職要求
1、具有豐富的Android開發分析經驗,熟悉android系統架構,熟悉android安全機制;
2、精通匯編語言、Java、C/C++語言,熟悉Smali語言,對逆向工程有濃厚興趣;
3、熟練掌握ida、gdb逆向分析工具;
4、熟練掌握軟體逆向靜態分析、動態調試、代碼跟蹤等;
5、熟悉so和Java層hook;
6、熟悉Android開發,了解打包、反編譯、破解流程;
7、深入理解arm Linux和Android底層運行機制;
8、熟練掌握各種調試工具:Smali、Dedexer、Dexmp、Apktool、Dex2jar、jd-gui。
❻ 怎麼加固安卓軟體
加固安卓軟體一般要達到以下效果:
1、防逆向:通過DEX 文件加殼以及DEX 虛擬化等技術,防止代碼被反編譯和逆向分析。
2、防篡改:通過校驗 APK 開發者簽名,防止被二次打包,植入廣告或惡意代碼。
3、防調試:防止應用被 IDA、JEB 等工具調試,動態分析代碼邏輯。
VirboxProtector安卓加固的核心技術一般有:
DEX 文件加密隱藏
對 DEX 文件加殼保護,防止代碼被竊取和反編譯。
SO 區段壓縮加密
對 SO 庫中的代碼段和數據段壓縮並加密,防止被 IDA 等工具反編譯。
單步斷點檢測
在混淆的指令中插入軟斷點檢測暗樁,防止native層run trace和單步調試。
防動態調試
防止應用被 IDA、JEB 等工具調試,動態分析代碼邏輯。
開發者簽名校驗
對 APK 中的開發者簽名做啟動時校驗,防止被第三方破解和二次打包。
SO 內存完整性校驗
在 SO 庫載入時校驗內存完整性,防止第三方對 SO 庫打補丁。
SO 代碼混淆
對 SO 庫中指定的函數混淆,通過指令切片、控制流扁平化、立即加密等技術手段,將 native 指令轉換為難以理解的復雜指令,無法被 IDA 反編譯,並且無法被還原。
SO 代碼虛擬化
對 SO 庫中指定的函數虛擬化,可以將 x86、x64、arm32、arm64 架構的機器指令轉換為隨機自定義的虛擬機指令,安全強度極高,可通過工具自定義配置,調整性能與安全性。
DEX 虛擬機保護
對 DEX 中的 dalvik 位元組碼進行虛擬化,轉換為自定義的虛擬機指令,最後由 native 層虛擬機解釋執行,防止逆向分析。