自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle:安卓反混淆工具

安全 數據安全
Oracle:基于Dalvik 反混淆的一種模式,它使用了有限執(zhí)行來提高語義分析。此外,這個靈感激發(fā)了另一個安卓反混淆工具:Simplify。

Oracle:基于Dalvik 反混淆的一種模式,它使用了有限執(zhí)行來提高語義分析。此外,這個靈感激發(fā)了另一個安卓反混淆工具:Simplify。

[[161882]]

之前:

https://github.com/CalebFenton/dex-oracle/blob/master/lib/dex-oracle/plugins/string_decryptor.rb

 

之后:

https://github.com/CalebFenton/dex-oracle/blob/master/lib/dex-oracle/plugins/string_decryptor.rb

 

比特幣:133bmAUshC5VxntCcusWJdT8Sq3BFsaGce

安裝:

步驟一. 安裝Smali / Baksmali

我確定如果你是安卓逆向精英,那你的路徑中肯定已經有smali和baksmali了。

步驟二. 安裝安卓 SDK / ADB

確保你的路徑中有adb。

步驟三. 安裝Gem

gem install dex-oracle

或者,你也可以選擇使用這種方式獲得源:

git clone https://github.com/CalebFenton/dex-oracle.git

cd dex-oracle

gem install bundler

bundle install

步驟四. 連接設備或者模擬器

你必須有一個模擬器運行或者一個接入Oracle能夠工作的設備。

Oracle需要在一個live的安卓系統(tǒng)上執(zhí)行方法。你可以選擇真正的安卓設備,也可以選擇模擬器(推薦)。如果你選擇了真正的安卓設備,確保你不介意在上面運行潛在的惡意代碼。

如果你更喜歡使用模擬器,并且已經安裝了Android SDK,你可以創(chuàng)建并啟動模擬器,如圖:

android avd

用法

Usage: dex-oracle [opts] <APK / DEX / Smali Directory>
    -h, --help                       顯示屏幕
    -s ANDROID_SERIAL,               執(zhí)行驅動的設備ID, default=""

        --specific-device
    -t, --timeout N                  ADB 命令執(zhí)行超時, default="120"
    -i, --include PATTERN            僅僅是優(yōu)化方法和類匹配模式, e.g. Ldune;->melange\(\)V
    -e, --exclude PATTERN            從優(yōu)化中排除這些類型,包括重寫
        --disable-plugins STRING[,STRING]*
                                     禁用插件, e.g. stringdecryptor,unreflector
        --list-plugins               列出可用插件
    -v, --verbose                    詳細內容
    -V, --vverbose                   非常詳細的內容

舉個例子,對于在一個類里面的唯一的deobfuscate方法調用Lcom/android/system/admin/CCOIoll,而不是一個APK調用obad.apk;

dex-oracle -i com/android/system/admin/CCOIoll obad.apk

如何運行

Oracle把Android app(APK), Dalvik可執(zhí)行文件(DEX)和Smali文件作為輸入源。第一,如果輸入源是一個APK或者DEX,它會被分解成很多個Smali文件。然后,這個Smali文件會被傳遞給很多執(zhí)行粉絲和修改的插件。插件搜索能夠被轉化為更易讀的模式。為了了解代碼做了什么工作,一些Dalvik方法真的被執(zhí)行了,然后我們收集了輸出。這樣,一些方法調用可以被替換為常量。之后,所有的Smali文件都被更新了。最后,如果輸入是一個APK或者一個DEX文件,被修改的Smali文件會被重新編譯,一個已更新的APK或者DEX就被創(chuàng)建了。

方法執(zhí)行是被驅動執(zhí)行的。輸入APK, DEX或者Smali都被和驅動混合進了一個使用dexmerge的DEX,然后被壓入了一個安卓設備或者安卓模擬器。無論插件是否請求,Oracle之后都會發(fā)送方法執(zhí)行信息到驅動。驅動程序在自己的DEX使用Oracle提供的參數使用Java反射來執(zhí)行方法,結果返回任何輸出或異常。這種方法對于很多字符串解密方法都非常有用,通常情況下,使用加密字符串或者一些one limitation都是執(zhí)行是限制的靜態(tài)方法。

攻擊

1. 創(chuàng)建自己的插件

這里有三個帶有Oracle的插件

Undexguard – 刪除某些特定類型的Dexguard混淆

Unreflector – 刪除某些Java反射

String Decryptor - 簡單的能夠刪除一些常見加密字符串的插件

如果你遇到一類新的混淆,它可能會用Oracle反混淆。查看Smali并找出是否代碼可以這樣:

1. 重新排列

2. 執(zhí)行一些靜態(tài)方法理解

以上任何一種情況,你都應該嘗試并寫出你自己的插件。下面的四個步驟教你如何創(chuàng)建自己的插件:

1. 確定Smali模式

2. 搞清楚如何簡化模式

3. 搞清楚如何與驅動交互并調用方法

4. 搞清楚如何直接應用修改

這里包含的插件應該是理解步驟3、4的很好的指導。驅動被設計幫助步驟2 。

當然,我們非常歡迎你分享任何你遇到的混淆。

更新驅動程序

首先,確保DX在你的路徑上。這是Android SDK的一部分,但是它可能不在你的路徑上,除非你是硬核。

驅動程序文件夾是一個由Gradle管理的Java項目。將它導入Eclipse,IntelliJ等,然后進行修改。為了完成驅動的更新,運行./update_driver。這將重建驅動并轉換輸入JAR進入一個DEX。

更多信息

TetCon 2016 Android反混淆演示

責任編輯:藍雨淚 來源: FreeBuf
相關推薦

2023-08-04 17:52:22

2020-10-14 07:27:08

MacBook

2014-03-14 11:44:28

安卓開發(fā)者Android開發(fā)

2014-04-01 13:50:28

安卓Android開發(fā)者

2019-03-26 16:45:23

安卓蘋果手機

2014-04-18 13:20:34

Android安卓開發(fā)工具

2016-02-16 13:27:20

2016-03-12 21:46:56

Inspeckage應用程序動態(tài)分析

2018-10-25 22:45:53

開發(fā)者技能工具

2012-03-28 10:37:55

谷歌安卓開發(fā)工具AppInventor

2015-12-10 17:02:59

2019-06-20 16:07:12

鴻蒙安卓操作系統(tǒng)

2023-03-26 20:23:10

Java開源工具

2015-05-13 18:30:47

2018-02-09 08:59:47

安卓FuchsiaiOS

2013-11-04 14:49:34

安卓

2023-09-12 09:51:54

微軟生成式 AI

2013-04-24 11:33:50

安卓

2015-07-28 15:10:55

2013-10-17 10:17:41

安卓
點贊
收藏

51CTO技術棧公眾號