天天看點

跟着鬼哥學Android java hook(一)

http://www.52pojie.cn/thread-288128-1-1.htm

參考:http://www.cydiasubstrate.com

0x0:前言

一直以來想做一下安卓java hook方面的東西,因為一些遊戲的測試,如果能做好java hook的話,那麼本機測試的話将會非常友善,更主要的是在一些有簽名或者md5防護的遊戲中,我們可以确定好位置,然後hook相關方法和修改參數,達到測試的效果,能確定找準位置,那麼剩下的就尋找遊戲的驗證即可。

那麼,我們就找了一個cydiasubstrate架構開始測試,其實,用xposed也一樣,看使用習慣了,這裡我們是剛開始學習,那麼就先使用這個開始了。

下面的代碼相關的,是使用官網介紹的相關例子。 http://www.cydiasubstrate.com/id/20cf4700-6379-4a14-9bc2-853fde8cc9d1/

建議讀者去讀官網介紹,英文的,不多,一般都能了解掉。實在不想看官網的,那就繼續本篇文章吧。

首先是在手機上安裝cydia架構: https://cache.saurik.com/apks/com.saurik.substrate_0.9.4010.apk

打開後,簡單的英文,按照說明點一下即可。

0x1:建立工程

建立好工程以後,将所需jar包導入

跟着鬼哥學Android java hook(一)

然後開始配置AndroidManifest.xml檔案

跟着鬼哥學Android java hook(一)

1.我們使用Application對象,程式最優先啟動的 2.這裡設定主類,跟正常的安卓工程不同,這裡相當于開發一個插件 3.這個權限,代表着cydia能夠識别他為自己的插件,可以啟動它

主類操作: 這裡initialize()是初始化相關東西,這個相當于main函數入口

跟着鬼哥學Android java hook(一)

然後後面的方法,都寫上注釋了,這裡也就不再多叙述。

跟着鬼哥學Android java hook(一)

這個工程的目标是,hook手機上面的文字顔色,即短信,聯系人之類的文字顔色,上面都操作完畢後,我們運作下程式,可以看到控制台:

跟着鬼哥學Android java hook(一)

這裡我們沒有Main和launch的入口,是以這個程式是沒有圖示顯示到手機桌面的,因為我們已經指定了他是cydia的一個插件,是以這個時候,我們重新開機手機即可啟動此插件。

跟着鬼哥學Android java hook(一)
跟着鬼哥學Android java hook(一)

通過上面兩張圖的對比,發現我們已經正常寫好了一個測試插件。 這個不是最終目的,隻是按照官網的介紹測試成功了一個demo而已,那麼接下來就是我們繼續擴充了。

測試demo通過,說明這個架構還是可用的,是以我們重要的是下一步的操作了。

我們的主要問題是,修改遊戲中的參數資料,如與jni相關的簽名資料傳輸,内購的通信修改,這個是比較重要的。

是以我們先從一個小demo開始,這也是我們下次文章的重點。

不熟悉此架構的同學,多去官網看看介紹,不要說是英文看不懂,就那麼一點單詞而已,查查也就行了,況且現在浏覽器都有翻譯。不過還是推薦看英文,原因你懂的。。。 相關測試demo都放到百度網盤,有興趣的可以試試。 畢竟是架構,用xposed有時候也有風險,是以這個也是,不過風險幾率不大的。

相關附件:

連結:http://pan.baidu.com/s/1gdKhj0J 密碼:zmib

l