溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

android如何實現(xiàn)加密參數(shù)定位

發(fā)布時間:2021-04-01 11:28:50 來源:億速云 閱讀:264 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)android如何實現(xiàn)加密參數(shù)定位的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

在逆向一個Android程序時,如果只是盲目的分析需要閱讀N多代碼才能找到程序的關(guān)鍵點或Hook點,本文將分享一下如何快速的找到APP程序的加密參數(shù)位置,其實不論是找關(guān)鍵位置、找hook點,找加密參數(shù)、代碼邏輯追蹤,都是類似的處理方法。

巧用搜索-靜態(tài)分析

一般靜態(tài)分析找加密參數(shù)的流程都是先查殼(脫殼)、反編譯、查找程序的入口方法、分析程序的執(zhí)行流程。
假設(shè)已經(jīng)使用Android killer反編譯了未加殼的app,直接使用工程搜索檢索需要查找的參數(shù)名,根據(jù)AK的反饋信息進行對比,找到其對應的參數(shù)位置。也可以根據(jù)應用執(zhí)行流程逐行向下分析代碼,比較累。

objection定位

objection是基于Frida的動態(tài)分析工具包,可以免root動態(tài)調(diào)式apk,同時支持iOS和Android。安裝方法可以到github查看。Github:https://github.com/sensepost/objection
在通過搜索之后如果有幾個不確定的位置,則正好可以使用Objection,Objection就是專業(yè)的定位小能手,從定位流程上來說也只有三步。

1、注入目標進程

objection -g com.xxx.xxx explore

2、跟蹤類

android hooking watch class 'com.xxx.xxx.lx.ApiSign'

3、查看入?yún)⒑头祷刂?/p>

android hooking watch class_method 'com.xxx.xxx.lx.ApiSign.a' --dump-args --dump-return

然后通過參數(shù)和返回值與請求接口中的協(xié)議進行對比就可以卻確定究竟是在哪一個位置了。

frida-hook

frida、xposed這類hook工具也是動態(tài)分析的一種。假設(shè)某App的接口有 signature 簽名,并且該參數(shù)值看上去非常像是Base64,并且長度為定長且少于20位。這個時候如果通過工具全局搜索沒有找到,則可以通過frida憑感覺Hook下App中所有操作Base64的位置。
Frida代碼如下:

var Base64Class = Java.use("android.util.Base64");
Base64Class.encodeToString.overload("[B", "int").implementation = function(a,b){
 var resault = this.encodeToString(a,b);
 console.log(">>> Base64 " + resault);
 if(resault.length <= 20){
  var stackAdd = threadinstance.currentThread().getStackTrace();
  console.log("resault stackAdd is:" + Where(stack));
 }
 return rc;
}

通過這種方式大概率能打印出簽名計算的位置,這也屬于巧計的一種,大家一定不要忘記這種定位方式。

log注入

代碼注入也屬于動態(tài)分析,流程是先修改apk的smali代碼,既是在某關(guān)鍵函數(shù)前加入 android/util/Log 輸出,配合LogCat 查看程序執(zhí)行時的log數(shù)據(jù)。

關(guān)于android/util/Log的 Log extends Object 一共有5個方法:Log.v() Log.d() Log.i() Log.w() and Log.e()

一般使用Log.v() 日志輸出函數(shù)就可以了,不做案例了,詳細內(nèi)容會往書中寫。

動態(tài)調(diào)試

其實定位的方法只有兩種靜態(tài)分析和動態(tài)分析,動態(tài)調(diào)試也屬于動態(tài)分析,和上面的方法異曲同工。

動態(tài)調(diào)試這里可以理解為堆棧調(diào)試,有時候需要利用到不同的工具和方法,

比如 JEB調(diào)試、smali調(diào)試、IDA調(diào)試等等。

感謝各位的閱讀!關(guān)于“android如何實現(xiàn)加密參數(shù)定位”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI