1. 程式人生 > >android hook技術-Xposed框架 幫你輕鬆應對支付寶2016晒賬單

android hook技術-Xposed框架 幫你輕鬆應對支付寶2016晒賬單

一、支付寶2016年賬單。

最近幾天微信朋友圈充斥著各式的支付寶2016賬單,對於程式設計師屌絲來說打開發現年度消費9W+,和他們動輒十幾萬的消費沒得比,細看更有80%的消費還都是還信用卡,頓時萬念俱灰啊!!!  有木有!!! 突然看到有人發出了負數的賬單,也是醉了。。。看來在支付寶存了好幾千萬啊,才能賺支付寶錢。。。但是作為程式設計師還是要跟著時代潮流的,也想秀一把,怎麼辦呢??? 那就改資料吧,但是支付寶的網路請求和內部資料校驗實在是贊,而且從開啟來看應該是個網頁。。。 既然此路不通我們換個思路,他們都秀消費,那我就秀存款吧!!!看圖。。。
首先宣告一下上圖純屬個人好玩,修改支付寶頁面資料而來的。。。完全不是真實資訊。 換個思路不修改資料,那怎麼辦呢改顯示內容,就需要祭出我們今天的重要工具Xposed框架,

二、Xposed框架了解。

Xposed框架是一款可以在不修改APK的情況下影響程式執行(修改系統)的框架服務,基於它可以製作出許多功能強大的模組,且在功能不衝突的情況下同時運作。


思路:hook系統函式,來替換文字。  一般android介面展示都會用TextView,所以我們就先hook系統的setText()方法來監聽並且輸出log來看是否能hook到我們需要
更改的內容。  有了思路就開始動手了。。。。。。

三、hook支付寶。

一、安裝Xposed框架,前提需要root過的手機。在各大應用市場都是可以搜到Xposed框架的下載安裝就ok了,需要注意上面是否有提示框架是否啟用。

二、編寫Xposed模組的程式碼。

1、Xposed模組其實就是一個新建一個android app,官網下載 XposedBridgeApi-版本號.jar。 然後專案依賴這個jar包,這裡需要注意是依賴而不是將jar包編譯打包生成到
apk,因為執行的時候Xposed框架是提供此jar包的,此jar包只是參與編譯不參與執行的。
gradle中配置的話就是:provided files('lib/XposedBridgeApi-82.jar'),再次注意下是provided而不是compile
eclipse的話就放在lib包下而不是libs。
2、在工程目錄assets下新建檔案 xposed_init(注意是檔案)


3、專案中新建一個類實現IXposedHookLoadPackage介面,這樣當框架hook到程序的時候就會通知此介面。而我們修改支付寶資訊的也就是這裡
並且將新建類的路徑寫到上面assets目錄下新建的xposed_init檔案中。比如 --> com.sqlite.greendao.Main
public class Main implements IXposedHookLoadPackage {

    @Override
    public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable {
        Log.d("開始hook","包名: " + lpparam.packageName);

        if(lpparam.packageName.equals("com.eg.android.AlipayGphone")){
            Log.d("開始hook", "1、找到支付寶開始掛鉤子!");
            new HookText().hook(lpparam);
        }

    }

}

4、在清單檔案AndroidManifest.xml中新增三個資料項,第一個是支援xposed模組,第二是模組的描述展示在xposed框架中的。第三個是支援的xposed框架最低版本號。
<meta-data
    android:name="xposedmodule"
    android:value="true" />
<meta-data
    android:name="xposeddescription"
    android:value="自由設定支付寶餘額" />
<meta-data
    android:name="xposedminversion"
    android:value="30" />


5、真正的開始修改文字了,看程式碼。
替換成需要裝X的文字。。。。。。
public class HookText {

    public void hook(){
        findAndHookMethod(TextView.class, "setText",CharSequence.class, TextView.BufferType.class, boolean.class, int.class, new XC_MethodHook() {
            @Override
            protected void afterHookedMethod(MethodHookParam param) {
                Log.d("開始hook", "2、獲得資料" + param.args[0]);
            }

            @Override
            protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
                String text = (String) param.args[0];
                if("0.00".equals(text)){
                    param.args[0] = "10000000.00";
                }if("可用餘額 0.00元".equals(text)){
                    param.args[0] = "可用餘額 10000000.00元";
                }
                Log.d("開始hook", "3、獲得資料!" + param.args[0]);
            }
        });
    }

}

6、執行程式到手機中,在Xposed框架中勾選此模組。

三、重啟,開啟支付寶看效果。

看最開始的圖。。。。

注意:以上分享純屬個人娛樂,如有用作他處概不負責!!!

原始碼下載地址:http://download.csdn.net/detail/dsklafkaskl/9730775