<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    工具推薦 | GDA:中國首款現代交互式反編譯器

    VSole2022-03-31 22:49:20

    簡介(新版)

    GDA 是一個完全用 C++ 編寫的 Dalvik 字節碼反編譯器。與其他應用反編譯器不同,GDA 不依賴于 Java VM,支持 APK、DEX、ODEX、OAT、JAR、AAR 和 CLASS 文件。

    項目地址:https://github.com/charles2gan/GDA-android-reversing-Tool

    簡介:http://www.gda.wiki:9090/introducation.php

    一、主窗口

    打開GDA,將我們要分析的APK文件拖到軟件UI上:

    1.目標文件的基本信息;
    2.DEX文件使用的API
    3.查看DEX中的所有字符串;
    4.查看所有方法使用的所有字符串;
    5.提取DEX文件中的所有URL(Pro版本);
    6.查看AndroidManifest文件;
    7.可編輯的十六進制查看器;
    8.惡意行為檢測;
    9.漏洞掃描(專業版);
    10.隱私泄漏掃描(專業版);
    11.展開權限,查看權限所屬的模塊/方法;
    12.點擊進入入口函數(方法);
    13.連接Android設備進行內存轉儲;
    14.搜索和訪問歷史記錄,雙擊可查看;
    15.目標文件中各元素的比例分布;
    16.DEX頭,點擊“DexClass*”項顯示相應頭,每個色塊代表不同的區域頭。當鼠標在其上移動時,將顯示提示。在偏移區域中單擊鼠標右鍵并跳轉到參考位置;
    17.加殼的識別;
    18.點擊代碼中的相關對象時,顯示該對象的索引值;
    19.點擊代碼中的相關對象時,會顯示該對象的包名;
    20.單擊代碼中的相關對象時,將顯示該對象的名稱。

    二、快捷鍵

    快捷鍵說明

    快捷鍵描述F5

    切換java和smali代碼

    F

    通過數據流分析跟蹤參數和返回值

    X

    交叉引用、定位調用者(字符串、類、方法、字段、Smali、Java)

    Esc/<-/Backspace

    返回上次訪問

    ->

    轉至下一次訪問

    G

    通過輸入偏移量跳轉到某個地方

    N

    重命名變量/方法/類名

    S

    按給定字符串搜索所有元素

    C

    注釋。只支持Java代碼

    DoubleClick

    雙擊method/str/field/class名稱查看對象

    M

    將光標置于 Smali 代碼行并按“M”鍵編輯指令

    UP\bigtriangleup

    按“向上”鍵訪問樹控件中的向上方法

    Down\bigtriangledown

    按“向下”鍵訪問樹控件中的向下方法

    D

    轉儲方法的二進制數據,僅支持Smali模式

    Enter

    編輯框修改生效

    H

    以十六進制顯示數據

    Ctrl+H

    彈出搜索歷史窗口

    Ctrl+A

    全選

    Ctrl+C

    復制

    Ctrl+V

    粘貼,僅適用于可編輯框

    Ctrl+X

    Ctrl+F

    找出當前窗口的字符串

    Ctrl+S

    將修改保存到 GDA 數據庫文件中

    三、Android惡意軟件靜態分析示例

    本節通過一個惡意軟件示例文件介紹GDA的基本用法。

    A.總結分析

    總結分析就是對整個APK做一個簡單的了解。下面是一個Android惡意軟件的例子來說明GDA的用法。

    1. 首先,我們將惡意軟件樣本拖入 GDA。然后我們就可以看到它的基本信息了。

    我們可以根據呈現的信息判斷APK是否被加殼。如果 APK 未加殼,則 DexHeader 下方不會顯示任何內容。

    1. 然后我們可以檢查我們的APK的權限。正如我們在基礎信息的底部看到的,APK 啟用了很多危險的權限e.g. READ_SMS, SEND_SMS, READ_CALL_LOG, READ_PHONE_STATE等等。

    1. 通過點擊工具欄中紅色標記的按鈕,我們可以查看APK的簽名信息。

    1. 此外,AndroidManifest樹形控件頂部的 可以引導您分析Activity, Service, Receive和AndroidManifest.xml 中的其他配置信息。

    1. 接下來,我們可以點擊樹框中的MalScan 來掃描 APK 的惡意行為。下圖顯示惡意軟件有很多惡意操作。

    如果我們想進一步分析方法會做什么,可以雙擊method@xxxxxx查看方法代碼,比如點擊"#Sending message:”下面的“[method@000197]: com.itcast.cn112.a.a” 。該方法下的代碼將會如圖顯示。

    當然,如果我們要分析 Smali 代碼,只需按F5

    從圖中我們可以看出,這個方法會訪問短信。

    此外,我們還可以看到 DEX 使用的字符串和 API。AllStrings將顯示 DEX 中的所有字符串,并將AppStrings通過方法代碼顯示引用的字符串。實際上,AppStrings 是一個更有用的字符串。string@區域還支持交叉引用(X)、編輯(右鍵單擊)和雙擊操作。

    AllAPI的method@區域支持交叉引用功能。

    B、JAVA偽代碼分析

    這里主要展示一些java代碼中的交互操作。下面簡單介紹一下GDA的基本使用。

    1. 從入口點開始,點擊入口按鈕查看入口方法。

    如果反編譯內容太大,需要在當前代碼中搜索感興趣的關鍵字,可以按ctr+f啟動搜索框。

    現在,如果我們要標記已識別的方法、字段或類。我們可以重命名它們。例如,雙擊a.d()將顯示下圖。很明顯,它是用來記錄信息的,所以我們將方法名重命名為'log',GDA會升級所有引用的位置。

    然后,我們以相同的方式重命名所有可識別的方法。

    如果我們想要做進一步的描述,可以使用注釋(C)。

    當我們需要分析當前方法的調用者時。我們可以通過交叉引用來查看它們。

    當我們想知道在哪里使用字符串時。您可以將鼠標放在雙引號之間并按 X 以查看參考方法。

    至此,基本的使用已經完成,如有問題,歡迎留言。并歡迎報告錯誤。

    四、輔助工具

    1. XML 解碼器

    自行實現的解碼功能可以繞過Anti-decoding技術:

    2. 算法工具

    該工具支持以下算法:

    哈希算法:md2 md4 md5 sha sha1 sha224 sha256 sha384 sha512

    對稱加密:des idea rc2 rc4 rc4-40 rc2-40 rc2-64 bf cast5 aes (128 192 256),模式如ecb cbc ofb cfb,其他模式如(cfb1 cfb8)

    非對稱加密:RSA

    編碼算法:base62、base64 3.

    alg-tool 接受 3 種類型的輸入作為密鑰、明文和密文。簡單來說,1.我們可以直接輸入字符串作為源數據,也可以2.輸入“hex:”如下圖所示的二進制數據。3.我們可以雙擊文本框彈出文件對話框,然后選擇一個文件作為輸入。

    3.Dumper

    更多詳情,請訪問以下鏈接:https : //zhuanlan.zhihu.com/p/26341224

    4.搜索工具(S)

    字符串函數apk
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    二進制程序分析
    2021-09-25 17:18:46
    分析惡意軟件的第一步是收集二進制程序在主機上執行的行為事件,研究人員根據這些行為大體形成一個思路來描述惡意軟件的功能。 這包含應用釋放或者從互聯網下下載的文件,寫入什么樣的注冊表、訪問了什么網絡地址,修改讀寫本地的什么文件等等。那么研究人員通過行為會確定惡意樣本的類型。通常類型如下:
    多次測試后發現確實都相等,確定就是標準的Base64編碼。發現與之前的111極為相似。
    寫一個android中so文件反混淆的系列文章,目前這是第三篇。根據其他人的分析可知,libDexHelper.so是指令抽取的實現,libdexjni.so是VMP的實現。在android so文件攻防實戰-百度加固免費版libbaiduprotect.so反混淆中我們是交叉引用拿到加密后的字符串和它對應的解密函數的表然后frida主動調用得到的解密后的字符串,但是在這里這個方法就不太好用了。
    大廠基本為了程序的安全,會使用大量內聯SVC去調用系統函數,以此來保護程序的安全。如何實現SVC指令的IO重定向,成為最大的問題。內核態是當Linux需要處理文件,或者進行中斷IO等操作的時候就會進入內核態。當arm系列cpu發現svc指令的時候,就會陷入中斷,簡稱0x80中斷。
    bang加固簡單分析
    2022-07-31 16:59:14
    dex加固,可以使用frida-dexdump可以直接dump下來。
    滲透測試Tips
    2022-04-13 06:38:50
    知己知彼,百戰不殆1、如果提示缺少參數,如{msg:params error},可嘗使用字典模糊測試構造參數,進一步攻擊。
    在本期的PHA家族精選系列中,我們介紹了Bread,這是一個大規模的計費欺詐家族。于2017年初首次開始追蹤Bread(也稱為Joker),確定專門為短信(SMS)欺詐而設計的應用程序。隨著Play商店推出新政策以及Google Play P...
    綠城杯-WriteUp
    2021-09-30 06:44:41
    Pwnnull解題思路說是null 其實是off by one,基于uaf那題,這里直接試著打2.23,用的libc也是和uaf那題一樣的#?ezuaf解題思路遠程doublefree泄漏cfree后三位,配合mallochook地址通過libcdatabase確定2.23,然后打og#?
    Android 逆向 apkrev
    2021-09-27 16:16:28
    看雪論壇作者ID:逆時針向左
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类