最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

易錦Android逆向工程師精英計劃2023

2023-08-17 21:00 作者:bili_74890469624  | 我要投稿

Android逆向分析大全

分析步驟

通用逆向分析步驟

  • 1.了解該模塊正向編程相關方法

  • 2.使用apktool解密apk,得到資源、jni模塊等文件

  • 3.從apk提取出dex文件,使用dex2jar轉換成jar文件,再用java逆向工具得到java源碼 dex->jar->java

  • 4.根據特征(字符串、常量、包名類名方法名、manifest文件、布局文件等方式)或調試手段定位到關鍵代碼

  • 5.分析變量含義類型、函數(shù)邏輯、模塊流程

  • 6.對變量、函數(shù)、類進行標注、恢復成高級語言 ->c

Android程序的特點相比在于使用混淆方式打包,將包名、類名、函數(shù)名改成不易看懂的字母,從而使生成的apk小很多(android studio提供了release編譯方式,使用proguard混淆),因此反編譯apk最多的工作在于重構這些名稱,這一點和pc上一致,對于android native程序(jni)則和pc上基本一致,不同之處在于常見的是arm匯編。

安卓上APK調試步驟:

  • 1.Apk(debuggable)或系統(tǒng)(ro.debuggable=1)設置為可調試

  • 2.在虛擬機中啟動服務端(adbd/android_server)

  • 3.在主機端連接客戶端調試器(IDA/jdb/adt),設置斷點

安卓上linux程序調試步驟:

  • 1.在虛擬機中啟動服務端(gdb_server/linux_server)

  • 2.在主機端連接客戶端調試器(IDA/gdb_for_windows),設置斷點

對于apk的反編譯,由于資源和xml都進行了編碼,因此反編譯時必然要解析相應的resource.arsc/AndroidManifest.xml等文件,對于做過保護處理的apk通常會在這里做手腳干擾Apktool、dex2jar等反編譯工具因此很有必要掌握編譯、調試這些工具源碼的方法(見“如何編譯、調試apktool和dex2jar”)

分析工具

  • 集成IDE:APK改之理、JD-GUI、JEB(1.4破解 2.0)、jadx

  • 解壓(apk, jar):WinRar

  • 解析資源:apktool

  • 反編譯引擎(jar, class):dex2jar工具集、jd-core(JD-GUI,JD-Eclipse反編譯核心)、fernflower(Android Studio反編 、procyon

  • 回編譯:aapt、dex2jar工具集

  • 調試器:IDA、jdb、adt等

  • 輔助工具:DDMS 如果是虛擬機可以看到所有進程

APK改之理

  • 整合&提供了全套解壓、反編譯代碼和資源、回編譯、簽名功能,強大的正則搜索,修改smali字節(jié)碼等功能

  • 集成ApkTool、Dex2jar、JD-GUI工具

  • 可視化操作,全自動的反編譯、回編譯、簽名Apk

  • 正則表達式搜索資源及源碼

JD-GUI

輕量級反編譯,反編譯jar/class等java字節(jié)碼文件(能力一般),提供簡單的搜索能力

JEB

  • 反編譯apk/jar工具(能力較強)

  • 強大的正向、反向索引,一定程度重命名能力,一定搜索能力

  • 支持注釋、插件

  • 交互式可視化操作,全自動的反編譯

  • 支持重命名

Dex2jar工具集

dex2jar是一個工具包,反編譯dex和jar,還提供了一些其它的功能,每個功能使用一個bat批處理或 sh 腳本來包裝,只需在Windows 系統(tǒng)中調用 bat文件、在Linux 系統(tǒng)中調用 sh 腳本即可。在bat中調用相應的jar主類完成特定功能,例如d2j-dex2jar.bat中的內容是:@"%~dp0d2j_invoke.bat" com.googlecode.dex2jar.tools.Dex2jarCmd %*。常用的有dex2jar jar2dex dex2smali smali2dex

  • d2j-apk-sign用來為apk 文件簽名。命令格式:d2j-apk-sign xxx.apk 。

  • d2j-asm-verify 用來驗證jar 文件。命令格式:d2j-asm-verify -d xxx.jar。

  • d2j-dex2jar 用來將dex 文件轉換成jar 文件。命令格式:d2j-dex2jar xxx.apk

  • d2j-dex-asmifier 用來驗證dex 文件。命令格式:d2j-dex-asmifier xxx.dex。

  • d2j-dex-dump 用來轉存dex 文件的信息。命令格式:d2j-dex-dump xxx.apk out.jar 。

  • d2j-init-deobf 用來生成反混淆jar 文件時的初始化配置文件。

  • d2j-jar2dex 用來將jar 文件轉換成 dex 文件。命令格式:d2j-jar2dex xxx.apk。

  • d2j-jar2jasmin 用來將jar 文件轉換成jasmin 格式的文件。命令格式:d2j-jar2jasmin xxx.jar

  • d2j-jar-access 用來修改jar 文件中的類、方法以及字段的訪問權限。

  • d2j-jar-remap 用來重命名jar 文件中的包、類、方法以及字段的名稱。

  • d2j-jasmin2jar 用來將jasmin 格式的文件轉換成 jar 文件。命令格式:d2j-jasmin2jar dir dex2jar為d2j-dex2jar 的副本。

  • dex-dump為d2j-dex-dump 的副本

Apktool反編譯&打包工具

  • 反編譯apk:apktool d file.apk –o path

  • 回編譯apk:apktool b path –o file.apk

常見文件格式

Apk

Android package,android安裝程序文件,本質上是壓縮包,解壓得到classes.dex、resources.arsc、AndroidManifest.xml、so文件以及資源文件

  • Resources.arsc資源描述文件

  • Classes.dex所有代碼編譯過得darvik字節(jié)碼文件,可能會有多個

  • AndroidManifest.xml 編譯過的AndroidManifest.xml文件


易錦Android逆向工程師精英計劃2023的評論 (共 條)

分享到微博請遵守國家法律
达孜县| 白朗县| 武汉市| 武胜县| 洛隆县| 怀集县| 济阳县| 剑阁县| 宕昌县| 淳安县| 济宁市| 德兴市| 仁化县| 北流市| 毕节市| 新营市| 新河县| 淳化县| 新平| 容城县| 清水河县| 城口县| 米泉市| 页游| 广西| 甘泉县| 澄江县| 承德市| 安康市| 凯里市| 海丰县| 兴国县| 本溪市| 班玛县| 高邮市| 石狮市| 微博| 赫章县| 沈丘县| 平顺县| 六盘水市|