精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Android HOOK工具Cydia Substrate使用詳解

移動開發 Android
Cydia Substrate是一個代碼修改平臺。它可以修改任何主進程的代碼,不管是用Java還是C/C++(native代碼)編寫的。而Xposed只支持 HOOK app_process中的java函數,因此Cydia Substrate是一款強大而實用的HOOK工具。

Cydia Substrate是一個代碼修改平臺。它可以修改任何主進程的代碼,不管是用Java還是C/C++(native代碼)編寫的。而Xposed只支持 HOOK app_process中的java函數,因此Cydia Substrate是一款強大而實用的HOOK工具。

官網地址:http://www.cydiasubstrate.com/

Demo地址:https://github.com/zencodex/cydia-android-hook

官方教程:http://www.cydiasubstrate.com/id/20cf4700-6379-4a14-9bc2-853fde8cc9d1

SDK下載地址:http://asdk.cydiasubstrate.com/zips/cydia_substrate-r2.zip

Substrate幾個重要API介紹

MS.hookClassLoad 

函數原型:void hookClassLoad(String name, MS.ClassLoadHook hook);

該方法實現在指定的類被加載的時候發出通知。因為一個類可以在任何時候被加載,所以Substrate提供了一個方法用來檢測用戶感興趣的類何時被加載。

     
  

參數

  
  

描述

  

name

包名+類名,使用java的.符號

hook

MS.ClassLoadHook的一個實例,當這個類被加載的時候,它的 classLoaded 方法會被執行。

MS.hookMethod 

該API允許開發者提供一個回調函數替換原來的方法,這個回調函數是一個實現了MS.MethodHook接口的對象,是一個典型的匿名內部類。它包含一個invoked函數。

函數原型:

void hookMethod(Class _class, Member member, MS.MethodHook hook, MS.MethodPointer old); void hookMethod(Class _class, Member member, MS.MethodAlteration alteration);

參數描述

(一)

參數

描述

_class

加載的目標類,為classLoaded傳下來的類參數

member

通過反射得到的需要hook的方法(或構造函數). 注意:不能HOOK字段 (在編譯的時候會進行檢測).

hook

MS.MethodHook的一個實例,其包含的invoked方法會被調用,用以代替member中的代碼

(二)     

  

參數

  
  

描述

  

_class

加載的目標類,為classLoaded傳下來的類參數

member

通過反射得到的需要hook的方法(或構造函數). 注意:不能HOOK字段 (在編譯的時候會進行檢測).

alteration

An instance of MS.MethodAlteration whose boxedinvoked method will be called instead of member. This instance will also be filled in using information from   the original implementation, allowing you to use invoke to call the original method implementation.

建議開發者使用第二種方式,這種方式使用起來簡單并且很少出錯,不需要一個單獨的MS.MethodPointer類實例。

使用方法

下面以官網的一個實例來說明cydia substrate的使用方法。該實例是實現將多個接口組件顏色修改為紫羅蘭色。

需要安裝:http://www.cydiasubstrate.com/download/com.saurik.substrate.apk

步驟一:創建一個空的Android工程。由于創建的工程將以插件的形式被加載,所以不需要activity。將SDK中的substrate-api.jar復制到project/libs文件夾中。

步驟二:配置Manifest文件

(1)需要指定權限:cydia.permission.SUBSTRATE

(2)添加meta標簽,name為cydia.permission.SUBSTRATE,value為下一步中創建的類名.Main

  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"> 
  2.     <application> 
  3.         <meta-data android:name="com.saurik.substrate.main" 
  4.             android:value=".Main"/> 
  5.     </application> 
  6.     <uses-permission android:name="cydia.permission.SUBSTRATE"/> 
  7. </manifest> 

