首頁 >運維 >安全 >Android逆向進階的方法是什麼

Android逆向進階的方法是什麼

WBOY
WBOY轉載
2023-05-22 09:55:281590瀏覽

1. 武器 get

小白,要使用這個武器,就要先打通經脈。

1.1 經脈(環境)

1.Root,手機root,無root不安卓。打通root經脈我們才能進行之後的操作。

2.Xposed框架安裝,想要使用Xposed這個武器,就要先能拿的起來才能談使用。

1.2武器

xposedBridgeApi-82.jar.jar。

這個就是我們的武器了,小白,來,我給你示範示範這個武器的基本使用方法。

2.武器示範

Android逆向進階的方法是什麼

我們這裡使用Xposed武器攔截packageName,然後進行輸出。

其實這個武器還是搭配內功才能發揮最大的能力。

搭配內功,師傅,這個怎麼搞。

莫急莫急,我們一步一步來。

0x02 練習使用Hook的第一重內功(Android Studio 3.0 Xposed)

小白,我先傳授你第一重內功的運行穴位。要好好聽哦。

Android Studio 3.0 基本設定

我們先來提供內容運作一個環境。

(1)先建立一個不需要Activity的專案

Android逆向進階的方法是什麼

(2)然後導入jar套件。並且右鍵add as Library。

Android逆向進階的方法是什麼

(3)填入Androidmanifest.xml檔。

Android逆向進階的方法是什麼

  <meta-data></meta-data>
        <meta-data></meta-data>
        <meta-data></meta-data>

(4) 修改依賴方式

Xposed裡已有該jar套件內容,再次打包進去會衝突。

Android逆向進階的方法是什麼

(5)基本Xposed模型建立

使用alt enter實作一個方法。

Android逆向進階的方法是什麼

小白,聽我囉嗦兩句。

handleLoadPackage,這個方法用於在載入應用程式的套件的時候執行使用者的操作。

LoadPackageParam loadPackageParam:,這個參數包含了載入的應用程式的一些基本資訊。

內功實作

Android逆向進階的方法是什麼

這裡一句話就可以實作。

XposedBridge.log("HAI_app: " loadPackageParam.packageName);

這裡我們要進行思考了,什麼是 XposedBridge.log了。

The print of posedBridge.log will be output to the logging feature of the xposed framework's startup program.。這樣也更方便我們的查看。

我們來做設定的最後一步。設定開始地方。

新建assets目錄裡,新建一個file。 file名稱為xposed_init。

寫入套件名稱 類別。

測試成果

Build APK

#安裝進行測試。

手機安裝然後重新啟動即可。

Android逆向進階的方法是什麼

思考

所謂師父領進門,修行看個人。所以啊。

我知道了師傅,我們是不是可以透過這個簡單的來進行過濾啊。例如寫一個簡單的分析系統。或者是其他的東西,我們還可以對這個進行過濾。我先自己去試試。

小白的自我修行

透過這個運行路徑,對報名進行分析和過濾。

進行簡單的嘗試。

使用昨天學的java字串的substring來進行對字串過濾。

Android逆向進階的方法是什麼

然後進行測試。

當然也可以針對這個進行更詳細的說明。

0x03木樁實戰練習

小白,來來,師傅這裡給你找了一個木樁,我打給你看看。這個hook是怎麼法功的,怎麼打的。要學好。

知道了師傅。

木樁資訊收集

1.基本資訊

小白啊,用我們之前使用過的一個武器,來收集這些基本資訊。

師傅,我們一般都會收集什麼資訊啊。

恩,我們一般要收集

1.木樁的包名
2.木樁的簡單的邏輯
....

##小白,這個你就自己收集把。

小白的運算
首先是套件名稱。使用武器,apkhelper。

Android逆向進階的方法是什麼

取得到套件名稱資訊。 com.example.login

然後是簡單的邏輯手機。

Android逆向進階的方法是什麼

2.反编译信息收集

小白啊,收集玩了吗?

收集完了师傅。

好,我们接下来收集反编译信息。知己知彼,方能百战不殆。

师傅的操作

首先我们来看看我们要收集的东西。

1.关键的类名。
2.关键的函数位置。

来用Android Killer武器反编译木桩。

定位。

查看类名,进行记录。

Android逆向進階的方法是什麼

小白,看清楚,是这个样子进行记录。

原来是这样。com/example/login/MainActivity;
但是我们要改成这样的。com.example.login.MainActivity

现在就需要定位到关键函数了。

Android逆向進階的方法是什麼

这个login就是我们要Hook住的函数啦。

Ljava/lang/String;Ljava/lang/String;从这里我们可以看到是两个输入内容。并且类型是String。我们现在要做的就是要hook住这个输出,然后对其进行输出。

木桩实战练习

环境搭建

好了,小白,前期资料收集的差不多了。我现在要发功了,要看清楚我的使用哦。

先把环境调整好。

然后先做一个简单的过滤。

Android逆向進階的方法是什麼

这个时候,收集的包名就排上用场了。

因为是hook的是方法,所以我们这里使用一个方法。

Android逆向進階的方法是什麼

第一个参数,要hook的包名+方法名,这个也是我们收集好的。

第二个参数不动

第三个参数方法名

第四个参数 输入的参数

我们有两个String类型的参数,所以才这样写

最后一个参数,就是做一个监听。可以监听这个方法的使用前和使用后。

f for木桩

小白,一切准备你就须,看为师给你f这个木桩。

Android逆向進階的方法是什麼

小白,你看这第一招

XposedBridge.log("ZHUZHU520:LoginName:"+param.args[0]);

这一招搞它的第一个输入。

然后再来看这一招

XposedBridge.log("ZHUZHU520:Passward:"+param.args[1]);

这一招搞它的第二个输入。

然后最后一招。

XposedBridge.log("ZHUZHU520:end???:"+param.getResult());

这一招就是拦截返回值。

小白啊,这里有一个需要思考的内容。

这样hook的意义或者作用是什么?

小白的思考

师傅,我觉得首先,这样可以拦截下输入的参数,还有返回的值。如果在hook里做一个转发信息的技能。那不就可以成功的对登录账户的人进行账号和密码的获取。

这不就是和钓鱼一样了嘛。

我觉得这是一个很大的漏洞,如果登录厂商没有做相应的处理,那这里我可以拿这个搞死他。

好了,小白,你说的很对,我们现在来对这个进行下测试吧。

f 木桩测试

Android逆向進階的方法是什麼

小白啊,你看这里我们就成功的拦截内容了。小白分配给你一个任务,使用hook f来拦截木桩,并确保不管我是否输入正确,木桩能够成功登录。

0x04 木桩f进阶(小白的自我进步)

XposedBridge.log("ZHUZHU520:end???:"+param.getResult());

思考一

师傅之前使用了一个param.getResult()获取了返回值,那我是不是可以使用相同的set方法,重新对这个进行赋值啊。

根据各种方式,我们知道了这里的返回值就是Z,也就是布尔型。

说干就干,争取f掉木桩。

Android逆向進階的方法是什麼

以上是Android逆向進階的方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除