步驟二:創建一個類,類名為Main。類中包含一個static方法initialize,當插件被加載的時候,該方法中的代碼就會運行,完成一些必要的初始化工作。

  1. import com.saurik.substrate.MS; 
  2.   
  3. public class Main { 
  4.     static void initialize() {  
  5.         // ... code to run when extension is loaded 
  6.     } 

步驟三:為了實現HOOK,達到修改目標類中的代碼的目的,我們需要得到目標類的一個實例,如示例中的resources。

  1. public class Main { 
  2.     static void initialize() { 
  3.         MS.hookClassLoad("android.content.res.Resources"new MS.ClassLoadHook() { 
  4.             public void classLoaded(Class<?> resources) { 
  5.                 // ... code to modify the class when loaded 
  6.             } 
  7.         }); 
  8.     } 

步驟四:通過MS.MethodHook實例實現原代碼的修改。

為了調用原來代碼中的方法,我們需要創建一個MS.MethodPointer類的實例,它可以在任何時候運行原來的代碼。

在這里我們通過對原代碼中resources對象原始代碼的調用和修改,將所有綠色修改成了紫羅蘭色。

  1. public void classLoaded(Class<?> resources) { 
  2. Method getColor;  
  3. try { 
  4.         getColor = resources.getMethod("getColor", Integer.TYPE); 
  5.     } catch (NoSuchMethodException e) { 
  6.         getColor = null
  7.     } 
  8.   
  9.     if (getColor != null) { 
  10.         final MS.MethodPointer old = new MS.MethodPointer(); 
  11.   
  12.         MS.hookMethod(resources, getColor, new MS.MethodHook() { 
  13.             public Object invoked(Object resources, Object... args) 
  14.                 throws Throwable 
  15.             { 
  16.                 int color = (Integer) old.invoke(resources, args); 
  17.                 return color & ~0x0000ff00 | 0x00ff0000
  18.             } 
  19.         }, old); 
  20.     } 

安裝運行,重啟系統后發現很多字體顏色都變了。如下圖所示:

                 

示例中MS.hookMethod的代碼可以改成:

  1. MS.hookMethod(resources, getColor, new MS.MethodAlteration<Resources, Integer>() { 
  2.          public Integer invoked(Resources resources, Object... args) 
  3.                  throws Throwable 
  4.          { 
  5.                  int color = invoke(resources, args); 
  6.                  return color & ~0x0000ff00 | 0x00ffee00
  7.          } 
  8. }); 

短信監控實例

在下面的例子中我們實現了短信監聽功能,將短信發送人、接收人以及短信內容打印出來:

  1. 1 import java.lang.reflect.Method; 
  2.  2 import android.app.PendingIntent; 
  3.  3 import android.util.Log; 
  4.  4 import com.saurik.substrate.MS; 
  5.  5   
  6.  6  
  7.  7 public class Main { 
  8.  8  
  9.  9     static void initialize() {   
  10. 10  
  11. 11     MS.hookClassLoad("android.telephony.SmsManager"new MS.ClassLoadHook() { 
  12. 12             
  13. 13  
  14. 14             @Override 
  15. 15  
  16. 16             public void classLoaded(Class<?> SmsManager) { 
  17. 17  
  18. 18                 //code to modify the class when loaded 
  19. 19  
  20. 20             Method sendTextMessage; 
  21. 21  
  22. 22             try { 
  23. 23  
  24. 24                     sendTextMessage = SmsManager.getMethod("sendTextMessage"
  25. 25  
  26. 26                             new Class[]{String.class,String.class,String.class,PendingIntent.class,PendingIntent.class}); 
  27. 27                     
  28. 28  
  29. 29                 } catch (NoSuchMethodException e) { 
  30. 30  
  31. 31                     sendTextMessage = null
  32. 32  
  33. 33                 } 
  34. 34  
  35. 35              MS.hookMethod(SmsManager, sendTextMessage, new MS.MethodAlteration() { 
  36. 36  
  37. 37                  public Object invoked(Object _this,Object... _args) throws Throwable{ 
  38. 38  
  39. 39                      Log.i("SMSHOOK","SEND_SMS"); 
  40. 40  
  41. 41                      Log.i("SMSHOOK","destination:"+_args[0]); 
  42. 42  
  43. 43                      Log.i("SMSHOOK","source:"+_args[1]); 
  44. 44  
  45. 45                      Log.i("SMSHOOK","text:"+_args[2]); 
  46. 46  
  47. 47                         return invoke(_this, _args); 
  48. 48  
  49. 49                     } 
  50. 50  
  51. 51             }); 
  52. 52             
  53. 53  
  54. 54             } 
  55. 55  
  56. 56         }); 
  57. 57  
  58. 58     } 
  59. 59  
  60. 60 } 

運行后的結果為:

 

責任編輯:閆佳明 來源: cnblogs
相關推薦

2024-07-16 09:51:39

HTMLHookReact

2023-12-25 08:25:42

AndroidHook應用程序

2019-02-23 13:53:55

起獲蘋果iOS

2018-02-07 15:25:41

2010-05-19 10:22:07

2011-07-06 17:48:30

iPhone Xcode 模擬器

2010-02-03 15:59:08

Android組件

2010-01-28 10:31:32

Android使用SD

2011-04-06 15:51:32

DelphiHOOK

2011-08-15 22:10:08

Oracle性能分析工

2019-11-01 08:49:07

JVM監控性能

2017-03-06 14:44:49

Androidhook技術

2009-07-08 17:33:46

JDK5.0內置工具

2020-11-11 10:25:51

Linuxss命令

2013-07-10 15:52:17

fragmentAndroid

2017-02-17 11:50:18

AndroidBitmap緩存池

2011-09-13 17:03:16

Eclipse And

2017-11-01 07:57:08

Python

2017-06-12 18:48:00

Android性能分析工具

2013-07-17 15:39:39

Github詳解
點贊
收藏

51CTO技術棧公眾號

北条麻妃久久精品| 欧美精品v国产精品v日韩精品| 久久久久欧美| 中文字幕乱码无码人妻系列蜜桃| 亚洲另类av| 欧美日韩精品一区二区三区四区| 黄色特一级视频| 五月激情婷婷网| 久久国产麻豆精品| 欧美精品九九久久| 成人激情五月天| 2020最新国产精品| 欧美曰成人黄网| 天堂8在线天堂资源bt| 免费在线看v| 国产精品18久久久久| 国产成人精品一区二区| 欧美黄色免费看| 亚洲精品进入| 日韩欧美高清一区| 久久久精品麻豆| 黄色影院在线看| 国产精品久久久久久久浪潮网站| 久久经典视频| 999久久久精品国产| 亚洲成年人在线播放| 成人三级视频在线播放| 久久一卡二卡| 亚洲欧洲国产专区| 热舞福利精品大尺度视频| 成人毛片网站| 国产稀缺精品盗摄盗拍| 欧美一区二区三区红桃小说| 欧美精品xxxxbbbb| 免费看a级黄色片| 77thz桃花论族在线观看| 亚洲日本成人在线观看| 婷婷久久伊人| 青青免费在线视频| av不卡免费电影| 国产精品theporn88| 国产成人久久精品77777综合| 美女视频黄久久| 全亚洲最色的网站在线观看| 亚洲国产精一区二区三区性色| 一区二区三区四区日韩| 久久精品国产亚洲| 1024手机在线观看你懂的| 亚洲精华一区二区三区| 日韩h在线观看| 亚洲国产果冻传媒av在线观看| 日韩精品三级| 精品国产髙清在线看国产毛片| 欧美色图校园春色| 视频一区中文字幕精品| 日韩精品影音先锋| 年下总裁被打光屁股sp | 丁香在线视频| 国产日韩亚洲欧美综合| 欧洲精品久久| 香蕉视频免费在线播放| 亚洲欧洲99久久| 在线无限看免费粉色视频| 国产美女在线观看| 亚洲精品国产品国语在线app| 女同性恋一区二区| 3344国产永久在线观看视频| 亚洲激情成人在线| 欧美男女爱爱视频| 亚洲一二三四| 欧美三级中文字幕| 久久精品亚洲天堂| 久久免费精品| 亚洲国产成人精品久久| aaaaa一级片| 日韩av自拍| 久久这里只有精品99| 中文字幕av免费在线观看| 国产综合亚洲精品一区二| 性色av香蕉一区二区| 欧美 日韩 精品| 久久国产精品无码网站| 成人黄色在线免费观看| 日夜干在线视频| 国产精品激情偷乱一区二区∴| 热久久最新地址| 欧美无毛视频| 日韩视频免费观看高清完整版在线观看| 久久久久99人妻一区二区三区| 欧美大片网址| 色爱精品视频一区| 国产第一页在线播放| 丝袜亚洲精品中文字幕一区| 亚洲aa中文字幕| 外国精品视频在线观看| 国产欧美日韩视频一区二区| 国产树林野战在线播放| 一级二级三级视频| 欧美巨大xxxx| 日韩中文字幕免费看| 久久久精品一区二区涩爱| 可以看av的网站久久看| 91精品网站| 国产www.大片在线| 亚洲一区二区精品久久av| 欧洲熟妇精品视频| 91亚洲无吗| 色黄久久久久久| 日韩av大片在线观看| 激情欧美一区二区三区在线观看| 久久精品第九区免费观看| 国产素人视频在线观看| 色婷婷综合激情| 伊人久久久久久久久| 日韩精品2区| 69精品小视频| 精品人妻一区二区三区四区不卡| 国产清纯白嫩初高生在线观看91| 久久亚洲国产成人精品无码区| 日本在线中文字幕一区二区三区| 欧美va亚洲va香蕉在线| 亚洲AV成人无码网站天堂久久| 国产日韩欧美高清免费| 51成人做爰www免费看网站| 北岛玲一区二区三区| 欧美日韩一区二区三区| 亚洲美女高潮久久久| 婷婷综合社区| 国产精品久久久久77777| 天天av综合网| 亚洲国产sm捆绑调教视频 | 亚洲精品一区在线观看香蕉 | 欧美性xxxxxx| 日本wwwwwww| 欧美日韩一视频区二区| 91久久精品国产91性色| 一级日本在线| 欧美午夜精品免费| 精品无人区无码乱码毛片国产 | 亚洲精品视频一区二区| 潘金莲激情呻吟欲求不满视频| 国产一区二区精品福利地址| 1769国产精品| 手机看片福利在线| 亚洲国产一区二区在线播放| 中文字幕无码毛片免费看| 亚洲视频在线免费| 亚洲一区二区自拍| 成人高清免费在线| 9191成人精品久久| 内射一区二区三区| 国产一区二区91| 老司机午夜免费福利视频| 午夜日韩影院| 欧美激情一区二区三区高清视频 | 成人丝袜视频网| 国产乱子伦精品无码专区| 中文在线综合| 高清欧美电影在线| 午夜成人免费影院| 日韩欧美亚洲国产一区| 在线不卡av电影| 久久精品午夜| 亚洲高清乱码| 亚洲日韩中文字幕一区| 欧美成年人视频网站| 精品人妻一区二区三区三区四区 | 日韩一区在线看| 午夜视频在线网站| 欧美女激情福利| 好吊色欧美一区二区三区| sese综合| 俺也去精品视频在线观看| 精品人妻无码一区二区| 欧美日韩国产色视频| 成年人免费观看视频网站| 久久精品国产亚洲一区二区三区| 中文字幕久久一区| 给我免费播放日韩视频| 秋霞午夜一区二区| 黄色在线视频网站| 亚洲激情电影中文字幕| 欧美国产一级片| 亚洲欧美一区二区三区久本道91| 美女扒开腿免费视频| 久久一二三区| 欧美xxxx吸乳| 欧美男男gaytwinkfreevideos| 国产专区欧美专区| av免费不卡国产观看| 在线电影av不卡网址| www.好吊色| 一本大道久久a久久综合| 成人免费黄色小视频| 99精品在线观看视频| 国模私拍视频在线观看| 999亚洲国产精| 中文字幕不卡每日更新1区2区| 精品久久ai电影| 91精品久久久久久久久不口人| 91黄页在线观看| 色偷偷av一区二区三区乱| 欧美 中文字幕| 欧美精品777| 欧美日韩a v| 亚洲一区二区三区美女| 99久久99久久精品免费看小说. | 九色91在线视频| www一区二区三区| 日本成人免费在线| 俺来也官网欧美久久精品| 色噜噜国产精品视频一区二区| 五十路在线观看| 日韩欧美一二区| 羞羞色院91蜜桃| 偷拍亚洲欧洲综合| 九九视频免费看| 国产精品久久久99| 性高潮久久久久久久| 成人黄色网址在线观看| caoporm在线视频| 日本v片在线高清不卡在线观看| 国产av人人夜夜澡人人爽麻豆| 99久久夜色精品国产亚洲96| 欧洲一区二区日韩在线视频观看免费 | 国产老头和老头xxxx×| 蜜臀av一区二区三区| 情侣黄网站免费看| 国产欧美日韩一级| 波多野结衣av一区二区全免费观看| 围产精品久久久久久久| 婷婷五月色综合| 欧美日韩一二| 日本一区二区视频| 国产va免费精品观看精品视频 | 亚洲精品成人| 中国成人在线视频| 香蕉国产精品| 樱空桃在线播放| 久久久久久久久久久妇女| 亚洲精品日韩在线观看| 日本不卡免费一区| 午夜精品一区二区三区四区| jvid福利在线一区二区| 日韩精品久久久毛片一区二区| 一道在线中文一区二区三区| 另类小说综合网| 香蕉久久99| 欧美亚洲国产免费| 精品国产一区二区三区av片| 日韩欧美一区二区在线观看 | 欧洲大片精品免费永久看nba| 91性高湖久久久久久久久_久久99| 成人国产精品久久| 亚洲综合在线播放| swag国产精品一区二区| 国产精品伊人日日| 日韩av网址大全| 日本在线观看一区二区三区| 日韩电影免费网址| www.-级毛片线天内射视视| 欧美一区亚洲| 欧美成人三级在线视频| 亚洲视频大全| 黄色av免费在线播放| 免费人成黄页网站在线一区二区| 日本人69视频| 国产成人免费视| 真人bbbbbbbbb毛片| 久久久精品免费观看| 性欧美13一14内谢| 国产精品美女久久久久高潮| 精品国产乱码久久久久久鸭王1| 亚洲成av人片一区二区| 99久久精品国产亚洲| 欧美四级电影在线观看| 国产日韩欧美视频在线观看| 亚洲电影av在线| 毛片在线能看| 久久天天躁狠狠躁夜夜av| 蜜臀av国内免费精品久久久夜夜| 欧美综合激情网| 伊人久久综合网另类网站| 国产精品免费在线播放| 欧美日韩伦理| 国产夫妻自拍一区| 日韩国产精品久久久久久亚洲| 亚洲 国产 图片| av不卡在线播放| 国精产品一区一区| 亚洲一区自拍偷拍| 色婷婷综合网站| 一区二区免费不卡在线| 三上悠亚久久精品| 久久国产精品99久久人人澡| 艳妇乳肉亭妇荡乳av| 国产精品久久夜| 97免费在线观看视频| 欧美精品高清视频| 久久久资源网| 久久久久久有精品国产| 久久久国产精品网站| 精品久久久久久亚洲| 亚洲草久电影| 波多野结衣家庭教师视频| 国产美女娇喘av呻吟久久| 五月婷婷综合在线观看| 伊人色综合久久天天| 嫩草影院一区二区三区| 亚洲国产精品va在线观看黑人| 日本www在线观看视频| 欧美在线观看网站| 91精品国产乱码久久久竹菊| 亚洲一一在线| 手机精品视频在线观看| 无码成人精品区在线观看| 日韩一区有码在线| 中国老头性行为xxxx| 亚洲欧洲国产一区| 极品av在线| 国产乱码一区| 欧美理论在线| 色欲无码人妻久久精品| 中文字幕一区二区三区四区| 亚洲成人第一网站| 日韩电影免费观看在线观看| 麻豆蜜桃在线| 91嫩草视频在线观看| 日韩一区三区| 超碰在线播放91| 久久久久久久久99精品| 欧美三级韩国三级日本三斤在线观看| 91精品在线观看入口| 日韩精品黄色| 国产精品丝袜久久久久久高清 | 亚洲国产精品www| 性一交一乱一区二区洋洋av| 精品一区二区三区四区五区六区| 亚洲视频1区2区| 国产精品毛片一区视频播 | 亚洲福利在线播放| 爱情岛亚洲播放路线| 国产成人一区二区三区免费看| 午夜欧美精品久久久久久久| 中文字幕第10页| 亚洲久本草在线中文字幕| 999av视频| 欧美日韩国产va另类| 成人在线视频你懂的| 日本xxxxxxxxxx75| 99久久99久久精品免费看蜜桃| 毛片毛片女人毛片毛片| 亚洲色图激情小说| 久久久成人av毛片免费观看| 亚洲欧美日韩国产yyy| 毛片一区二区三区| 国产97免费视频| 日韩久久精品一区| 97人澡人人添人人爽欧美| 精品中文字幕一区| 免费视频久久| 人妻无码一区二区三区免费| 欧美精品乱码久久久久久| 影音先锋中文在线视频| 国产精品亚洲综合| 销魂美女一区二区三区视频在线| 久久日免费视频| 5月丁香婷婷综合| 变态调教一区二区三区| 欧美日韩亚洲一区二区三区在线观看 | 午夜影院久久久| 好男人免费精品视频| 国产自摸综合网| 黄色亚洲在线| av中文字幕免费观看| 欧美巨大另类极品videosbest| 超碰公开在线| 久久综合毛片| 激情图片小说一区| a v视频在线观看| 色综合亚洲精品激情狠狠| 日韩不卡在线视频| 免费在线观看亚洲视频| 国产精品国产自产拍高清av王其| www精品国产| 日韩av电影手机在线观看| 欧美3p在线观看| 少妇激情一区二区三区视频| 在线亚洲精品福利网址导航| 国产日产一区二区| 欧美高清性xxxxhd | 色吊一区二区三区| 99视频免费在线观看| 久久久久久久久一区| 国产呦精品一区二区三区网站| 中日韩精品视频在线观看| 日韩亚洲欧美中文高清在线| 欧美天堂社区| 波多野结衣电影免费观看| 在线免费视频一区二区|